// ─── Janus 销售副驾 · 演示数据（恒升智造故事线） ───

const SELLER = { name: 'Leo Knuth', product: '云脉数据中台' };

const CUSTOMER = {
  name: '恒升智造',
  full: '恒升智能装备制造有限公司',
  industry: '精密注塑装备 · 1200 人 · 年营收约 8.5 亿',
  deal: { amount: '¥86 万 / 年', stage: '方案演示', winRate: 45, days: 38 },
  meeting: { time: '09:30', title: '方案演示会 · 第二轮', via: '腾讯会议', focus: '回应 CFO 价格异议' },
  news: [
    { date: '06.03', text: '发布「降本增效」专项计划，CFO 沈蓉牵头执行' },
    { date: '05.28', text: '完成 2.3 亿元 B 轮融资，资金投向产线智能化' },
    { date: '05.12', text: '数字化中心新增 3 个数据分析岗位招聘' },
  ],
  people: [
    { name: '周凯', role: '数字化中心总监', stance: 'champion', stanceLabel: '内线 · 推动者', note: '主动推动立项，是我们在客户内部的同盟' },
    { name: '沈蓉', role: 'CFO', stance: 'decider', stanceLabel: '决策人 · 价格敏感', note: '关注回报周期，上次通话 3 次提到「预算收紧」' },
    { name: '王磊', role: 'IT 经理', stance: 'blocker', stanceLabel: '谨慎者 · 集成顾虑', note: '担心与现有金蝶 ERP 的对接成本，异议未解除' },
    { name: '陈志远', role: '总经理', stance: 'unknown', stanceLabel: '最终拍板 · 未触达', note: '尚未直接接触，信息只经周凯转述' },
  ],
  bant: [
    { k: 'B', label: '预算', value: '区间未确认', done: false, hint: '今天的关键任务' },
    { k: 'A', label: '决策权', value: '沈蓉 + 陈总联签', done: true },
    { k: 'N', label: '需求', value: '月度报表耗时 10h+ / 人', done: true },
    { k: 'T', label: '时间表', value: '意向 Q3 上线，待落实', done: false },
  ],
  timeline: [
    { date: '06.09', kind: '通话', text: '与沈蓉电话 22 分钟：认可方向，但「整体投入偏高」' },
    { date: '06.02', kind: '会议', text: '第一轮方案演示：周凯邀请 6 人参加，王磊缺席' },
    { date: '05.26', kind: '邮件', text: '发送初版方案书，周凯次日转发给沈蓉' },
    { date: '05.15', kind: '拜访', text: '首次到访工厂，确认报表人力痛点（约 120 万/年）' },
    { date: '05.08', kind: '线索', text: '周凯在行业展会留下联系方式，主动咨询' },
  ],
  insights: [
    { pr: 1, tag: '博弈建议', title: '别等她砍价，先给出分期方案', body: '沈蓉上次通话 3 次提到「预算收紧」。建议开场后主动抛出「按年订阅 + 首年分期」，把谈判从价格拉回价值。' },
    { pr: 2, tag: '客户动态', title: '把话术从「增长」切换为「降本」', body: '恒升上周刚启动「降本增效」专项（沈蓉牵头）。ROI 测算建议对标其报表团队约 120 万/年的人力投入。' },
    { pr: 3, tag: '风险预警', title: '王磊的集成异议还没解除', body: '他缺席了上一轮演示。建议今天主动邀请他提问，并备好金蝶 ERP 对接案例（宁波拓维，两周完成）。' },
  ],
};

