api_platform:
    title: Starseed API
    version: 1.0.0
    # Scan du module Core pour decouvrir les classes ApiResource et ApiFilter.
    # Ajouter un chemin par module lors de l'ajout d'entites ApiResource dans d'autres modules.
    # Sans ces paths, le compile pass d'API Platform ne declare pas les
    # services de filtres annotes (les filtres etaient silencieusement
    # ignores sur Permission — cf. ticket #344).
    mapping:
        paths:
            - '%kernel.project_dir%/src/Module/Core/Domain/Entity'
            # Resources virtuelles (sans entite Doctrine) declarees via #[ApiResource]
            # en dehors de Domain/Entity : AuditLogResource, etc.
            - '%kernel.project_dir%/src/Module/Core/Infrastructure/ApiPlatform/Resource'
            # Entites techniques partagees portant un #[ApiResource]
            # (UploadedDocument — infra upload generique ERP-154).
            - '%kernel.project_dir%/src/Shared/Domain/Entity'
    formats:
        jsonld: ['application/ld+json']
        json: ['application/json']
    patch_formats:
        json: ['application/merge-patch+json']
    defaults:
        stateless: true
        cache_headers:
            vary: ['Content-Type', 'Authorization', 'Origin']
        # === Pagination Hydra (regle projet : toute collection DOIT etre paginee) ===
        # Standard datatable : 10 items par defaut, choix client 10 / 25 / 50.
        # Borne dure cote serveur a 50 pour prevenir tout `?itemsPerPage=999999`
        # (attaque memoire / deep-fetch). Le client peut neanmoins desactiver la
        # pagination via `?pagination=false` pour alimenter un <select> ou autre
        # vue "tout-en-un" — c'est l'echappatoire prevue pour les ressources
        # servant a la fois de datatable et de source de select (Role,
        # Permission, Site, CategoryType). Override par ressource possible via
        # `paginationItemsPerPage` / `paginationMaximumItemsPerPage` /
        # `paginationEnabled` sur l'attribut #[ApiResource] ou sur une operation.
        pagination_enabled: true
        pagination_items_per_page: 10
        pagination_maximum_items_per_page: 50
        pagination_client_items_per_page: true
        pagination_client_enabled: true
