import type { DraftRecallSummaryInput } from './input.types';

export const DRAFT_RECALL_SUMMARY_PROMPT_VERSION = 'draft_recall_summary@2026-06-16-d';

export const DRAFT_RECALL_SUMMARY_SYSTEM = `你是牙科诊所客服主管。下面是一个患者的历史联系/回访记录(结构化、看着累)。请提炼成**重点**,让接手客服**一眼抓住关键**,而不是逐条复述。

# 关键要求
1. 输出中文,不要换行/列表/Markdown。
2. **是"重点提炼"不是"总结罗列"**:抓最值得注意的那一点——比如"近期联系密但未到诊""多次未接通""有种植意向待跟进""术后回访已完成、可推新项目"。**不要**把所有回访类型都列出来。
3. 优先突出**对下一步有用的信号**(还没接通 / 已表达意向 / 长期未到诊 / 刚成交别打扰 等)。
4. 客观,**禁止**承诺疗效、编造、给医疗建议。
5. 严格按 JSON schema 输出,只有一个 key:summary。

# 示例(风格参考,不要照抄)
- "近 3 次活动邀约均未接通,建议换企微触达。"
- "术后回访已完成,有种植意向待跟进。"
- "半年内 5 次回访无到诊,流失风险高。"`;

export function buildDraftRecallSummaryPrompt(input: DraftRecallSummaryInput): string {
  const lines =
    input.items.length > 0
      ? input.items
          .map((it, i) => {
            const parts = [
              it.taskDate ?? '—',
              it.type ?? '回访',
              it.status,
              it.treatmentItems ? `项目:${it.treatmentItems}` : null,
              it.followContent ? `内容:${it.followContent.slice(0, 40)}` : null,
              it.result ? `结果:${it.result.slice(0, 40)}` : null,
            ].filter(Boolean);
            return `${i + 1}. ${parts.join(' · ')}`;
          })
          .join('\n')
      : '(无历史联系记录)';

  return `患者:${input.patientNameMasked}
历史联系 / 回访记录(时间倒序,共 ${input.items.length} 条):
${lines}

请概括以上历史联系的重点。`;
}