// ─── 通话脚本：发言 + AI 实时事件 ───
const TRANSCRIPT = [
  { who: '周凯', side: 'them', text: '沈总今天也在，我们直接进方案吧，重点是投入这块。' },
  { who: 'Leo', side: 'me', text: '好的。今天我重点讲投入产出的测算，和上线节奏。' },
  { who: '沈蓉', side: 'them', text: '方案我看了，方向没问题，但整体投入还是偏高，今年集团对成本管得很严。',
    ai: { pr: 1, tag: '信号捕捉', title: '「预算」信号 · 本次第 1 次', body: '不要急于让价。先确认她的预算区间，再决定让步方式。' } },
  { who: '沈蓉', side: 'them', text: '而且一次性投这么大，万一用不起来，这个责任谁来担？',
    ai: { pr: 1, tag: '博弈建议', title: '她担心的不是钱，是风险', body: '「责任」是风险厌恶信号。建议切换到「订阅制 + 分期」话术，弱化一次性投入。' } },
  { who: 'Leo', side: 'me', text: '理解。我们可以按年订阅，首年分两期支付，先在两条产线跑通，看到数据再扩。' },
  { who: '沈蓉', side: 'them', text: '按年订阅的话，大概是什么量级？', bant: 'B' },
  { who: 'Leo', side: 'me', text: '86 万一年。对应您现在报表团队每年约 120 万的人力投入，第一年就是正回报。' },
  { who: '沈蓉', side: 'them', text: '这个数我要再核一下，不过框架上可以接受。',
    ai: { pr: 1, tag: '档案更新', title: '预算确认 ✓ 已写入客户档案', body: '可接受区间 ≤ 90 万/年。建议趁势向周凯确认上线时间表。', done: true } },
  { who: '王磊', side: 'them', text: '我比较关心和我们金蝶系统的对接，工作量到底有多大。',
    ai: { pr: 2, tag: '预测命中', title: '集成异议，如会前预警', body: '已为你备好《金蝶 ERP 对接案例 · 宁波拓维》，两周交付，可直接引用。' } },
  { who: 'Leo', side: 'me', text: '宁波拓维和你们用同一版本金蝶，对接两周完成。会后我把案例发您。' },
  { who: '周凯', side: 'them', text: '那我们目标 Q3 上线，下周二我安排给陈总做终版汇报。', bant: 'T',
    ai: { pr: 1, tag: '关键节点', title: '时间表确认 ✓ 下周二见陈总', body: '陈总是最终拍板人、首次出场。建议为他准备一页纸 ROI 摘要，我可以代拟。', done: true } },
];

// ─── 通话后 ───
const SUMMARY = {
  duration: '32 分钟',
  digest: [
    '沈蓉接受「订阅制 + 首年分期」框架，预算区间确认 ≤ 90 万/年；',
    '王磊提出金蝶 ERP 对接顾虑，已承诺会后发送宁波拓维案例；',
    '周凯确认目标 Q3 上线，下周二向总经理陈志远做终版汇报。',
  ],
  bantNew: [
    { k: 'B', label: '预算', value: '≤ 90 万 / 年', isNew: true },
    { k: 'T', label: '时间表', value: 'Q3 上线 · 下周二终版汇报', isNew: true },
  ],
  actions: [
    { text: '发送金蝶对接案例给王磊', due: '今天', auto: '邮件草稿已生成' },
    { text: '为陈总准备一页纸 ROI 摘要', due: '周四前', auto: '初稿已生成 90%' },
    { text: '终版汇报：管理层演示', due: '下周二 10:00', auto: '已写入日程' },
  ],
  winRate: { from: 45, to: 62 },
};

const EMAIL = {
  to: '沈蓉、周凯、王磊',
  subject: '今日会议纪要与下一步 · 云脉数据中台合作',
  parts: [
    { t: 'p', text: '沈总、周总监、王经理，下午好：' },
    { t: 'p', text: '感谢今天 32 分钟的深入讨论。按会议共识，向各位同步三点：' },
    { t: 'p', text: '一、商务框架：按年订阅 86 万/年，首年' },
    { t: 'slot', text: '分两期支付（40% + 60%）', hint: '分期比例待你确认' },
    { t: 'p', text: '，先在两条产线跑通后再扩展，对应贵司报表团队约 120 万/年的人力投入，首年即正回报。' },
    { t: 'p', text: '二、系统对接：随邮件附上《金蝶 ERP 对接案例 · 宁波拓维》，同版本系统，两周完成对接，供王经理评估。' },
    { t: 'p', text: '三、下一步：' },
    { t: 'slot', text: '下周二 10:00', hint: '汇报时间待与周总监核实' },
    { t: 'p', text: '向陈总做终版汇报，我们会提前两天提交一页纸 ROI 摘要。' },
    { t: 'p', text: '顺颂商祺，\nLeo Knuth · 云脉科技' },
  ],
};

