<?php

declare(strict_types=1);

namespace App\Application\Actions\Rechnungen;

use App\Application\Actions\Action;
use App\Domain\Rechnungen\RechnungenRepository;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Log\LoggerInterface;

class GetRechnungenListAction extends Action
{
    protected RechnungenRepository $repository;

    public function __construct(LoggerInterface $logger, RechnungenRepository $repository)
    {
        parent::__construct($logger);
        $this->repository = $repository;
    }

    protected function action(): Response
    {
        $stdObject  = $this->request->getAttribute('jwt_payload') ?? [];
        $jwtPayload = json_decode(json_encode($stdObject), true);
        $cid        = $jwtPayload['customerId'];

        return $this->respondWithData($this->repository->getList($cid));
    }
}
