# ============================================================================
# UnionFlow Server — Profil PROD
# Chargé automatiquement quand le profil "prod" est actif
# Surcharge application.properties — sans préfixes %prod.
# ============================================================================

# Base de données PostgreSQL — Production (variables d'environnement obligatoires)
quarkus.datasource.username=${DB_USERNAME}
quarkus.datasource.password=${DB_PASSWORD}
quarkus.datasource.jdbc.url=${DB_URL}
quarkus.datasource.jdbc.min-size=5
quarkus.datasource.jdbc.max-size=20
quarkus.datasource.jdbc.acquisition-timeout=5
quarkus.datasource.jdbc.idle-removal-interval=PT2M
quarkus.datasource.jdbc.max-lifetime=PT30M

# Hibernate — Validate uniquement (Flyway gère le schéma)
quarkus.hibernate-orm.database.generation=validate
quarkus.hibernate-orm.statistics=false

# Flyway — ignorer les migrations appliquées en DB mais absentes localement
# (suite à la consolidation V1-V10 → V1, les anciennes V1.1/V1.2/V1.3 ne sont plus présentes)
quarkus.flyway.ignore-migration-patterns=*:missing

# CORS — strict en production
quarkus.http.cors.origins=${CORS_ORIGINS:https://unionflow.lions.dev,https://security.lions.dev}
quarkus.http.cors.access-control-allow-credentials=true

# WebSocket — public (auth gérée dans le handshake)
quarkus.http.auth.permission.websocket.paths=/ws/*
quarkus.http.auth.permission.websocket.policy=permit

# Keycloak / OIDC — Production
quarkus.oidc.tenant-enabled=true
quarkus.oidc.auth-server-url=${KEYCLOAK_AUTH_SERVER_URL:https://security.lions.dev/realms/unionflow}
quarkus.oidc.client-id=unionflow-server
quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}
quarkus.oidc.tls.verification=required
# Validation audience : seuls les tokens destinés à unionflow-server sont acceptés
# Nécessite un audience mapper dans Keycloak : unionflow-mobile client → scope → audience mapper → unionflow-server
quarkus.oidc.token.audience=unionflow-server

# OpenAPI — serveur prod
quarkus.smallrye-openapi.servers=https://api.lions.dev/unionflow
quarkus.smallrye-openapi.oidc-open-id-connect-url=${quarkus.oidc.auth-server-url}/.well-known/openid-configuration

# Swagger UI — désactivé en production
quarkus.swagger-ui.always-include=false

# Logging — fichier en production (le répertoire doit exister dans le container)
quarkus.log.file.enable=false
quarkus.log.file.path=/var/log/unionflow/server.log
quarkus.log.file.rotation.max-file-size=10M
quarkus.log.file.rotation.max-backup-index=5
quarkus.log.category."org.jboss.resteasy".level=WARN

# REST Client lions-user-manager
quarkus.rest-client.lions-user-manager-api.url=${LIONS_USER_MANAGER_URL:http://lions-user-manager:8081}

# OIDC client "admin-service" — service account pour appels admin vers lions-user-manager
quarkus.oidc-client.admin-service.auth-server-url=${KEYCLOAK_AUTH_SERVER_URL:https://security.lions.dev/realms/unionflow}
quarkus.oidc-client.admin-service.client-id=unionflow-server
quarkus.oidc-client.admin-service.credentials.secret=${KEYCLOAK_CLIENT_SECRET}
quarkus.oidc-client.admin-service.grant.type=client

# Wave Money — Production
wave.environment=production

# Email — Production
quarkus.mailer.from=${MAIL_FROM:noreply@unionflow.lions.dev}
quarkus.mailer.host=${MAIL_HOST:smtp.lions.dev}
quarkus.mailer.port=${MAIL_PORT:587}
quarkus.mailer.username=${MAIL_USERNAME:}
quarkus.mailer.password=${MAIL_PASSWORD:}
quarkus.mailer.start-tls=REQUIRED
quarkus.mailer.ssl=false