// ─── 漏斗 ───
const STAGES = ['潜在识别', '资格鉴定', '需求发现', '方案演示', '谈判', '签约', '客户成功'];
const DEALS = [
  { stage: 3, name: '恒升智造', amount: '¥86 万', winRate: 62, days: 38, hot: true, next: '下周二 · 管理层终版汇报', delta: '+17%' },
  { stage: 3, name: '苏州科锐', amount: '¥54 万', winRate: 38, days: 51, risk: '14 天无互动', next: 'AI 建议：以新版白皮书为由重新触达' },
  { stage: 4, name: '上海凌动', amount: '¥120 万', winRate: 72, days: 64, next: '法务条款会签中 · 周五前回复' },
  { stage: 5, name: '杭州微步', amount: '¥43 万', winRate: 90, days: 29, next: '合同已发出，等待用印' },
  { stage: 2, name: '南京远拓', amount: '¥67 万', winRate: 41, days: 22, next: '本周四 · 需求访谈（生产总监）' },
  { stage: 2, name: '青岛海川', amount: '¥38 万', winRate: 30, days: 15, next: '痛点量化中 · 待补质检数据' },
  { stage: 1, name: '武汉广源', amount: '—', winRate: 18, days: 9, next: 'BANT 待确认 · 预算来源不明' },
  { stage: 1, name: '成都迅磊', amount: '—', winRate: 15, days: 6, next: '下周一 · 资格鉴定电话' },
  { stage: 0, name: '西安蓝湾 等 3 条线索', amount: '—', winRate: 8, days: 3, next: 'AI 正在补全公司画像' },
  { stage: 6, name: '深圳曜合', amount: '¥58 万', winRate: 100, days: 0, next: '使用率 84% · 续约健康' },
  { stage: 6, name: '宁波拓维', amount: '¥72 万', winRate: 100, days: 0, next: 'AI 检测到增购信号：新厂区投产' },
];
const STAGE_COUNTS = STAGES.map((_, i) => DEALS.filter(d => d.stage === i).length);

// ─── 复盘 ───
const REVIEW = {
  lost: {
    name: '广州迈合', amount: '¥68 万', closed: '05.30 输给竞品', stageReached: '谈判',
    verdict: '这一单不是输在价格，是输在三个被忽略的瞬间。',
    moments: [
      { when: '第二轮会议 · 05.06', title: '安全质疑被晾了 6 天', body: 'IT 总监李工提出数据安全质疑，我们 6 天后才回应。复盘显示：他当天就把顾虑上报了 CTO。', lesson: '高权重异议必须 48 小时内闭环' },
      { when: '报价阶段 · 05.18', title: '一步让到 15%，反而触发二轮压价', body: '未经试探直接给出 15% 折扣，被解读为「还有空间」。对方采购随即引入竞品比价。', lesson: '让步必须分层、有交换条件' },
      { when: '终局 · 05.27', title: '决策链里没有自己人', body: '全程只对接采购与 IT，没有发展内线。竞品绕过流程直达 CEO，48 小时内翻盘。', lesson: '每一单都要先回答：谁是我们的周凯？' },
    ],
  },
  won: {
    name: '深圳曜合', amount: '¥58 万', closed: '04.18 赢单', stageReached: '签约',
    takeaway: '赢单关键：首次拜访就拿到质检人力数据，所有报价都锚定在「每年节省 96 万」上，价格谈判只用了一轮。',
    verdict: '这一单赢在三个动作做对了——它们正是后来沉淀进打单手册的「赢单基因」。',
    moments: [
      { when: '首访 · 03.20', title: '第一次见面就拿到量化数据', body: '首访没急于讲产品，而是花 40 分钟让客户算清「质检环节每年的人力开销」，当场得到 96 万这个数。', gene: '首访即锚定可量化的人力节省' },
      { when: '报价 · 04.02', title: '报价全程锚定「每年省 96 万」', body: '所有商务沟通都把 58 万的投入放在 96 万的节省旁边讲，价格从未成为孤立话题，谈判只用了一轮。', gene: '价值锚点先行，价格只谈一轮' },
      { when: '决策 · 04.15', title: '提前发展了财务侧内线', body: '在决策前就争取到财务经理做内线，他在内部主动推动预算，绕开了采购的压价博弈。', gene: '每一单都要有自己的「周凯」' },
    ],
  },
  sop: '以上 3 条教训已沉淀进你的打单手册，下次同类局面会自动提醒。',
};

