<?php

declare(strict_types=1);

namespace App\ApiResources\Export\LicenceCmf;

use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Post;
use App\ApiResources\Export\ExportRequest;
use App\Enum\Export\ExportFormatEnum;
use App\State\Processor\Export\LicenceCmf\ExportRequestProcessor;

/**
 * Requête d'export d'une licence CMF pour l'organization ciblée.
 *
 * Appeler avec une requête POST à /export/licence-cmf/organization,
 * avec un body comme :
 *
 * {"organizationId" : 1}
 */
#[ApiResource(
    operations: [
        new Post(
            uriTemplate: '/cmf-licence/organization',
            security: '(is_granted("ROLE_ADMIN_CORE") or is_granted("ROLE_ADMINISTRATIF_MANAGER_CORE"))'
        ),
    ],
    routePrefix: '/export',
    processor: ExportRequestProcessor::class
)]
class LicenceCmfOrganizationER extends ExportRequest
{
    /**
     * Format de sortie attendu (pdf seulement ici).
     */
    protected ExportFormatEnum $format = ExportFormatEnum::PDF;

    /**
     * Retourne l'année de la licence
     * (toujours l'année courante, sauf dans le cas des tests où on pourra mocker cette méthode).
     */
    public function getYear(): int
    {
        return (int) date('Y');
    }
}
