<?php

declare(strict_types=1);

namespace App\Module\Reporting;

use App\Shared\Domain\Module\ModuleInterface;

/**
 * Module de reporting transverse en lecture seule.
 *
 * Ce module n'introduit AUCUNE entite Doctrine ni migration : il agrege les
 * donnees existantes (time_entry, project, task, absence_request, "user") via
 * des requetes DBAL en lecture seule. Il n'importe deliberement aucune entite
 * d'un autre module — couplage uniquement au schema SQL physique partage.
 */
final class ReportingModule implements ModuleInterface
{
    public static function id(): string
    {
        return 'reporting';
    }

    public static function label(): string
    {
        return 'Rapports';
    }

    public static function isRequired(): bool
    {
        return false;
    }

    /**
     * @return list<array{code: string, label: string}>
     */
    public static function permissions(): array
    {
        return [
            ['code' => 'reporting.view', 'label' => 'Consulter les rapports'],
            ['code' => 'reporting.export', 'label' => 'Exporter les rapports'],
        ];
    }
}
