# 积分计费配置
# =============
# 修改此文件即可调整各业务积分价格，无需改动代码。重启服务后生效。
#
# 配置结构说明：
#   - fixed_costs:        固定积分业务（与使用量无关）
#   - duration_based_costs: 按秒计费业务（根据产出内容的实际/预估时长计算）
#   - free_services:      不扣积分的业务（黑名单）


# ── 固定积分业务 ──────────────────────────────────────
# 计费公式：消耗积分 = points（与输入输出量无关）
fixed_costs:
  # 脚本生成：根据用户输入的装修需求，AI 生成视频脚本文案
  script: 5

  # 文案润色：对已有脚本进行改写、优化、调整语气风格
  polish: 1

  # 标题生成：根据脚本内容自动生成多个标题建议
  title: 1

  # 声音复刻：录制用户声音样本，训练专属 TTS 音色（一次性高成本操作）
  voice_clone: 200

  # 字幕烧录：将生成的字幕文件烧录到视频中（FFmpeg 合成）
  subtitle_burn: 5

  # 封面设计：根据视频内容自动生成封面图
  cover_design: 5

  # 封面形象：上传人物照片 AI 抠图生成透明背景形象
  cover_avatar: 10

  # 压制成片：将多个素材片段合并为最终视频（FFmpeg 拼接）
  compose: 5


# ── 按秒计费业务 ──────────────────────────────────────
# 计费公式见各业务下的注释。共性参数：
#   min_points: 最低扣费积分（即使时长极短也至少扣这个数）
#   estimation: 执行业务前的预估参数（用于余额检查，取保守估计）
duration_based_costs:

  # ── TTS（文字转语音）──
  # 计费公式：max(min_points, ceil(实际音频秒数 / divisor))
  # 示例：12秒音频 → ceil(12/5) = 3 积分
  tts:
    divisor: 5          # 每 5 秒为 1 个计费单位
    min_points: 1       # 最短音频也至少扣 1 积分

    # 预估参数（执行业务前检查余额时使用）
    estimation:
      # 每个中文字符预估时长（秒）。
      # 计算依据：中文正常朗读语速约 200~250 字/分钟，取 240 字/分钟：
      #   60秒 ÷ 240字 = 0.25 秒/字
      # 注意：此为经验值，未经过 Vidu TTS 实测校准。实际时长受标点停顿、
      # 数字/英文混合、TTS 角色风格等因素影响，误差约 ±20%。
      # TODO: 收集实测数据后校准此值。
      seconds_per_char: 0.25

  # ── 视频生成 ──
  # 计费公式：max(min_points, ceil(实际视频秒数) × multiplier)
  # 说明：秒数先向上取整为整数，再乘以 multiplier。不足 1 秒按 1 秒计算。
  # 示例：4.5秒视频 → ceil(4.5) × 1 = 5 积分；0.8秒 → ceil(0.8) × 1 = 1 积分
  video:
    multiplier: 1       # 每秒视频消耗 1 积分
    min_points: 1       # 最短视频也至少扣 1 积分

    # 预估参数（执行业务前检查余额时使用）
    estimation:
      # 视频生成时长 = 输入音频时长，因此用 input_seconds 预估最准确。
      # 调用方需传入 input_seconds 参数。
      use_input_seconds: true


# ── 充值档位配置 ──────────────────────────────────────
# 前端充值弹窗展示的选项，由后端统一控制。
# 支持积分赠送：points 为实际到账积分数，amount_rmb 为支付金额（分）。
# label 为空时不显示标签角标。
recharge_options:
  - { price: 10000,  points: 2000,   label: "",      validity_days: 90 }
  - { price: 50000,  points: 11000,  label: "热销",  validity_days: 180 }
  - { price: 100000, points: 22500,  label: "推荐",  validity_days: 180 }
  - { price: 500000, points: 120000, label: "超值",  validity_days: 365 }


# ── 免费业务（不扣积分）───────────────────────────────
# 以下业务仅提取/处理数据，不产生 AI 生成内容，故不扣积分。
free_services:
  # 字幕生成：从视频中提取字幕文本（火山引擎字幕识别）
  - caption
