import { z } from 'zod';

/**
 * DraftPlanSummary 输出 schema。
 * 3 段 Markdown 字符串,LLM 一次返回。
 */
export const DraftPlanSummarySchema = z.object({
  onePage: z
    .string()
    .min(50)
    .max(600)
    .describe(
      '一页快读 — 中文 200 字内 Markdown。客服打电话前 30 秒扫一眼,必含:称呼/价值/上次到店/本次主要任务/风险提示。**禁止 bullet list**,用 2-3 个短段落。',
    ),

  medicalRecord: z
    .string()
    .min(80)
    .max(1500)
    .describe(
      '病历摘要 — 中文 500 字内 Markdown。按时间倒序整理就诊/治疗/付费/影像 4 大类事件。可以用 bullet list 或时间轴。重点突出"待做治疗"和"未闭环的随访"。',
    ),

  treatmentChain: z
    .string()
    .min(80)
    .max(1500)
    .describe(
      '治疗链摘要 — 中文 500 字内 Markdown。按治疗链分节(每条链一个 `### 链名` 标题),讲清楚:当前阶段、下一步建议、若已闭环则一句话总结。**必须**引用具体牙位号 / 治疗节点。',
    ),
});

export type DraftPlanSummaryOutputZ = z.infer<typeof DraftPlanSummarySchema>;
