"use strict";

/** 仿写提示词（对齐 zhenqianba VideoRewriteOptimizer） */

class VideoRewriteOptimizer {
  static replacePromptVariables(template, content) {
    return String(template)
      .replace(/\{\{content\}\}/g, content)
      .replace(/\{content\}/g, content)
      .replace(/\{\{text\}\}/g, content)
      .replace(/\{text\}/g, content);
  }

  static getStyleGuide(style) {
    const guides = {
      casual: "轻松随意、接地气、易产生共鸣，像和朋友聊天一样",
      professional: "正式专业、有信服力、适合商务或教育内容",
      emotional: "充满情感、富有感染力、能打动人心",
      humorous: "幽默诙谐、容易引起笑声和转发、保持积极态度",
    };
    return guides[style] || guides.casual;
  }

  static getLengthGuide(length) {
    const guides = {
      short: "简洁有力，100字以内，快速传达核心信息",
      medium: "适中篇幅，100-300字，既能完整表达又不显冗长",
      long: "详细深入，300-500字，充分展开论点和细节",
    };
    return guides[length] || guides.medium;
  }

  static buildDefaultPrompt(content, config) {
    const cfg = config || {};
    const styleGuide = this.getStyleGuide(cfg.style || "casual");
    const lengthGuide = this.getLengthGuide(cfg.length || "medium");
    return `你是一个专业的视频内容创意编写专家，擅长创作吸引人的视频文案。

## 原始文案：
${content}

## 仿写要求：
1. **风格**: ${styleGuide}
2. **长度**: ${lengthGuide}
3. **核心保持**: 保留原文案的核心信息和主题
4. **创意提升**: 在措辞、表述角度、情感吸引力上创新
5. **格式**:
   ${cfg.keepHashtags !== false ? "- 保留原有话题标签（#开头的内容）" : "- 不使用话题标签"}
   ${cfg.keepEmoji !== false ? "- 可以适当添加表情符号增加生动性" : "- 不使用表情符号"}
6. **禁止事项**:
   - 不要改变事实信息
   - 不要添加虚假承诺
   - 不要包含敏感词汇

请直接输出仿写后的文案，不需要任何额外说明或标记。`;
  }

  static buildRewritePrompt(content, config = {}, customPrompt) {
    // if (customPrompt && String(customPrompt).trim()) {
    //   return this.replacePromptVariables(customPrompt, content);
    // }
    
   // return this.buildDefaultPrompt(content, config);
   return content;
  }
}

module.exports = { VideoRewriteOptimizer };
