# 默认配置文件（嵌入二进制）
# 敏感配置和必填配置为空，必须通过环境变量设置
# 环境变量格式：JUNHONG_{SECTION}_{KEY}

server:
  address: ":3000"
  read_timeout: "30s"
  write_timeout: "30s"
  shutdown_timeout: "30s"
  prefork: false

# 数据库配置（必填项需通过环境变量设置）
database:
  host: ""                    # 必填：JUNHONG_DATABASE_HOST
  port: 5432
  user: ""                    # 必填：JUNHONG_DATABASE_USER
  password: ""                # 必填：JUNHONG_DATABASE_PASSWORD（敏感）
  dbname: ""                  # 必填：JUNHONG_DATABASE_DBNAME
  sslmode: "disable"
  max_open_conns: 25
  max_idle_conns: 10
  conn_max_lifetime: "5m"

# Redis 配置（必填项需通过环境变量设置）
redis:
  address: ""                 # 必填：JUNHONG_REDIS_ADDRESS
  port: 6379
  password: ""                # 可选：JUNHONG_REDIS_PASSWORD（敏感）
  db: 0
  pool_size: 10
  min_idle_conns: 5
  dial_timeout: "5s"
  read_timeout: "3s"
  write_timeout: "3s"

# 对象存储配置
storage:
  provider: "s3"
  temp_dir: "/tmp/junhong-storage"
  s3:
    endpoint: ""              # 可选：JUNHONG_STORAGE_S3_ENDPOINT
    region: ""                # 可选：JUNHONG_STORAGE_S3_REGION
    bucket: ""                # 可选：JUNHONG_STORAGE_S3_BUCKET
    access_key_id: ""         # 可选：JUNHONG_STORAGE_S3_ACCESS_KEY_ID（敏感）
    secret_access_key: ""     # 可选：JUNHONG_STORAGE_S3_SECRET_ACCESS_KEY（敏感）
    use_ssl: false
    path_style: true
  presign:
    upload_expires: "15m"
    download_expires: "24h"

# 日志配置
logging:
  level: "info"
  development: false
  app_log:
    filename: "/app/logs/app.log"
    max_size: 100
    max_backups: 3
    max_age: 7
    compress: true
  access_log:
    filename: "/app/logs/access.log"
    max_size: 100
    max_backups: 3
    max_age: 7
    compress: true

# 任务队列配置
queue:
  concurrency: 10
  queues:
    critical: 6
    default: 3
    low: 1
  retry_max: 5
  timeout: "10m"

# JWT 配置（必填项需通过环境变量设置）
jwt:
  secret_key: ""              # 必填：JUNHONG_JWT_SECRET_KEY（敏感）
  token_duration: "24h"
  access_token_ttl: "24h"
  refresh_token_ttl: "168h"

# 中间件配置
middleware:
  enable_rate_limiter: false
  rate_limiter:
    max: 100
    expiration: "1m"
    storage: "memory"

# 短信服务配置
sms:
  gateway_url: ""             # 可选：JUNHONG_SMS_GATEWAY_URL
  username: ""                # 可选：JUNHONG_SMS_USERNAME
  password: ""                # 可选：JUNHONG_SMS_PASSWORD（敏感）
  signature: ""               # 可选：JUNHONG_SMS_SIGNATURE
  timeout: "10s"

# 默认超级管理员配置（可选）
default_admin:
  username: ""
  password: ""
  phone: ""

# Gateway 服务配置
gateway:
  base_url: "https://lplan.whjhft.com/openapi"
  app_id: "60bgt1X8i7AvXqkd"
  app_secret: "BZeQttaZQt0i73moF"
  timeout: 30

# 微信配置（必填项需通过环境变量设置）
wechat:
  official_account:
    app_id: ""                # 必填：JUNHONG_WECHAT_OFFICIAL_ACCOUNT_APP_ID
    app_secret: ""            # 必填：JUNHONG_WECHAT_OFFICIAL_ACCOUNT_APP_SECRET（敏感）
    token: ""                 # 可选：JUNHONG_WECHAT_OFFICIAL_ACCOUNT_TOKEN
    aes_key: ""               # 可选：JUNHONG_WECHAT_OFFICIAL_ACCOUNT_AES_KEY（敏感）
    oauth_redirect_url: ""    # 可选：JUNHONG_WECHAT_OFFICIAL_ACCOUNT_OAUTH_REDIRECT_URL
  payment:
    app_id: ""                # 必填：JUNHONG_WECHAT_PAYMENT_APP_ID
    mch_id: ""                # 必填：JUNHONG_WECHAT_PAYMENT_MCH_ID
    api_v3_key: ""            # 必填：JUNHONG_WECHAT_PAYMENT_API_V3_KEY（敏感）
    api_v2_key: ""            # 可选：JUNHONG_WECHAT_PAYMENT_API_V2_KEY（敏感）
    cert_path: ""             # 必填：JUNHONG_WECHAT_PAYMENT_CERT_PATH（证书文件路径）
    key_path: ""              # 必填：JUNHONG_WECHAT_PAYMENT_KEY_PATH（私钥文件路径）
    serial_no: ""             # 必填：JUNHONG_WECHAT_PAYMENT_SERIAL_NO
    notify_url: ""            # 必填：JUNHONG_WECHAT_PAYMENT_NOTIFY_URL
    http_debug: false
    timeout: "30s"
