/**
 * DraftRecallBrief AiCall — 把"本次召回原因 + 历史治疗 + 画像"提炼成**一句话召回简报**。
 *
 * 用途:详情页「参考话术」标题下方那行(原 RecallReasonLine 结构化富文本),压成一句话,
 * 回答客服打这通电话最该心里有数的三问:
 *   ① 患者是谁(从生命周期 / 价值 / 类型看)
 *   ② 帮患者解决什么问题(应治未治的缺口)
 *   ③ 邀约到诊是做什么(具体治疗动作)
 *
 * 跟 DraftRecallSummary / DraftPersonaSummary 平行,但输入更全(三类信号合一)。
 */
export interface DraftRecallBriefInput {
  patientNameMasked: string;
  /** 画像标签(含生命周期 / 价值分群 / 人群细分 → 判断"患者是谁")*/
  persona: Array<{ label: string; value: string }>;
  /** 历史治疗类目 + 次数(已做过什么,判断熟客/新客 + 信任锚)*/
  treatmentHistory: Array<{ category: string; count: number }>;
  /** 本次召回原因(应治未治项)*/
  reasons: Array<{
    subLabel: string; // 子场景中文(如 缺失牙未启动修复;仅医生建议时为建议名"建议种植")
    /** 触发来源:diagnosis=医生确诊 / recommendation=医生建议(非确诊) / image_finding=影像AI。
     *  recommendation 时**不可假设牙已缺失/空着**,按医生建议的治疗动作措辞。 */
    source: 'diagnosis' | 'recommendation' | 'image_finding';
    diagnosis: string | null; // 触发诊断中文(如 牙列丢失/缺牙);仅建议时为 null
    tooth: string | null; // 牙位(如 47)
    daysSinceText: string; // 距今(如 131 天(4 个月))
    expectedCategories: string[]; // 期望/未启动治疗类目中文(如 种植 / 修复 / 冠桥)
  }>;
}

export interface DraftRecallBriefOutput {
  /** 一句话召回简报(中文,≤50 字最佳)*/
  summary: string;
}
