<?php

namespace App\Payment;

use App\Member\Member;
use App\Pdf\PdfRepositoryFactory;
use Illuminate\Support\Collection;

class ActionFactory
{

    public function forMember(Member $member): Collection
    {
        return app(PdfRepositoryFactory::class)->getTypes()->map(function(string $repo) use ($member) {
            $repo = app($repo);

            return [
                'href' => route('member.singlepdf', ['member' => $member, 'type' => get_class($repo)]),
                'label' => $repo->linkLabel(),
                'disabled' => !$repo->createable($member),
            ];
        });
    }

    public function allLinks(): Collection
    {
        return app(PdfRepositoryFactory::class)->getTypes()->map(function(string $repo) {
            $repo = app($repo);

            return [
                'href' => route('sendpayment.pdf', ['type' => get_class($repo)]),
                'label' => $repo->allLabel(),
            ];
        });
    }

}