// ─── 马尔可夫毯：信号过滤（降噪） ───
const NOISE = {
  sources: 6, scanned: 47, filtered: 44, kept: 3,
  keptItems: [
    { tag: '要事', text: '恒升 9:30 复谈 · 胜负手是价格', tone: 'accent' },
    { tag: '风险', text: '苏州科锐已 14 天无互动', tone: 'warn' },
    { tag: '时限', text: '上海凌动条款今天到期', tone: 'bad' },
  ],
  dropped: ['行业群消息 22 条', '泛行业新闻 13 条', '与在谈单无关动态 9 条'],
};

// ─── DIKIWI 升维链：一通电话的提炼轨迹 ───
const LADDER = [
  { k: 'D', layer: '数据', who: 'Janus', label: '32 分钟通话 · 全程录音', sub: '原始素材' },
  { k: 'I', layer: '信息', who: 'Janus', label: '解析出 4 条结构化信息', sub: '预算≤90万 · Q3上线 · 金蝶对接 · 陈总拍板' },
  { k: 'K', layer: '知识', who: 'Janus', label: '匹配 2 个案例 + 分期话术', sub: '调自你的打单手册' },
  { k: 'I', layer: '洞察', who: 'Janus', label: '1 个致胜洞察', sub: '「她怕的不是钱，是担责」', star: true },
  { k: 'W', layer: '智慧', who: '你', label: '由你拍板博弈', sub: 'AI 只建议，不替你决定' },
  { k: 'I', layer: '影响', who: '共同', label: '胜率 45% → 62%', sub: '推进到谈判前夜' },
];

// ─── Stage 1：AI 拓客雷达（ICP + 触发事件） ───
const PROSPECT = {
  icp: '精密装备制造 · 营收 5–15 亿 · 已设数字化岗',
  leads: [
    { name: '华东精机', match: 92, trigger: '完成 A 轮 1.2 亿融资', kind: '融资' },
    { name: '瑞高装备', match: 87, trigger: '新设数字化运营总监岗', kind: '招聘' },
    { name: '中科智造', match: 81, trigger: '发布 2026 降本增效计划', kind: '战略' },
  ],
};

// ─── 战绩 / 北极星 + WSR 对内治理 ───
const STATS = {
  northStar: [
    { v: '6.5h', label: '本周省下的录入整理', delta: '相当于多打 5 通客户电话' },
    { v: '-9 天', label: '平均成交周期', delta: '51 → 42 天' },
    { v: '84%', label: 'AI 预测命中率', delta: '惊奇度持续下降' },
  ],
  capability: { now: 82, label: '你的博弈水平', note: '已达资深销售线的 82% · Janus 把顶级打法实时喂给你' },
  tally: { won: 7, lost: 3, live: 11, quarter: '本季度' },
  playbook: [
    { from: '广州迈合复盘', rule: '高权重异议必须 48 小时内闭环' },
    { from: '广州迈合复盘', rule: '让步必须分层、有交换条件' },
    { from: '深圳曜合赢单', rule: '首访即锚定可量化的人力节省' },
    { from: '宁波拓维赢单', rule: '同版本系统优先引用对接案例' },
  ],
  playbookTotal: 14,
};

Object.assign(window, { SELLER, CUSTOMER, TRANSCRIPT, SUMMARY, EMAIL, STAGES, DEALS, STAGE_COUNTS, REVIEW, NOISE, LADDER, PROSPECT, STATS });

