// ============================================
// 逻辑范式库 - 不变的写作逻辑内核 (The Controller Layer)
// ============================================
// 这些是"射击姿势"，无论靶子（维度）如何变化，逻辑保持不变

export const LOGIC_PARADIGMS = {
  // 深度归因分析法 - 用于原因剖析
  'deep-attribution': {
    id: 'deep-attribution',
    name: '深度归因分析法',
    description: '从"现象描述"到"本质探究"的跨越，采取归因分析法进行深度溯源',
    applicableSection: '原因剖析',
    
    // 四层递归逻辑 (Universal Kernel) - 含标准化句式模板
    layers: [
      {
        id: 'phenomenon',
        name: '现象锚定',
        question: '这种问题具体表现为什么行为？',
        examples: ['拖延推诶', '不敢担责', '只喊口号不落实'],
        // 标准化句式模板（可直接嵌入Prompt）
        sentenceTemplate: '在{维度名称}方面，存在{具体行为偏差}的问题，具体表现为{1-2个具象案例/场景}；'
      },
      {
        id: 'causality',
        name: '归因溯源',
        question: '为什么会有这种行为？',
        examples: ['怕出事', '没学透', '私心杂念'],
        sentenceTemplate: '究其根源，是对{维度核心要求}的认识存在偏差，本质上是{思想/认知/态度层面的问题}；'
      },
      {
        id: 'mapping',
        name: '价值映射',
        question: '这反映了什么深层缺失？（连接到世界观、人生观、价值观）',
        examples: ['党性不纯', '宗旨意识淡薄', '理想信念动摇'],
        sentenceTemplate: '这反映出世界观、人生观、价值观这个“总开关”拧得不紧，{党性/宗旨/纪律}意识树得不牢；'
      },
      {
        id: 'closing',
        name: '闭环回扣',
        question: '这种缺失导致了什么后果？',
        examples: ['阻碍了发展', '损害了形象', '贻误了工作'],
        sentenceTemplate: '最终导致{工作成效/政治效果/群众口碑}方面出现{具体负面影响}，与{上级要求/政策导向}存在差距。'
      }
    ],
    
    // 结构公式
    structureFormula: '[根源定位] + [具体阐释]',
    
    // 写作原则（常量）
    principles: [
      {
        title: '拒绝表面化',
        description: '不要只停留在"做了什么"或"没做什么"，必须挖掘"大脑里在想什么"'
      },
      {
        title: '触及总开关',
        description: '所有的不足，最终都要追溯到"世界观、人生观、价值观"的偏差，或者"党性修养"的弱化'
      },
      {
        title: '因果闭环',
        description: '每条原因必须与问题形成严密的因果对应关系'
      }
    ],
    
    // 语言风格规范
    languageStyle: {
      sentencePattern: '采用"定性判断 + 具体表现 + 深层归因"的结构',
      vocabulary: ['总开关拧得不紧', '思想防线不牢', '政绩观偏差', '党性锤炼不够严格', '理论武装不够深入'],
      logic: '体现"从现象到本质"的跨越'
    }
  },

  // 递进式问题查摆法 - 用于存在问题部分
  'progressive-problem': {
    id: 'progressive-problem',
    name: '递进式问题查摆法',
    description: '采用三段递进结构进行问题查摆，不可省略任何一环',
    applicableSection: '存在问题',
    
    // 三段递进结构
    layers: [
      {
        id: 'qualification',
        name: '定性判断',
        question: '用一句话概括问题的本质',
        examples: ['理论学习的深度不够', '担当意识不够强', '调查研究不够深入']
      },
      {
        id: 'manifestation',
        name: '具体表现',
        question: '这个问题具体表现在哪些方面？',
        examples: ['满足于读通报、看标题，缺乏系统钻研', '遇到矛盾绕着走']
      },
      {
        id: 'consequence',
        name: '后果/例证',
        question: '导致了什么后果或有什么具体例证？',
        examples: ['导致在指导具体工作时，出现"本领恐慌"', '使得群众反映的问题久拖不决']
      }
    ],
    
    structureFormula: '[定性判断] + [具体表现] + [后果/例证分析]',
    
    principles: [
      {
        title: '画像精准',
        description: '问题查摆真正做到"个人对照"，紧密结合分管领域和日常工作'
      },
      {
        title: '避免空泛',
        description: '避免"集体病"表述，必须有具体的岗位、职责、事件描述'
      },
      {
        title: '不可省略',
        description: '三段结构不可省略任何一环，每一环都是必要的'
      }
    ],
    
    languageStyle: {
      sentencePattern: '采用"定性判断 + 具体表现 + 后果/例证"的递进结构',
      vocabulary: ['学用脱节', '上接天线、下接地气', '好人主义', '本领恐慌', '红脸出汗', '刀刃向内'],
      moderators: ['有待', '不够', '有所'],  // 批评用语谦抑
      connectors: ['导致', '造成', '使得', '以至于', '从而']  // 后果连接词
    }
  },

  // 整改措施法 - 用于整改部分
  'remediation': {
    id: 'remediation',
    name: '整改措施法',
    description: '采用问题-措施对应结构，包含可量化指标，语气坚定',
    applicableSection: '整改措施',
    
    layers: [
      {
        id: 'target',
        name: '针对问题',
        question: '明确指出针对哪个问题？'
      },
      {
        id: 'action',
        name: '具体措施',
        question: '采取什么具体行动？'
      },
      {
        id: 'indicator',
        name: '量化指标',
        question: '如何衡量整改效果？'
      }
    ],
    
    structureFormula: '[针对问题] + [具体措施] + [量化指标]',
    
    principles: [
      {
        title: '一一对应',
        description: '每条措施必须与前文的问题一一对应，形成完整闭环'
      },
      {
        title: '可量化',
        description: '包含可量化指标（如：每月精读X篇、每季度调研X次）'
      },
      {
        title: '语气坚定',
        description: '使用坚定动词：持续用力、筑牢、压实、锤炼'
      }
    ],
    
    languageStyle: {
      vocabulary: ['持续用力', '筑牢', '压实', '锤炼', '久久为功', '一以贯之'],
      quantifiers: ['每月', '每季度', '每年', '至少X次', '不少于X篇']
    }
  },

  // 典型案例剖析法 - 用于案例分析
  'case-study': {
    id: 'case-study',
    name: '典型案例剖析法',
    description: '采用"以案说德、以案说纪、以案说法、以案说责"四维剖析',
    applicableSection: '典型案例',
    
    layers: [
      {
        id: 'case-virtue',
        name: '以案说德',
        question: '这个案例在道德层面反映了什么问题？'
      },
      {
        id: 'case-discipline',
        name: '以案说纪',
        question: '这个案例在纪律层面违反了哪些规定？'
      },
      {
        id: 'case-law',
        name: '以案说法',
        question: '这个案例在法规层面触犯了什么条例？'
      },
      {
        id: 'case-responsibility',
        name: '以案说责',
        question: '这个案例在责任层面涉及哪些失职？'
      }
    ],
    
    structureFormula: '[案例概述] + [四维剖析] + [举一反三]',
    
    principles: [
      {
        title: '四维完整',
        description: '德、纪、法、责四个维度必须全覆盖'
      },
      {
        title: '举一反三',
        description: '必须联系自身查摆类似风险点'
      }
    ]
  }
}

