# This file is the entry point to configure your own services.
# Files in the packages/ subdirectory configure your dependencies.

# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration
parameters:
    locale: 'fr'
    uploads_directory: '%kernel.project_dir%/public/uploads'
services:
    # default configuration for services in *this* file
    _defaults:
        autowire: true      # Automatically injects dependencies in your services.
        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.

    # makes classes in src/ available to be used as services
    # this creates a service per class whose id is the fully-qualified class name
    App\:
        resource: '../src/'

    # add more service definitions when explicit configuration is needed
    # please note that last definitions always *replace* previous ones

    # Service d'upload de fichiers
    App\Service\FileUploader:
        arguments:
            $targetDirectory: '%uploads_directory%'

    # Service de chiffrement de fichiers
    App\Service\FileEncryptionService:
        arguments:
            $appSecret: '%env(APP_SECRET)%'

    # Controller de fichiers sécurisés
    App\Controller\SecureFileController:
        arguments:
            $uploadsDirectory: '%uploads_directory%'

    # Event Listener pour supprimer les fichiers d'icônes lors de la suppression de Task
    App\EventListener\TaskFileRemovalListener:
        arguments:
            $projectDir: '%kernel.project_dir%'
        tags:
            - { name: 'doctrine.orm.entity_listener', event: 'preRemove', entity: 'App\Entity\Task' }
