spring.redis.host=localhost
spring.redis.port=${spring.redis.port:6379}

# Enable Flyway and restrict locations to migrations (avoid callback duplication in tests)
spring.flyway.enabled=true
spring.flyway.locations=classpath:db/migration

# Database Connection Pool (HikariCP)
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.pool-name=MosquitoHikariPool

# Application Configuration
app.rate-limit.per-minute=100
app.short-link.code-length=8
app.short-link.max-url-length=2048
app.short-link.landing-base-url=https://example.com/landing
app.short-link.cdn-base-url=https://cdn.example.com
app.security.api-key-iterations=185000

# Poster Configuration
app.poster.default-template=default
app.poster.cdn-base-url=https://cdn.example.com

# Logging Configuration
logging.level.root=WARN
logging.level.com.mosquito.project=INFO
logging.level.com.mosquito.project.web=DEBUG
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

# Actuator Configuration
management.endpoints.web.exposure.include=health,info,metrics
management.endpoint.health.show-details=when_authorized
management.endpoint.health.probes.enabled=true
management.health.redis.enabled=true
management.health.db.enabled=true
management.health.livenessState.enabled=true
management.health.readinessState.enabled=true

# User Introspection Configuration
app.security.introspection.url=
app.security.introspection.client-id=
app.security.introspection.client-secret=
app.security.introspection.timeout-millis=2000
app.security.introspection.cache-ttl-seconds=60
app.security.introspection.negative-cache-seconds=5
