spring:
  application:
    name: xdz-message
  profiles:
    active: ${SPRING_PROFILES_ACTIVE:dev}  # 通过环境变量 SPRING_PROFILES_ACTIVE 切换，可选值：local, dev, prod，默认 dev

  main:
    allow-bean-definition-overriding: true # 允许 bean 定义覆盖，解决 FeignClientSpecification 冲突

  autoconfigure:
    exclude:
      - com.xindazhou.framework.security.config.XdzWebSecurityConfigurerAdapter # 禁用 Security 配置适配器，message-server 不需要
      - org.springdoc.openapi.starter.webmvc.ui.SpringDocWebMvcUiConfiguration # 禁用 SpringDoc UI 配置
      - org.springdoc.openapi.starter.common.SpringDocCommonConfiguration # 禁用 SpringDoc 通用配置

  cloud:
    inetutils:
      ignored-interfaces:
        - ^VirtualBox.*

  config:
    import:
      - optional:classpath:application-${spring.profiles.active}.yaml # 根据 active 加载对应的配置文件

server:
  port: 18082
  # servlet:
  #   context-path: /message  # 已移除 context-path，统一配置

--- #################### SpringDoc/Swagger 配置（公共配置）####################

# 禁用 SpringDoc/Swagger（message-server 不需要 API 文档）
springdoc:
  api-docs:
    enabled: false
  swagger-ui:
    enabled: false

# SocketIO 配置
# 参考官方文档：https://www.socketio4j.org/server-api
# 关键配置说明：
# - context: 必须设置为 "/socket.io"，Engine.IO v3 客户端默认连接此路径
# - upgrade-timeout: Polling → WebSocket 升级超时时间，默认 10 秒
# - ping-interval: 心跳间隔，建议设置为小于 NAT 超时时间（通常 30-60 秒）
# - ping-timeout: 心跳超时，如果此时间内未收到 pong，则认为连接断开
socketio:
  host: 0.0.0.0
  port: 9090
  context: /socket.io  # 关键：Engine.IO v3 客户端连接路径
  max-frame-payload-length: 1048576  # 1MB
  max-http-content-length: 1048576    # 1MB
  ping-timeout: 60000                # 60秒
  ping-interval: 25000               # 25秒（建议小于 NAT 超时时间）
  upgrade-timeout: 10000             # 关键：Polling 升级到 WebSocket 的超时时间，10秒

# JWT 配置
jwt:
  public-key-path: classpath:jwt/rsa_public_key.pem  # JWT 公钥路径
  expire-time: 7200  # Token 过期时间（秒），默认 2 小时

# 日志配置
logging:
  level:
    com.xindazhou.message: debug
    com.corundumstudio.socketio: info

--- #################### 新大洲相关配置 ####################

xdz:
  # API 访问日志配置
  access-log:
    enable: true # 是否启用 API 访问日志
    mode: log-only # 存储模式：log-only（默认，只记录日志文件）| direct（直接写数据库）

  info:
    version: 1.0.0
    base-package: com.xindazhou.message
  web:
    admin-ui:
      url: http://localhost:8080 # Admin 管理后台 UI 的地址
    # CORS 配置：当使用 API Gateway 时，CORS 应该在 Gateway 层面统一处理，
    # 业务服务不应该再添加 CORS 头，否则会导致重复的 CORS 头。
    cors:
      enabled: false  # 禁用业务服务的 CORS 配置，由 Gateway 统一处理

