# ============================================================================
# Lions User Manager Server - Configuration Commune
# ============================================================================
# Ce fichier contient UNIQUEMENT la configuration commune à tous les environnements
# Les configurations spécifiques sont dans:
#   - application-dev.properties (développement)
#   - application-prod.properties (production)
# ============================================================================

# ============================================
# Application Info
# ============================================
quarkus.application.name=lions-user-manager-server
quarkus.application.version=1.0.0

# ============================================
# HTTP Configuration (commune)
# ============================================
quarkus.http.host=0.0.0.0
quarkus.http.cors=true
quarkus.http.cors.methods=GET,POST,PUT,DELETE,PATCH,OPTIONS
quarkus.http.cors.headers=*

# ============================================
# Keycloak OIDC Configuration (base commune)
# ============================================
quarkus.oidc.application-type=service

# ============================================
# Keycloak Admin Client Configuration (base commune)
# ============================================
lions.keycloak.connection-pool-size=10
lions.keycloak.timeout-seconds=30

# Retry Configuration (pour appels Keycloak)
lions.keycloak.retry.max-attempts=3
lions.keycloak.retry.delay-seconds=2

# ============================================
# Audit Configuration
# ============================================
lions.audit.enabled=true
lions.audit.log-to-database=false
lions.audit.log-to-file=true
lions.audit.retention-days=90

# ============================================
# Database Configuration (désactivé par défaut)
# ============================================
# Désactiver Hibernate ORM si aucune entité JPA n'est utilisée
quarkus.hibernate-orm.enabled=false

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

quarkus.log.console.enable=true
quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

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

# ============================================
# OpenAPI/Swagger Configuration
# ============================================
quarkus.swagger-ui.always-include=true
mp.openapi.extensions.smallrye.info.title=Lions User Manager API
mp.openapi.extensions.smallrye.info.version=1.0.0
mp.openapi.extensions.smallrye.info.description=API de gestion centralisée des utilisateurs Keycloak
mp.openapi.extensions.smallrye.info.contact.name=Lions Dev Team
mp.openapi.extensions.smallrye.info.contact.email=contact@lions.dev

# ============================================
# Health Check Configuration
# ============================================
quarkus.smallrye-health.root-path=/health
quarkus.smallrye-health.liveness-path=/health/live
quarkus.smallrye-health.readiness-path=/health/ready

# ============================================
# Metrics Configuration
# ============================================
quarkus.micrometer.enabled=true
quarkus.micrometer.export.prometheus.enabled=true
quarkus.micrometer.export.prometheus.path=/metrics

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

# ============================================
# Jackson Configuration
# ============================================
quarkus.jackson.fail-on-unknown-properties=false
quarkus.jackson.write-dates-as-timestamps=false
quarkus.jackson.serialization-inclusion=non_null

# ============================================
# Dev Services (désactivé par défaut)
# ============================================
quarkus.devservices.enabled=false