// ─── 公司档案 (Company Profile) ───
const COMPANY = {
  name: '恒升智造', full: '恒升智能装备制造有限公司',
  verdict: { tone: 'warn', title: '高潜力 · 价格敏感型首单', body: '方向已认可，卡在「投入大、怕担责」。内线稳、阻力明确、拍板人未触达——典型的「临门一脚需要内部代言」型客户。' },
  reg: [
    ['统一社会信用代码', '91330200MA2H8K xx 9X'], ['成立时间', '2009 年 3 月'],
    ['注册资本', '1.2 亿元'], ['法定代表人', '陈志远'], ['企业类型', '有限责任公司'],
  ],
  scale: [
    ['员工规模', '约 1200 人'], ['年营收', '约 8.5 亿元 (2025)'],
    ['最新融资', 'B 轮 2.3 亿元 · 2025.05'], ['主营', '精密注塑装备'],
  ],
  tech: [
    { name: '金蝶 ERP', note: '财务 + 供应链 · 已用 6 年', key: true },
    { name: '钉钉', note: '协同办公' },
    { name: '自研 MES', note: '产线执行系统' },
  ],
  facts: [
    { label: '现有系统', value: '金蝶 ERP（财务+供应链 · 6 年）', flag: '需对接', tone: 'warn' },
    { label: '采购方式', value: '管理层联签 · 非公开招投标', tone: 'plain' },
    { label: '预算周期', value: '财年 Q3 · 与上线意向吻合', tone: 'good' },
    { label: '在用竞品', value: '暂无同类中台 · 以手工报表为主', tone: 'plain' },
    { label: '决策风格', value: 'CFO 主导 · 重回报周期', tone: 'accent' },
  ],
  relation: [
    { k: '历史成交', v: '无 · 本单为首次合作', tone: 'plain' },
    { k: '在跑机会', v: '云脉数据中台 · ¥86 万/年', tone: 'accent' },
    { k: '累计触点', v: '9 次 · 始于 05.08 展会', tone: 'plain' },
    { k: '关系健康度', v: '良好 · 有内线推动', tone: 'good' },
  ],
  sources: [
    { src: '天眼查', what: '工商 / 股权 / 法人', time: '今日同步' },
    { src: '公司官网', what: '降本增效计划公告', time: '06.03' },
    { src: '猎聘 / BOSS', what: '数据分析岗招聘', time: '05.12' },
    { src: '36氪 / 公开新闻', what: 'B 轮融资报道', time: '05.28' },
    { src: '你的历史邮件', what: '方案书 / 往来记录', time: '05.26' },
  ],
  projects: [
    { id: 'p1', name: '数据中台采购', stage: '方案演示', winRate: 62, amount: '¥86 万/年', main: true, next: '下周二 · 管理层终版汇报', people: ['周凯', '沈蓉', '王磊', '陈志远'] },
    { id: 'p2', name: '二期 · 产线质检扩展', stage: '需求发现', winRate: 28, amount: '¥40 万', next: '待主项目落地后启动', people: ['周凯', '王磊'] },
    { id: 'p3', name: '集团 BI 报表统一', stage: '潜在识别', winRate: 12, amount: '待估', lead: true, next: '周凯透露集团正在选型', people: ['周凯'] },
  ],
};

