# ========================================
# 企业微信表格数据处理系统 - 配置示例
# ========================================
#
# 使用说明：
# 1. 复制本文件为 application.yml
# 2. 替换所有 "your_xxx_here" 为实际的配置值
# 3. 根据实际情况调整其他配置项
#

# ========================================
# 企业微信配置（必填）
# ========================================
wecom:
  # 企业 ID
  # 获取方式：企业微信管理后台 -> 我的企业 -> 企业信息 -> 企业 ID
  # 示例：ww1234567890abcdef
  corp-id: "your_corp_id_here"

  # 应用密钥
  # 获取方式：企业微信管理后台 -> 应用管理 -> 选择应用 -> Secret
  # 注意：需要给应用授予「企业微信文档」API 权限
  # 示例：abc123def456ghi789jkl012mno345pqr678stu901vwx234yz
  app-secret: "your_app_secret_here"

  # 文档 ID
  # 获取方式：打开企业微信文档，查看浏览器地址栏 URL
  # URL 格式：https://doc.weixin.qq.com/sheet/xxxxx
  # xxxxx 部分就是 doc-id
  # 示例：e3_AQMAAgAGACcAZQBnAGcA
  doc-id: "your_doc_id_here"

  # 工作表 ID
  # 获取方式：
  #   方法1：浏览器开发者工具查看网络请求中的 sheet_id 参数
  #   方法2：如果是第一个工作表，通常为 "1"
  # 示例：1
  sheet-id: "your_sheet_id_here"

  # 查询范围（A1 表示法）
  # 格式说明：
  #   - A1:Z100  表示查询 A 到 Z 列，前 100 行
  #   - A1:AE1000 表示查询 A 到 AE 列，前 1000 行
  #   - A:Z 表示查询 A 到 Z 列的所有行
  # 建议：根据实际表格的列数和预计行数设置，不宜过大
  # 示例：A1:AE1000
  range: "A1:AE1000"

  # 抓取间隔（分钟）
  # 说明：定时任务的执行间隔，默认 60 分钟
  # 建议：根据数据更新频率调整，不建议设置过小（避免频繁调用 API）
  fetch-interval: 60

  # 企业微信 API 地址（可选，使用默认值即可）
  access-token-url: "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
  spreadsheet-url: "https://qyapi.weixin.qq.com/cgi-bin/wedoc/spreadsheet/get_sheet_range_data"

# ========================================
# 应用配置
# ========================================
spring:
  application:
    name: excel-handle

  # ========================================
  # 数据库配置（必填）
  # ========================================
  datasource:
    # 数据库连接 URL
    # 格式：jdbc:mysql://主机:端口/数据库名?参数
    # 示例：jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
    url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8

    # 数据库用户名
    username: root

    # 数据库密码
    password: password

    # 数据库驱动（可选，Spring Boot 会自动识别）
    driver-class-name: com.mysql.cj.jdbc.Driver

    # 连接池配置（可选）
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      # 初始连接数
      initial-size: 5
      # 最小空闲连接数
      min-idle: 5
      # 最大活跃连接数
      max-active: 20
      # 获取连接等待超时时间（毫秒）
      max-wait: 60000
      # 配置间隔多久进行一次检测，检测需要关闭的空闲连接（毫秒）
      time-between-eviction-runs-millis: 60000
      # 配置连接在池中的最小生存时间（毫秒）
      min-evictable-idle-time-millis: 300000
      # 验证连接是否有效的 SQL
      validation-query: SELECT 1 FROM DUAL
      # 是否在获取连接时检测其有效性
      test-while-idle: true
      # 是否在获取连接时检测其有效性
      test-on-borrow: false
      # 是否在归还连接时检测其有效性
      test-on-return: false

  # ========================================
  # 定时任务配置
  # ========================================
  task:
    scheduling:
      # 定时任务线程池大小
      pool:
        size: 10
      # 线程名称前缀
      thread-name-prefix: schedule-

# ========================================
# MyBatis 配置（如果使用 MyBatis）
# ========================================
mybatis:
  # Mapper XML 文件位置
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  # 实体类包路径
  type-aliases-package: com.ruoyi.excel.entity,com.ruoyi.excel.domain,com.ruoyi.excel.wecom.entity
  # MyBatis 配置文件位置
  config-location: classpath:mybatis/mybatis-config.xml

# ========================================
# 日志配置
# ========================================
logging:
  level:
    # 根日志级别
    root: INFO
    # 企业微信相关日志级别（可设置为 DEBUG 查看详细信息）
    com.ruoyi.excel.wecom: INFO
    # SQL 日志级别（可设置为 DEBUG 查看 SQL 语句）
    com.ruoyi.excel.mapper: INFO
  # 日志文件配置
  file:
    # 日志文件路径
    path: logs
    # 日志文件名
    name: logs/excel-handle.log
  # 日志格式
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n"
    file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n"

# ========================================
# 服务器配置
# ========================================
server:
  # 服务端口
  port: 8080
  # 应用上下文路径
  servlet:
    context-path: /
  # Tomcat 配置
  tomcat:
    # URI 编码
    uri-encoding: UTF-8
    # 最大线程数
    max-threads: 200
    # 最小空闲线程数
    min-spare-threads: 10

# ========================================
# 其他配置
# ========================================

# 是否启用定时任务（可选，默认启用）
# 如果只想手动触发同步，可以设置为 false
# schedule.enabled: true

# 数据处理批次大小（可选，默认 1000）
# 用于控制批量处理数据的大小
# batch.size: 1000

# 缓存配置（可选）
# 用于控制数据去重缓存的行为
# cache:
#   # 是否启用缓存
#   enabled: true
#   # 缓存过期时间（小时）
#   expire-hours: 24
