# ============================================================================
# Lions User Manager - Server Implementation Configuration - DEV
# ============================================================================

# HTTP Configuration
quarkus.http.port=8081
quarkus.http.host=localhost
quarkus.http.cors=true
quarkus.http.cors.origins=http://localhost:3000,http://localhost:8080
quarkus.http.cors.methods=GET,POST,PUT,DELETE,PATCH,OPTIONS
quarkus.http.cors.headers=*

# Keycloak OIDC Configuration (DEV)
# Backend n'utilise PAS OIDC - il utilise directement l'Admin API
quarkus.oidc.enabled=false
quarkus.oidc.dev-ui.enabled=false
quarkus.oidc.discovery-enabled=false

# Keycloak Admin Client Configuration (DEV)
lions.keycloak.server-url=http://localhost:8180
lions.keycloak.admin-realm=master
lions.keycloak.admin-client-id=admin-cli
lions.keycloak.admin-username=admin
lions.keycloak.admin-password=admin
lions.keycloak.connection-pool-size=5
lions.keycloak.timeout-seconds=30

# Realms autorisés (DEV)
lions.keycloak.authorized-realms=lions-user-manager,master,btpxpress,test-realm

# Circuit Breaker Configuration (DEV - plus permissif)
quarkus.smallrye-fault-tolerance.enabled=true

# Retry Configuration (DEV)
lions.keycloak.retry.max-attempts=3
lions.keycloak.retry.delay-seconds=1

# Audit Configuration (DEV)
lions.audit.enabled=true
lions.audit.log-to-database=false
lions.audit.log-to-file=true
lions.audit.retention-days=30

# Database Configuration (DEV - optionnel)
# Décommenter pour utiliser une DB locale
#quarkus.datasource.db-kind=postgresql
#quarkus.datasource.username=postgres
#quarkus.datasource.password=postgres
#quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/lions_audit_dev
#quarkus.hibernate-orm.database.generation=update
#quarkus.flyway.migrate-at-start=false

# Logging Configuration (DEV)
quarkus.log.level=INFO
quarkus.log.category."dev.lions.user.manager".level=DEBUG
quarkus.log.category."org.keycloak".level=INFO
quarkus.log.category."io.quarkus".level=INFO
quarkus.log.category."io.quarkus.oidc".level=WARN

quarkus.log.console.enable=true
quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n
# quarkus.log.console.color est déprécié dans Quarkus 3.x

# File Logging pour Audit (DEV)
quarkus.log.file.enable=true
quarkus.log.file.path=logs/dev/lions-user-manager.log
quarkus.log.file.rotation.max-file-size=10M
quarkus.log.file.rotation.max-backup-index=3

# OpenAPI/Swagger Configuration (DEV - toujours activé)
quarkus.swagger-ui.always-include=true
quarkus.swagger-ui.enable=true
# Le chemin par défaut est /q/swagger-ui (pas besoin de le spécifier)

# Dev Services (activé en DEV)
quarkus.devservices.enabled=false

# Security Configuration (DEV)
quarkus.security.jaxrs.deny-unannotated-endpoints=false

# En dev, désactiver la vérification proactive de sécurité pour permettre @RolesAllowed
# de fonctionner sans authentification (pour faciliter les tests locaux)
# En prod, @RolesAllowed sera géré normalement par Quarkus Security avec OIDC/Keycloak
quarkus.security.auth.proactive=false

# Hot Reload
quarkus.live-reload.instrumentation=true

# Désactiver le continuous testing qui bloque le démarrage
quarkus.test.continuous-testing=disabled

# Indexer les dépendances Keycloak pour éviter les warnings
quarkus.index-dependency.keycloak-admin.group-id=org.keycloak
quarkus.index-dependency.keycloak-admin.artifact-id=keycloak-admin-client
quarkus.index-dependency.keycloak-core.group-id=org.keycloak
quarkus.index-dependency.keycloak-core.artifact-id=keycloak-core

# Jackson - Ignorer les propriétés inconnues pour compatibilité Keycloak
quarkus.jackson.fail-on-unknown-properties=false