// ─── 人物档案 (Person Profiles) ───
const PEOPLE = {
  周凯: {
    role: '数字化中心总监', stance: 'champion', stanceLabel: '内线 · 推动者', influence: 65,
    style: '推动型 · 外向', styleNote: '行动派，愿意在内部替你说话，但需要你不断给他「弹药」证明立项正确。',
    contact: [['微信', '已加 · 活跃'], ['手机', '138 **** 2210'], ['邮箱', 'zhou.k@hsmfg.com']],
    cares: ['项目能否按时见效', '自己的立项判断不被打脸', '在陈总面前的话语权'],
    objection: null,
    history: [
      { d: '06.09', t: '帮你把分期方案口头转达给沈蓉' },
      { d: '06.02', t: '组织第一轮演示，亲自邀请 6 人' },
      { d: '05.08', t: '展会主动留资，是这条线的起点' },
    ],
    strategy: '把他当合伙人：每次给他可直接转发的「一页纸」，让他在内部当你的扩音器。下一步请他引荐陈总。',
  },
  沈蓉: {
    role: 'CFO', stance: 'decider', stanceLabel: '决策人 · 价格敏感', influence: 88,
    style: '分析型 · 数据驱动', styleNote: '不吃感情牌，只认数字和回报周期。上次通话 3 次提到「预算收紧」，本质是怕担责。',
    contact: [['微信', '未加'], ['手机', '经周凯转达'], ['邮箱', 'shen.r@hsmfg.com']],
    cares: ['投资回报周期', '一次性投入的风险归属', '集团成本红线'],
    objection: '整体投入偏高、怕用不起来谁担责',
    history: [
      { d: '06.09', t: '电话 22 分钟：认可方向，但「投入偏高」' },
      { d: '05.26', t: '收到方案书（周凯转发），未直接回复' },
    ],
    strategy: '先数据后感情、别催。用「订阅制 + 分期」弱化一次性投入，把谈判从价格拉回 ROI；让风险「可控、可退」。',
  },
  王磊: {
    role: 'IT 经理', stance: 'blocker', stanceLabel: '谨慎者 · 集成顾虑', influence: 45,
    style: '谨慎型 · 技术导向', styleNote: '关注落地成本与自己的工作量，异议未解前会持续踩刹车。缺席过一次演示。',
    contact: [['微信', '未加'], ['手机', '未知'], ['邮箱', 'wang.l@hsmfg.com']],
    cares: ['与金蝶 ERP 的对接工作量', '上线后的运维负担', '数据安全'],
    objection: '金蝶对接到底多大工作量（未解除）',
    history: [
      { d: '06.13', t: '本次演示提出金蝶对接顾虑' },
      { d: '06.02', t: '缺席第一轮演示' },
    ],
    strategy: '别绕开他——主动邀请他提问，用《宁波拓维 · 同版本金蝶两周对接》案例正面拆弹，把他从阻力转为中立。',
  },
  陈志远: {
    role: '总经理 · 最终拍板', stance: 'unknown', stanceLabel: '拍板人 · 未触达', influence: 95,
    style: '未知 · 信息经周凯转述', styleNote: '尚未直接接触。作为最终决策人，下周二首次出场，机会与风险并存。',
    contact: [['微信', '未加'], ['手机', '未知'], ['邮箱', '未知']],
    cares: ['战略价值与政绩', '降本增效的集团叙事', '一把手背书的风险'],
    objection: null,
    history: [{ d: '—', t: '尚未直接接触，信息只经周凯转述' }],
    strategy: '不要裸面见。请周凯引荐 + 提前递「一页纸 ROI 摘要」，让他第一次见你就有「这事政绩亮眼」的判断。',
  },
};

// ─── 动态全文 + 信源 ───
const NEWS_FULL = {
  '06.03': { src: '公司官网公告', full: '恒升智造正式启动「降本增效」专项行动，由 CFO 沈蓉牵头执行，目标 2026 年综合运营成本下降 12%，重点覆盖人力密集型环节的数字化改造。', impact: '把你的话术从「增长」切到「降本」，ROI 直接对标其报表团队人力投入。' },
  '05.28': { src: '36氪 融资报道', full: '恒升智造完成 2.3 亿元 B 轮融资，由某产业基金领投，资金主要投向产线智能化与数字化中台建设。', impact: '预算来源更充足，但 CFO 会更看重「每一分钱的回报」，别让她觉得你在蹭融资。' },
  '05.12': { src: '招聘平台', full: '恒升数字化中心新增 3 个「数据分析师」岗位招聘，要求熟悉报表自动化与 BI 工具。', impact: '佐证了报表人力痛点真实存在——这正是你方案的锚点。' },
};

// ─── 跟进历史信源 ───
const HISTORY_SRC = {
  '06.09': { type: '通话录音', detail: '22 分钟 · 与沈蓉', excerpt: '"方向我认可，但整体投入还是偏高…今年集团对成本卡得很严。"', clip: '08:42 – 09:15' },
  '06.02': { type: '会议纪要', detail: '第一轮方案演示 · 6 人参会', excerpt: '周凯主持，王磊缺席。客户对功能认可，未触及商务。' },
  '05.26': { type: '邮件', detail: '发送初版方案书', excerpt: '主题《云脉数据中台 · 恒升智造专属方案 v1》，周凯次日转发沈蓉。' },
  '05.15': { type: '拜访记录', detail: '首次到访工厂', excerpt: '确认报表人力痛点：月度报表每人耗时 10h+，约 120 万/年。' },
  '05.08': { type: '线索来源', detail: '行业展会', excerpt: '周凯主动留资咨询，标记为高意向线索。' },
};

