# 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:
    server_url: "%env(SERVER_URL)%"
    oidc_auth_server_url: "%env(OIDC_AUTH_SERVER_URL)%"
    oidc_client_id: "%env(OIDC_CLIENT_ID)%"
    oidc_admin_username: "%env(OIDC_ADMIN_USERNAME)%"
    oidc_admin_password: "%env(OIDC_ADMIN_PASSWORD)%"
    oidc_realm: "%env(OIDC_REALM)%"
    minio_bucket: "%env(MINIO_BUCKET)%"
    minio_endpoint: "%env(MINIO_ENDPOINT)%"
    
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/"

    App\Service\KeycloakClientService:
        arguments:
            $oidc_auth_server_url: "%oidc_auth_server_url%"
            $oidc_client_id: "%oidc_client_id%"
            $oidc_admin_username: "%oidc_admin_username%"
            $oidc_admin_password: "%oidc_admin_password%"
            $oidc_realm: "%oidc_realm%"

    App\Service\ImageService:

    app.minio_client:
        class: Aws\S3\S3Client
        arguments:
            -
                version: 'latest'
                region: '%env(MINIO_REGION)%'
                endpoint: '%env(MINIO_ENDPOINT)%'
                use_path_style_endpoint: true
                credentials:
                    key: '%env(MINIO_KEY)%'
                    secret: '%env(MINIO_SECRET)%'
    App\Form\Type\CKEditor5Type:
        arguments:
            $stimulusHelper: '@stimulus.helper'
        tags: [ 'form.type' ]
    # add more service definitions when explicit configuration is needed
    # please note that last definitions always *replace* previous ones
