#!/usr/bin/env node

/**
 * 素材生产系统 - 环境配置工具
 *
 * 自动检测本地路径，生成 config.json。
 * 新机器首次使用时运行一次即可。
 *
 * 用法: node setup.js
 */

const fs = require('fs')
const path = require('path')
const os = require('os')

const CONFIG_PATH = path.join(__dirname, 'config.json')

// ============================================================================
// 自动检测
// ============================================================================

function detectJianyingDraftPath() {
  const username = os.userInfo().username
  const candidates = [
    `C:/Users/${username}/AppData/Local/JianyingPro/User Data/Projects/com.lveditor.draft`,
    `C:/Users/${username}/AppData/Local/CapCut/User Data/Projects/com.lveditor.draft`,
  ]
  for (const p of candidates) {
    if (fs.existsSync(p)) return p
  }
  return candidates[0] // 默认返回剪映路径（即使不存在）
}

function detectCapcutMateDir() {
  const username = os.userInfo().username
  const candidates = [
    `C:/Users/${username}/capcut-mate`,
    path.join(os.homedir(), 'capcut-mate'),
  ]
  for (const p of candidates) {
    if (fs.existsSync(p)) return p
  }
  return candidates[0]
}

function detectCapcutMateApiBase() {
  return 'http://capcut.muyetools.cn/openapi/capcut-mate/v1'
}

// ============================================================================
// 主流程
// ============================================================================

function main() {
  console.log('素材生产系统 - 环境配置\n')

  if (fs.existsSync(CONFIG_PATH)) {
    console.log('config.json 已存在，跳过生成')
    console.log(`  路径: ${CONFIG_PATH}`)
    console.log('  如需重新配置，删除 config.json 后重跑\n')
    return
  }

  const config = {
    jianyingDraftPath: detectJianyingDraftPath(),
    capcutMateDir: detectCapcutMateDir(),
    capcutMateApiBase: detectCapcutMateApiBase(),
    imgbbApiKey: 'deprecated',
    geminiApiBaseUrl: '',
    geminiModel: 'gemini-3.1-flash-image-preview',
    geminiApiKey: '',
  }

  // 检测结果标注
  const jianyingExists = fs.existsSync(config.jianyingDraftPath)
  const capcutExists = fs.existsSync(config.capcutMateDir)

  console.log('自动检测结果:')
  console.log(`  剪映草稿目录: ${config.jianyingDraftPath} ${jianyingExists ? '[存在]' : '[未找到，请确认剪映已安装]'}`)
  console.log(`  CapCut Mate:  ${config.capcutMateDir} ${capcutExists ? '[存在]' : '[未找到，需安装]'}`)
  console.log(`  API 地址:      ${config.capcutMateApiBase}`)
  console.log('')

  fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), 'utf-8')
  console.log(`已生成: ${CONFIG_PATH}`)
  console.log('')
  console.log('请补充以下必填项:')
  console.log('  ossRegion         - 阿里云 OSS Region')
  console.log('  ossAccessKeyId    - 阿里云 OSS AccessKeyId')
  console.log('  ossAccessKeySecret - 阿里云 OSS AccessKeySecret')
  console.log('  ossBucket         - 阿里云 OSS Bucket')
  console.log('  geminiApiBaseUrl  - Gemini API 地址')
  console.log('  geminiApiKey      - Gemini API Key')
  console.log('')
  console.log('编辑 config.json 后即可使用。')
}

main()
