# 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/configuration.html#application-related-configuration
parameters:
  locale: 'en'
  privateUploadDir: '%kernel.project_dir%/privateUploads/'
  publicUploadDir: '%kernel.project_dir%/%env(public_access_folder)%uploads/'
  RootPath: '%kernel.project_dir%/'
  app_locales: en|fr|de|el

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/*'
    exclude: '../src/{DependencyInjection,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\Service\UserRegistration:
    arguments:
      - "@doctrine.orm.entity_manager"
      - "@router"
      - "@security.csrf.token_manager"

  App\Service\FileManagment:
    arguments:
      - "@filesystem"

  App\EventSubscriber\LocaleSubscriber:
    arguments: ['%kernel.default_locale%']

  App\EventSubscriber\AjaxSubscriber:
    arguments: []

  app.service.trigger_notifications:
    class: App\Service\TriggerNotifications
    #arguments: ['@twig.mime_body_renderer','@?', '@?', '@?', '@?', '@?', '@?']

  #  app.service.student_classes:
  #    class: App\Service\StudentClasses
  #    arguments: ['@App\Service\DefaultFunction', '@App\Repository\ClassTemplateRepository', '@doctrine.orm.default_entity_manager', '@doctrine.orm.default_entity_manager', '@App\Repository\SubjectsRepository', '@App\Repository\ClassSubjectTemplateRepository', '@App\Repository\ClassesRepository', '@App\Repository\ClassSubjectRepository', '@App\Repository\SessionRepository', '@App\Repository\ClassSessionEnrolmentRepository', '@App\Service\UserService', '@App\Service\SubjectService', '@App\Repository\ClassFeeRepository', '@App\Service\accounts\InvoiceService']

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