// ─── 会前准备卡详情 ───
const PREP = {
  '《金蝶 ERP 对接案例 · 宁波拓维》': {
    action: 'Janus 扫描了你 3 年内 47 个成交单，匹配出与恒升「同版本金蝶」的对接案例。',
    result: '《宁波拓维对接纪实》· 同版本金蝶，标准接口两周完成，零定制开发。',
    source: ['历史合同库', '宁波拓维交付报告'], confidence: 96, cta: '应对王磊集成异议',
    actions: ['发给王磊', '插入纪要'],
  },
  'ROI 测算：对标 120 万/年人力投入': {
    action: 'Janus 调取了首访记录里的痛点量化数据，自动生成针对恒升的 ROI 模型。',
    result: '首年净回报 +34 万；以 86 万订阅对标 120 万/年报表人力，第 13 个月回本。',
    source: ['05.15 拜访记录', '产品定价表'], confidence: 91, cta: '可一键投屏',
    actions: ['一键投屏', '发给沈蓉'],
  },
  '分期报价话术卡': {
    action: 'Janus 识别出沈蓉的「价格 + 担责」双重信号，生成分期话术降低决策风险。',
    result: '「按年订阅 86 万，首年分两期（40%+60%），先两条产线跑通再扩」——把一次性投入翻译成可控试点。',
    source: ['06.09 通话信号', '打单手册 · 让步分层'], confidence: 88, cta: '应对沈蓉价格异议',
    actions: ['共析时调用', '插入纪要'],
  },
};

// ─── 拓客话术 ───
const PITCH = {
  华东精机: { opener: '王总您好，注意到华东精机刚完成 A 轮 1.2 亿融资、要把资金投向产线智能化。我们刚帮同处精密装备行业的恒升把月度报表人力降了 …（可展开）', via: '冷邮件 + 领英' },
  瑞高装备: { opener: '李总您好，看到贵司新设了「数字化运营总监」岗——通常这意味着数字化中台提上日程。分享一个同行业两周完成 ERP 对接的案例供参考…', via: '领英 InMail' },
  中科智造: { opener: '张总您好，读到贵司 2026 降本增效计划。我们有一套对标人力投入的 ROI 测算方法，已在 3 家精密装备厂跑通，方便发您一页纸吗？', via: '冷邮件' },
};

// ─── 作战室 · Janus 共析 ───
const WARROOM = {
  materials: [
    { type: 'transcript', name: '0613 方案演示会·转录.txt', meta: '32 分钟 · 4 人', icon: 'doc' },
    { type: 'pdf', name: '恒升组织架构图.pdf', meta: '2 页', icon: 'doc' },
  ],
  chat: [
    { who: 'janus', text: '已解析 0613 转录。我提炼到 3 个关键信号，2 个已写入档案。你想先从哪个切入——价格博弈，还是怎么见到陈总？' },
    { who: 'me', text: '陈总下周二第一次出场，我该怎么准备？' },
    { who: 'janus', text: '他是最终拍板人、信息只经周凯转述，所以第一印象是政绩判断。三步：① 让周凯引荐、别裸面见；② 提前两天递一页纸 ROI 摘要（我可代拟）；③ 现场只讲「降本叙事 + 风险可控」，把技术细节留给王磊那条线。要我现在生成这页 ROI 摘要吗？' },
  ],
  quickAsks: ['沈蓉的价格异议怎么破？', '王磊的集成顾虑还没解除', '帮我拟陈总的一页纸 ROI', '这单现在的最大风险是什么'],
  cannedReply: '收到。基于已有素材，我的建议是把它拆成「可控试点 + 分层让步」：先回到 ROI（对标 120 万人力），再用分期把一次性投入翻译成两条产线的小步验证。要我把它写进共析纪要的下一步吗？',
};

Object.assign(window, { COMPANY, PEOPLE, NEWS_FULL, HISTORY_SRC, PREP, PITCH, WARROOM });

