<?php

declare(strict_types=1);

namespace App\Module\Reporting\Infrastructure\ApiPlatform\Resource;

use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\GetCollection;
use App\Module\Reporting\Application\DTO\TimePerUserOutput;
use App\Module\Reporting\Infrastructure\ApiPlatform\State\TimePerUserProvider;

/**
 * Rapport en lecture seule : heures travaillees par utilisateur sur une periode.
 *
 * Filtres query-param : ?from=YYYY-MM-DD&to=YYYY-MM-DD&projectId=
 * (from/to par defaut = mois courant si absents).
 *
 * Aucune entite Doctrine sous-jacente : le provider lit via DBAL et retourne
 * directement une liste de TimePerUserOutput. Pagination desactivee.
 */
#[ApiResource(
    shortName: 'ReportTimePerUser',
    operations: [
        new GetCollection(
            uriTemplate: '/reports/time-per-user',
            paginationEnabled: false,
            security: "is_granted('reporting.view')",
            provider: TimePerUserProvider::class,
        ),
    ],
    output: TimePerUserOutput::class,
)]
final class TimePerUserResource {}
