<?php

namespace Modules\EtatStatistiques\Outil;

class EtatStatOutil
{
    /**
     * Retrieve associated zoom path for given filter code
     * @return ?array{
     *     path:string,
     *     path_param?:array<string>,
     *     entity:string,
     *     libelle:string
     * }
     */
    public static function getFilterInfo(string $codeFilter)
    {
        return [
            'ACD'         => [
                'path' => 'Ajax.liste.accadre',
                'entity' => 'Acccadre',
                'libelle' => 'LIBELLE'
            ],
            'PERIODE'     => [
                'path' => 'Ajax.liste.periodes',
                'entity' => 'Periodes',
                'libelle' => 'LIBELLE'
            ],
            'PER'         => [
                'path' => 'Ajax.liste.periodes',
                'entity' => 'Periodes',
                'libelle' => 'LIBELLE'
            ],
            'ARTICLES'    => [
                'path' => 'Ajax.liste.articles',
                'entity' => 'Articles',
                'libelle' => 'DESIGN'
            ],
            'DECOUPAG'    => [
                'path' => 'Ajax.liste.decoupage',
                'entity' => 'Decoupage',
                'libelle' => 'LIBDECOUP'
            ],
            'UO'          => [
                'path' => 'Ajax.liste.uo',
                'entity' => 'UO',
                'libelle' => 'LIB_UO'
            ],
            'SSFAMILL'    => [
                'path' => 'Ajax.liste.sousFamille',
                'entity' => 'SousFamille',
                'libelle' => 'DESIGNAT'
            ],
            'SSCPTANA'    => [
                'path' => 'Ajax.liste.sca',
                'entity' => 'Sscptana',
                'libelle' => 'LIBELLE'
            ],
            'SECTIMPU'    => [
                'path' => 'Ajax.liste.si',
                'entity' => 'Sectimpu',
                'libelle' => 'LIBELLE'
            ],
            'REGROUP'     => [
                'path' => 'Ajax.liste.regroup',
                'entity' => 'Regroupement',
                'libelle' => 'LIBELLE'
            ],
            'COUNTRY'     => [
                'path' => 'Ajax.liste.pays',
                'entity' => 'Country',
                'libelle' => 'LIBELLE'
            ],
            'NATANA'      => [
                'path' => 'Ajax.liste.natana',
                'entity' => 'Natana',
                'libelle' => 'LIBELLE'
            ],
            'MARCHES'     => [
                'path' => 'Ajax.liste.marches',
                'entity' => 'Marches',
                'libelle' => 'LIBELLE'
            ],
            'GRPFOU'      => [
                'path' => 'Ajax.liste.grpfou',
                'entity' => 'Grpfou',
                'libelle' => 'RS'
            ],
            'FAMILLE'     => [
                'path' => 'Ajax.liste.famille',
                'entity' => 'Famille',
                'libelle' => 'DESIGNAT'
            ],
            'DOMFONCT'    => [
                'path' => 'Ajax.liste.domaineFonctionnel',
                'entity' => 'DomaineFonctionnel',
                'libelle' => 'LIBELLE'
            ],
            'DIRECTIO'    => [
                'path' => 'Ajax.liste.directio',
                'entity' => 'Directio',
                'libelle' => 'LIBELLE'
            ],
            'CENTRANA'    => [
                'path' => 'Ajax.liste.centrana',
                'entity' => 'Centrana',
                'libelle' => 'LIBELLE'
            ],
            'CODECOMP'    => [
                'path' => 'Ajax.liste.cdc',
                'entity' => 'Codecomp',
                'libelle' => 'LIBELLE'
            ],
            'ACHETEUR'    => [
                'path' => 'Ajax.liste.acheteur',
                'entity' => 'Hastutil',
                'libelle' => 'FONCTION'
            ],
            'ACHETEURS'   => [
                'path' => 'Ajax.liste.acheteur',
                'entity' => 'Hastutil',
                'libelle' => 'FONCTION'
            ],
            'DEMANDEU'    => [
                'path' => 'Ajax.liste.demandeur',
                'entity' => 'Hastutil',
                'libelle' => 'LIBELLE'
            ],
            'SOCIETE'     => [
                'path' => 'Ajax.liste.societe',
                'entity' => 'Societe',
                'libelle' => 'RAIS_SOC'
            ],
            'TYPEACHAT'   => [
                'path' => 'Ajax.liste.typeAchat',
                'entity' => 'TypeAchat',
                'libelle' => 'LIB_TAC'
            ],
            'TYPDOC'      => [
                'path' => 'Ajax.liste.typeDoc',
                'entity' => 'TypeDoc',
                'libelle' => 'LIBELLE'
            ],
            'CENTRE_R'    => [
                'path' => 'Ajax.liste.centreByType',
                'path_param' => ['typeCentre' => 'CENTRE_R'],
                'entity' => 'Centre',
                'libelle' => 'RAIS_SOC'
            ],
            'CENTRE_E'    => [
                'path' => 'Ajax.liste.centreByType',
                'path_param' => ['typeCentre' => 'CENTRE_E'],
                'entity' => 'Centre',
                'libelle' => 'RAIS_SOC'
            ],
            'CENTRE_F'    => [
                'path' => 'Ajax.liste.centreByType',
                'path_param' => ['typeCentre' => 'CENTRE_F'],
                'entity' => 'Centre',
                'libelle' => 'RAIS_SOC'
            ],
            'PERIODES'    => [
                'path' => 'Ajax.liste.periodes',
                'entity' => 'Periodes',
                'libelle' => 'LIBELLE'
            ],
            'CREATEURFAC' => [
                'path' => 'Ajax.liste.utilisateur',
                'entity' => 'hastutil',
                'libelle' => 'LIBELLE'
            ],
            'HASTUTIL'    => [
                'path' => 'Ajax.liste.acheteur',
                'entity' => 'Hastutil',
                'libelle' => 'FONCTION'
            ],
            'SSITESTO'    => [
                'path' => 'Ajax.liste.ssItesto',
                'entity' => 'ssItesto',
                'libelle' => 'DESIGN'
            ],
            'SI'          => [
                'path' => 'Ajax.liste.si',
                'entity' => 'Sectimpu',
                'libelle' => 'LIBELLE'
            ],
            'ACCCADRE' => [
                'path' => 'Ajax.liste.accadre',
                'entity' => 'Acccadre',
                'libelle' => 'LIBELLE'
            ],
            'FABRICAN' => [
                'path' => 'Ajax.liste.fabricant',
                'entity' => 'Sectimpu',
                'libelle' => 'RS'
            ],
            'FOURNISS' => [
                'path' => 'Ajax.liste.fournisseur',
                'entity' => 'Fourniss',
                'libelle' => 'LIBELLE'
            ],
        ][ $codeFilter ] ?? null;
    }
}
