# 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:

    # Mailer settings
    mailer.from: "%env(APP_MAIL_FROM)%"
    mailer.send_single_mails: "%env(SEND_SINGLE_MAILS)%"

    # SnipeIT Settings
    snipeit.url: "%env(nullable:SNIPEIT_API_URL)%"
    snipeit.apikey: "%env(nullable:SNIPEIT_API_KEY)%"

    # Slack Settings
    slack.webhook: "%env(SLACK_WEBHOOK)%"

    # SNMP Settings
    snmp.default:
        sysDescr:
            type: "value"
            oid: ".1.3.6.1.2.1.1.1.0"
        sysObjID:
            type: "value"
            oid: ".1.3.6.1.2.1.1.2.0"
        sysUpTime:
            type: "value"
            oid: ".1.3.6.1.2.1.1.3.0"
        sysContact:
            type: "value"
            oid: ".1.3.6.1.2.1.1.4.0"
        sysName:
            type: "value"
            oid: ".1.3.6.1.2.1.1.5.0"
        sysLocation:
            type: "value"
            oid: ".1.3.6.1.2.1.1.6.0"
        sysServices:
            type: "value"
            oid: ".1.3.6.1.2.1.1.7.0"
        serialNumber:
            type: "value"
            oid: ".1.3.6.1.2.1.43.5.1.1.17.1"
        totalPages:
            type: "value"
            oid: "1.3.6.1.2.1.43.10.2.1.4.1.1"
        suppliesTable:
            type: "table"
            oid: ".1.3.6.1.2.1.43.11.1"
        consoleDisplayBuffer:
            type: "value"
            oid: ".1.3.6.1.2.1.43.16.5.1.2.1.1"

    # Brother
    snmp.enterprise.oid.1.3.6.1.4.1.2435.2.3.9.1:
        printerType:
            type: "value"
            oid: ".1.3.6.1.2.1.25.3.2.1.3.1"

    # Kyocera
    snmp.enterprise.oid.1.3.6.1.4.1.1347.41:
        printerType:
            type: "value"
            oid: ".1.3.6.1.2.1.43.5.1.1.16.1"

    # Application Settings
    printer.inactive.unreachable_count: '%env(PRINTER_INACTIVE_COUNT)%'
    printer.inactive.notification_enabled: '%env(INACTIVE_PRINTER_NOTIFICATION)%'

    # Monitoring
    monitoring.allowed_ips: '%env(json:MONITORING_ALLOWED_IPS)%'

    # Routing information
    router.request_context.host: '%env(APP_URL)%'
    router.request_context.scheme: '%env(APP_SCHEME)%'
    router.request_context.base_url: '%env(APP_BASE_URL)%'
    asset.request_context.base_path: '%router.request_context.base_url%'

    # Ldap Settings
    ldap.server: "%env(nullable:LDAP_SERVER)%"
    ldap.port: '%env(LDAP_PORT)%'
    ldap.connection_string: 'ldap://%ldap.server%:%ldap.port%'
    ldap.query_dn: '%env(LDAP_QUERY_DN)%'
    ldap.query_string: '%env(LDAP_QUERY_STRING)%'
    ldap.bind.user: '%env(LDAP_BIND_USER)%'
    ldap.bind.password: '%env(LDAP_BIND_PASSWD)%'

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']

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