# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
    locale: 'en'
    logos_directory: 'logos'
    products_photos_directory: 'products'
    logos_directory_seller: 'logos_seller'
    google_geocoding_key: 'AIzaSyA5ZgU3EQxN2VTSXDa45Na8QecT-UrV7gU'
    google_geocoding_url: 'https://maps.googleapis.com/maps/api/geocode/json'

services:
    security.access.all_voter:
        class:      App\Security\AllVoter
        public:     false
        tags:
           - { name: security.voter }
    # 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.
        public: false       # Allows optimizing the container by removing unused services; this also means
                            # fetching services directly from the container via $container->get() won't work.
                            # The best practice is to be explicit about your dependencies anyway.

    # 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/*'
        exclude: '../src/{Entity,Migrations,Tests,Kernel.php}'

    # controllers are imported separately to make sure services can be injected
    # as action arguments even if you don't extend any base controller class
    App\Controller\:
        resource: '../src/Controller'
        tags: ['controller.service_arguments']

    App\EventListener\StockControl:
        tags:
            - { name:doctrine.event_listener, event: onFlush }

    App\EventListener\ShipmentReturnAudit:
        tags:
            - { name:doctrine.event_listener, event: onFlush }

    App\EventListener\KanboardControl:
        tags:
        - { name:doctrine.event_listener, event: onFlush }

    App\EventListener\SecurityControl:
        arguments: ['@security.authorization_checker']
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: checkPermissionUser }

    App\EventListener\HistoryControl:
        arguments: ["@security.token_storage"]
        tags:
        - { name:doctrine.event_listener, event: onFlush }


    # add more service definitions when explicit configuration is needed
    # please note that last definitions always *replace* previous ones
    ws_courier_correos:
        class: App\Service\CorreosLocationService
        public: true
    ws_recording_shipments:
        class: App\Service\RecordingShipmentsWS
        public: true
    ws_ctt_express:
        class: App\Service\CTTExpressService
        public: true
    ws_fedex:
        class:  App\Service\FedexApi
        public: true
    ws_correos_express:
        class:  App\Service\CorreosExpressWS
        public: true
    ws_pre_registro_correos:
        class: App\Service\PreRegistrosService
        public: true