// 获取逻辑范式列表
export const getLogicParadigmList = () => {
  return Object.values(LOGIC_PARADIGMS)
}

// 根据ID获取逻辑范式
export const getLogicParadigmById = (id) => {
  return LOGIC_PARADIGMS[id] || null
}

// 生成逻辑范式的Prompt片段
export const buildLogicPrompt = (logicId, dimensions = []) => {
  const logic = LOGIC_PARADIGMS[logicId]
  if (!logic) return ''
  
  let prompt = `\n## ${logic.name}\n`
  prompt += `${logic.description}\n\n`
  
  // 添加结构公式
  prompt += `### 结构公式\n`
  prompt += `${logic.structureFormula}\n\n`
  
  // 添加层次说明
  prompt += `### 分析层次\n`
  logic.layers.forEach((layer, i) => {
    prompt += `${i + 1}. **${layer.name}**：${layer.question}\n`
    if (layer.examples?.length) {
      prompt += `   示例：${layer.examples.join('、')}\n`
    }
  })
  prompt += '\n'
  
  // 添加原则
  prompt += `### 必须遵循的原则\n`
  logic.principles.forEach((p, i) => {
    prompt += `${i + 1}. **${p.title}**：${p.description}\n`
  })
  prompt += '\n'
  
  // 添加语言规范
  if (logic.languageStyle) {
    prompt += `### 语言规范\n`
    if (logic.languageStyle.sentencePattern) {
      prompt += `- 句式：${logic.languageStyle.sentencePattern}\n`
    }
    if (logic.languageStyle.vocabulary?.length) {
      prompt += `- 术语库：${logic.languageStyle.vocabulary.join('、')}\n`
    }
    if (logic.languageStyle.moderators?.length) {
      prompt += `- 程度词（批评用语谦抑）：${logic.languageStyle.moderators.join('、')}\n`
    }
    if (logic.languageStyle.connectors?.length) {
      prompt += `- 后果连接词：${logic.languageStyle.connectors.join('、')}\n`
    }
  }
  
  // 如果提供了维度，添加维度配置
  if (dimensions.length > 0) {
    prompt += `\n### 本次任务的维度配置\n`
    dimensions.forEach((d, i) => {
      prompt += `${i + 1}. **${d.name}**：${d.focus || d.description || ''}\n`
    })
  }
  
  return prompt
}
