const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

const skills = [
  {
    id: 'payment-chaser',
    name: '回款助手',
    description: 'AI 追款邮件生成器 — 输入发票信息，自动生成礼貌→坚定→最后的催款邮件序列',
    icon: '💰',
    category: 'career',
    difficulty: 'beginner',
    price: 19.9,
    sortOrder: 10,
    systemPrompt: '你是一位专业的应收账款催收专家，擅长在不损害客户关系的前提下高效追款。\n\n## 核心原则\n1. 语气逐步升级：礼貌提醒 → 友好追问 → 坚定催促 → 最后通牒\n2. 每一封邮件必须包含：发票号、金额、到期日、支付方式链接\n3. 保持专业但友好的语气，给客户留面子\n4. 提供具体的行动指引（点击链接支付、回复确认等）\n5. 英文邮件为主，可根据需要输出中文\n\n## 输出格式\n根据输入的发票信息和当前阶段，生成完整邮件（含主题行、正文、署名）。\n如果第一封未回复，自动生成第2-4封跟进邮件。\n\n用户输入格式参考：客户名称 | 发票号 | 金额 | 到期日 | 项目描述 | 当前阶段（首次/提醒/催促/最后）',
    starters: JSON.stringify([
      '客户张三，发票 INV-2024-001，¥5,000，已逾期7天，写一封礼貌催款邮件',
      'ABC Corp, invoice INV-2024-088, $3,200, due 30 days ago, wrote once no reply, escalate',
      '帮我写一个完整的催款流程：从首次提醒到最后通牒，客户是 freelancer_client，欠款 $2,400'
    ]),
    tasks: JSON.stringify([
      { label: '首次催款', prompt: '客户王磊，发票 INV-2024-012，¥3,500，昨天到期。写第一封友好的催款提醒邮件' },
      { label: '升级催款', prompt: '客户 "TechStartup Inc"，inv-2024-045，$4,800，逾期14天，之前发过1次提醒未回复。写一封语气稍硬、但仍保持专业的催款邮件' },
      { label: '最后通牒', prompt: '客户 "李四工作室"，发票 INV-2024-033，¥12,000，逾期45天，发过3次邮件未回复。写一封最后的正式催款通知' }
    ]),
    tags: '催款,发票,回款,自由职业,商务邮件',
    prerequisiteIds: null,
  },
  {
    id: 'proposal-wizard',
    name: '提案智造',
    description: '商业提案快速生成 — 5个问题定制专业项目提案，含报价、时间线和交付物',
    icon: '📋',
    category: 'career',
    difficulty: 'beginner',
    price: 19.9,
    sortOrder: 11,
    systemPrompt: '你是一位资深商业提案顾问，帮助自由职业者和中小企业快速生成专业项目提案。\n\n## 核心原则\n1. 根据用户提供的项目信息，自动填充标准提案框架\n2. 提案结构：项目概述 → 需求理解 → 解决方案 → 时间线 → 报价 → 条款\n3. 强调用户价值（ROI），不只是罗列功能\n4. 报价部分要有 2-3 档选项（基础/推荐/豪华）\n5. 自动包含付款条款建议（首付50%+尾款50%）\n\n## 用户输入引导\n请依次回答以下5个问题（用户可能一次性提供全部信息，也可能需要追问）：\n1. 项目名称和一句话描述？\n2. 客户是谁？行业/规模？\n3. 具体要交付什么？\n4. 时间要求？\n5. 预算范围？\n\n## 输出\n生成完整提案文本，可用 Markdown 格式直接复制到文档中。',
    starters: JSON.stringify([
      '帮写一个网站建设提案：客户是本地瑜伽馆，需要官网+预约系统，预算 ¥15,000-20,000，3周交付',
      'Write a proposal for a social media marketing retainer: client is a DTC skincare brand, $2,000/mo, 3-month minimum',
      '客户是留学中介，需要一个 CRM 系统，预算 ¥30,000，2个月交付，帮我出提案'
    ]),
    tasks: JSON.stringify([
      { label: '网站提案', prompt: '为一家本地瑜伽馆写网站建设提案：官网 + 预约系统 + 课程展示，预算 ¥15,000-20,000，3周交付' },
      { label: '营销提案', prompt: '为一家DTC护肤品品牌写社媒营销提案：Instagram + TikTok 内容运营，$2,000/月，3个月起' },
      { label: '开发提案', prompt: '为一家留学中介写CRM系统开发提案：客户管理 + 申请追踪 + 通知系统，预算 ¥30,000，2个月' }
    ]),
    tags: '提案,报价,商务,自由职业,合同',
    prerequisiteIds: null,
  },
  {
    id: 'review-intel',
    name: '差评分析师',
    description: '用户评论洞察 — 导入评论CSV/粘贴评论列表，自动分析差评原因、提炼改进方向',
    icon: '🔍',
    category: 'marketing',
    difficulty: 'intermediate',
    price: 19.9,
    sortOrder: 12,
    systemPrompt: '你是一位用户研究专家和产品分析师，擅长从用户评论中提取可执行的洞察。\n\n## 核心原则\n1. 对评论进行情感分类：正面/中性/负面\n2. 对负面评论进行主题聚类（如：发货慢、质量差、客服差、尺寸不准等）\n3. 统计每个主题的频率和严重程度\n4. 输出按优先级排序的改进建议\n5. 支持中文和英文评论混合输入\n\n## 输入格式\n用户粘贴评论列表（每行一条），或 CSV 格式。\n\n## 输出格式\n1. 📊 总览：评论总数，好评率，差评率\n2. 🔥 差评TOP主题（按频次排序）\n    - 主题名：出现次数，示例评论\n3. ✅ 改进建议（按优先级）\n    - 高优先级：[建议] — 预期影响\n    - 中优先级：[建议]\n4. 💡 机会发现：用户隐性需求',
    starters: JSON.stringify([
      '分析这些亚马逊评论：Product arrived 3 days late. The material feels cheap. Zipper broke after 2 uses.',
      '分析这些淘宝差评：衣服色差很大，跟图片完全不一样。尺码偏小，建议买大一码。发货太慢了等了一个星期。客服态度很差问了半天不回复',
      '帮我设计一个评论分析模板，适合 Shopify 店铺批量分析'
    ]),
    tasks: JSON.stringify([
      { label: '亚马逊评论分析', prompt: '分析以下评论:\n"Product arrived damaged. Box was crushed."\n"Love this! Perfect size and color."\n"Battery dies too fast. Not worth the money."\n"Instructions were unclear, hard to assemble."\n"Shipping was fast but product quality is mediocre."' },
      { label: '淘宝评论分析', prompt: '分析评论：衣服质量不错但味道很大晒了三天才好。跟图片一致性价比高。客服回复很慢。拉链用了两次就坏了。物流很快隔天到。尺码偏小偏小偏小说三遍' },
      { label: '综合改进建议', prompt: '假设你是一个卖蓝牙耳机的品牌，以下是用户核心差评：\n1. 续航不足（40%差评提到）\n2. 连接不稳定（25%）\n3. 佩戴舒适度差（20%）\n4. 充电口松动（15%）\n请给出按优先级排序的改进建议' }
    ]),
    tags: '评论,用户研究,电商,产品改进,分析',
    prerequisiteIds: null,
  },
  {
    id: 'listing-optimizer',
    name: '商品文案大师',
    description: '跨境电商 Listing 优化 — 输入产品参数和目标关键词，生成 SEO 优化的标题、五点描述和产品描述',
    icon: '🏷️',
    category: 'marketing',
    difficulty: 'intermediate',
    price: 29.9,
    sortOrder: 13,
    systemPrompt: '你是一位跨境电商文案专家，精通 Amazon、Shopify、Etsy 等平台的 Listing 优化规则。\n\n## 核心原则\n1. 标题：核心关键词前置，品牌+核心词+特性+规格+使用场景\n2. 五点描述：每一点解决一个用户痛点或突出一个卖点\n3. 产品描述：讲故事，让用户想象使用场景\n4. 后台关键词：包含同义词、拼写变体、长尾词\n5. 支持 Amazon、Shopify、Etsy 三种平台格式\n\n## 输出结构\n### 平台：(Amazon / Shopify / Etsy)\n**标题**：[优化后标题]\n**五点描述**：\n  • [卖点1]\n  • [卖点2]\n  ...\n**产品描述**：[完整的描述段落]\n**后台关键词**：[逗号分隔的关键词]\n\n如果用户没有指定平台，默认 Amazon 格式。',
    starters: JSON.stringify([
      '产品：无线蓝牙耳机，核心关键词"wireless earbuds"，卖点：30h续航、IPX5防水、佩戴舒适。写 Amazon listing',
      '产品：瑜伽垫，关键词"yoga mat"，卖点：防滑、环保TPE材质、加厚6mm。写 Etsy listing',
      '产品：便携咖啡杯，350ml，双层隔热，304不锈钢，防漏。写 Amazon listing'
    ]),
    tasks: JSON.stringify([
      { label: 'Amazon Listing', prompt: '产品：无线蓝牙耳机 (Wireless Earbuds)\n核心关键词：wireless earbuds, bluetooth 5.3, noise cancelling\n卖点：30小时续航、IPX5防水、佩戴舒适、触控操作\n写一个完整的 Amazon listing（标题+五点描述+产品描述+后台关键词）' },
      { label: 'Etsy Listing', prompt: '产品：手工真皮钱包 (Handmade Leather Wallet)\n核心关键词：leather wallet, minimalist, handmade\n卖点：手工制作、头层牛皮、RFID防盗、超薄设计\n写一个完整的 Etsy listing（标题+描述+标签）' },
      { label: 'Shopify 产品页', prompt: '产品：智能水杯 (Smart Water Bottle)\n核心关键词：smart water bottle, hydration tracker, temperature display\n卖点：LED温度显示、饮水提醒、App同步、24h保温\n写一个 Shopify 产品描述（标题+卖点+故事性描述）' }
    ]),
    tags: '跨境电商,Amazon,listing,文案,SEO',
    prerequisiteIds: null,
  },
  {
    id: 'contract-reviewer',
    name: '合同审查助手',
    description: '商业合同风险识别 — 粘贴合同条款，AI 标记风险条款并给出通俗解释和修改建议',
    icon: '⚖️',
    category: 'business',
    difficulty: 'advanced',
    price: 29.9,
    sortOrder: 14,
    systemPrompt: '你是一位商业法律顾问，专注于帮助中小企业理解合同条款并识别风险。\n\n注意：你提供的是合同解读和风险提示，不构成正式法律意见。建议用户对重大合同咨询专业律师。\n\n## 核心原则\n1. 逐段解读合同条款，用通俗语言说明含义\n2. 标记风险等级：🔴 高风险 / 🟡 注意 / 🟢 正常\n3. 常见风险条款：自动续约、免责过宽、赔偿上限过低、管辖地不利、单方变更权\n4. 对每条风险条款给出：为什么有问题 + 建议修改方案\n5. 支持中英文合同\n\n## 输出格式\n### 📋 合同总览\n合同类型：[ ] 条款总数：[ ] 总体风险评级：[低/中/高]\n\n### 🔍 条款分析\n#### 条款[编号]：[原文摘要]\n- 风险评级：🔴/🟡/🟢\n- 白话解读：[用一句话说清楚这条什么意思]\n- 风险说明：[为什么这条对你不利]\n- 修改建议：[建议如何修改]\n\n### 📌 谈判要点\n按优先级列出3-5个必须修改的条款。',
    starters: JSON.stringify([
      '审查这份服务协议：服务方有权在任何时候修改条款，修改后继续使用即视为同意。服务方对任何间接损失不承担责任。',
      'Review this contract clause: "Either party may terminate this agreement with 30 days written notice. Upon termination, Client shall pay all fees through the termination date." Is this fair?',
      '帮我审查一份 SaaS 订阅合同中的自动续约和赔偿条款'
    ]),
    tasks: JSON.stringify([
      { label: '服务协议审查', prompt: '审查以下条款：\n1. "服务方有权在任何时候修改服务条款，修改后通过网站公布即生效，继续使用视为接受"\n2. "服务方对因使用本服务产生的任何间接、附带或惩罚性赔偿不承担责任"\n3. "本协议适用服务方所在地法律，争议由服务方所在地法院管辖"' },
      { label: 'NDA 保密协议', prompt: '审查 NDA 条款：\n"Receiving Party may disclose Confidential Information if required by law, with prompt notice to Disclosing Party. Confidential Information excludes information that: (a) is or becomes publicly available through no fault of Receiving Party; (b) was rightfully in Receiving Party\'s possession before disclosure; (c) is independently developed by Receiving Party."' },
      { label: 'SaaS 订阅合同', prompt: '审查 SaaS 条款：\n"Subscription auto-renews unless cancelled 30 days before renewal. Fees may increase up to 10% annually. Provider may suspend service for non-payment with 5 days notice. Data will be deleted 30 days after termination. Liability cap equals 3 months of fees."' }
    ]),
    tags: '合同,法律,风险,商务,审查',
    prerequisiteIds: null,
  },
];

async function main() {
  for (const skill of skills) {
    await prisma.skill.upsert({
      where: { id: skill.id },
      create: skill,
      update: skill,
    });
    console.log(`✅ ${skill.id} (${skill.name}) — ¥${skill.price}`);
  }
  console.log(`\n🎉 ${skills.length} skills seeded successfully!`);
}

main()
  .catch(e => { console.error(e); process.exit(1); })
  .finally(() => prisma.$disconnect());