// ─── 行动 & 笔记中心（GTD） ───
const GTD = {
  today: [
    { text: '发送金蝶对接案例给王磊', cust: '恒升智造', due: '今天', src: 'AI' },
    { text: '重新触达苏州科锐（14 天无互动）', cust: '苏州科锐', due: '今天', src: 'AI' },
  ],
  upcoming: [
    { text: '为陈总准备一页纸 ROI 摘要', cust: '恒升智造', due: '周四前', src: 'AI' },
    { text: '回复上海凌动法务条款', cust: '上海凌动', due: '周五', src: '手动' },
    { text: '终版汇报 · 管理层演示', cust: '恒升智造', due: '下周二 10:00', src: 'AI' },
  ],
  done: [
    { text: '发送初版方案书', cust: '恒升智造', due: '05.26' },
    { text: '首次工厂拜访 · 痛点量化', cust: '恒升智造', due: '05.15' },
    { text: '展会跟进周凯', cust: '恒升智造', due: '05.08' },
  ],
  seedNotes: [
    { id: 1, ts: Date.parse('2026-06-12T18:40:00'), text: '周凯私下说，预算其实卡在陈总手里，沈蓉只是执行口径。下次别只盯着 CFO。', links: [{ type: 'person', name: '周凯' }, { type: 'company', name: '恒升智造' }] },
    { id: 2, ts: Date.parse('2026-06-09T15:10:00'), text: '沈蓉对「分期」反应明显变软，价格不是真问题，担责才是。', links: [{ type: 'person', name: '沈蓉' }] },
  ],
};

Object.assign(window, { GTD });

// ─── 自身关系：销售本人人设（喂 Janus 做 CEV / 策略个性化） ───
const SELF = {
  name: 'Leo Knuth', title: '大客户销售 · 12 年',
  identities: [
    { id: 'a', org: '云脉科技', role: '全职 · 大客户总监', product: '云脉数据中台', active: true },
    { id: 'b', org: '智效 SaaS', role: '私活 · 渠道顾问', product: '智效 RPA' },
    { id: 'c', org: '行知咨询', role: '顾问 · 按项目', product: '数字化转型咨询' },
  ],
  humanDesign: { type: '显示生产者', strategy: '等待回应后行动', authority: '情绪权威', note: '决策前给自己一夜——别在情绪高点拍板让步' },
  persona: { mbti: 'ENTJ', style: '顾问式 · 数据驱动', tone: '沉稳，先给框架再谈感情' },
  strengths: ['用数据建立信任', '把价格谈判拉回 ROI', '善于发展内线'],
  blindspots: ['对纯技术异议反应偏慢', '客户一施压容易过早让价'],
  background: ['前 4 年快消渠道销售', '后 8 年企业软件大客户', '历史成交额累计 ¥2.3 亿'],
  cevNote: 'Janus 以「顾问式·数据驱动」的你来生成话术；在你疲劳或被压价时，会按你的人类图提醒「今晚先别拍板」。',
};

// ─── 内部关系：本单作战团队 ───
const TEAM = [
  { name: 'Leo（你）', role: 'Owner · 商务主谈', tone: 'accent', note: '决策链推进与商务谈判' },
  { name: '吴航', role: '售前顾问', tone: 'good', note: '方案撰写与 ROI 测算 · 已就位' },
  { name: '郑磊', role: '解决方案架构师', tone: 'good', note: '金蝶对接技术答疑 · 应对王磊' },
  { name: 'David', role: '销售 VP', tone: 'plain', note: '关键时刻向陈总做高层背书' },
];

// ─── 外部关系：到「未触达」决策人的引荐路径 ───
const REFER = {
  陈志远: [
    { via: '校友圈', chain: ['你', '王晓东', '陈志远'], note: '王晓东与陈志远是浙大 EMBA 同班同学', strength: '强', warm: 82 },
    { via: '现有内线', chain: ['你', '周凯', '陈志远'], note: '周凯可直接引荐，但需先给他充分弹药', strength: '强', warm: 75 },
    { via: '行业组织', chain: ['你', '长三角智造协会', '陈志远'], note: '同为协会会员，下月年会有面谈机会', strength: '中', warm: 55 },
  ],
};

Object.assign(window, { SELF, TEAM, REFER });

// ─── 项目通用资料库（弹药库） ───
const ASSETS = [
  { icon: 'building', name: '公司介绍 · 云脉科技', meta: '通用 · v3 · 上月更新' },
  { icon: 'grid', name: '产品白皮书 · 数据中台', meta: '通用 · 含 3 个行业版本' },
  { icon: 'chart', name: '报价模板', meta: '订阅制 / 买断 / 分期' },
  { icon: 'doc', name: '标准案例集', meta: '制造 8 个 · 零售 5 个' },
];
Object.assign(window, { ASSETS });
