// Data — 场景、初始对话、引用资料

const STAGES = {
  on: {
    label: '入职',
    en: 'ONBOARDING',
    groups: [
      { title: '招聘到 Offer', items: [
        { code:'ON-101', name:'录用条件合规设计' },
        { code:'ON-102', name:'背景调查合规边界' },
      ]},
      { title: '合同签订到入职', items: [
        { code:'ON-201', name:'劳动合同核心条款' },
        { code:'ON-202', name:'入职手续与社保启动' },
        { code:'ON-203', name:'规章制度签收留痕' },
      ]},
      { title: '试用期管理', items: [
        { code:'ON-301', name:'试用期长度合规约定' },
        { code:'ON-302', name:'试用期工资约定' },
        { code:'ON-303', name:'试用期考核与解除' },
      ]},
    ],
  },
  ae: {
    label: '在职',
    en: 'ACTIVE EMPLOYMENT',
    groups: [
      { title: '薪酬变更', items: [
        { code:'AE-101', name:'调岗调薪法律边界' },
        { code:'AE-102', name:'年终奖发放争议' },
        { code:'AE-103', name:'工资条与个税合规' },
      ]},
      { title: '考勤与休假', items: [
        { code:'AE-201', name:'加班费计算与举证' },
        { code:'AE-202', name:'产假 / 陪产假管理' },
        { code:'AE-203', name:'病假工资标准' },
        { code:'AE-204', name:'年假与未休补偿' },
      ]},
      { title: '违纪与处罚', items: [
        { code:'AE-301', name:'严重违纪认定' },
        { code:'AE-302', name:'警告与处分留痕' },
      ]},
      { title: '培训与服务期', items: [
        { code:'AE-401', name:'专项培训费追偿' },
        { code:'AE-402', name:'竞业限制协议' },
      ]},
    ],
  },
  of: {
    label: '离职',
    en: 'OFFBOARDING',
    groups: [
      { title: '协商离职', items: [
        { code:'OF-101', name:'协商一致解除' },
        { code:'OF-102', name:'离职面谈与交接' },
      ]},
      { title: '单方解除', items: [
        { code:'OF-201', name:'严重违纪解除' },
        { code:'OF-202', name:'不能胜任解除' },
      ]},
      { title: '经济补偿', items: [
        { code:'OF-301', name:'N / N+1 / 2N 计算' },
        { code:'OF-302', name:'社保转移与离职证明' },
      ]},
    ],
  },
};

// 计算每个 stage 的总数
Object.values(STAGES).forEach(s=>{
  s.count = s.groups.reduce((n,g)=>n+g.items.length,0);
});

// 通过 code 查 scenario
function findScenario(code){
  for (const s of Object.values(STAGES))
    for (const g of s.groups)
      for (const it of g.items)
        if (it.code===code) return it;
  return null;
}

// 初始对话（围绕 ON-201）
// 首屏欢迎消息（替代原 6 轮 ON-201 演示对话，避免新客户进来眼花）
const INITIAL_MESSAGES = [
  { id:1, role:'agent', time:'14:32',
    text:'您好，我是**小薪** —— 薪领航的 AI HR 合规助手。\n\n您可以这样开始：\n→ 点左侧任意场景（招聘 / 合同 / 试用期 / 调岗 / 解除…），我会给一个针对性的开场\n→ 或者直接在下方输入您遇到的实际问题（比如「试用期员工不胜任可以辞退吗？」）\n\n如果我处理不了，左下角随时可以**转人工顾问**。'
  },
];

// 引用资料（按 scenario 索引）
const REFS = {
  'ON-201': {
    laws: [
      { tag:'REG · 劳动合同法', main:'第 26 条 · 合同无效情形', sub:'"用人单位免除自己法定责任、排除劳动者权利的条款无效"', live:true },
      { tag:'REG · 工资支付暂行规定', main:'第 13 条 · 加班工资支付', sub:'未办综合工时审批的，加班按法定标准计算', live:true },
      { tag:'REG · 劳动合同法', main:'第 19、20 条 · 试用期长度与工资', sub:'3 年以上合同试用期不超过 6 个月，工资不低于转正 80%' },
    ],
    cases: [
      { tag:'CASE · 2024 深圳', main:'销售岗提成约定不明案', sub:'客户因合同未写提成计算方式，败诉赔付 18 万' },
      { tag:'CASE · 2025 天津', main:'未审批综合工时案', sub:'员工主张 3 年加班费，公司补偿 12.6 万' },
      { tag:'2026 深圳最低工资', main:'2,360 元 / 月', sub:'试用期工资不得低于此线' },
    ],
    templates: [
      { kind:'DOC', name:'标准劳动合同模板 v2.1', sub:'含五大核心条款合规写法 · 12 页' },
      { kind:'DOC', name:'销售岗位提成附件', sub:'计算公式 / 发放 / 离职处理' },
      { kind:'XLS', name:'Offer & 合同对照表', sub:'入职前一致性核对清单' },
    ],
    related: [
      { code:'ON-101', name:'录用条件合规设计' },
      { code:'ON-203', name:'规章制度签收留痕' },
      { code:'OF-202', name:'试用期不符合录用条件解除' },
    ],
  },
  default: {
    laws: [],
    cases: [],
    templates: [],
    related: [],
  },
};

function getRefs(code){ return REFS[code] || REFS.default; }

// 场景专属开场白 — 切换到该 scenario 时，由小薪主动抛出一句更贴的引导
const OPENERS = {
  'ON-101': '我们先把"录用条件"写得能扛住试用期解除——您打算招的岗位是？\n→ 销售 / 研发 / 职能 / 其他',
  'ON-102': '背景调查的合法边界比想象的窄，我帮您把红线先列清楚。先问一下：您打算查哪些维度？\n→ 学历 / 工作经历 / 征信 / 司法 / 健康',
  'ON-201': '帮您把劳动合同的核心条款一次性设计合规。先确认两个关键信息：公司城市 + 合同期限。',
  'ON-202': '入职手续是合规的第一道关。员工类型不同走的流程不一样——这次是新入职 / 转岗调动 / 退休返聘？',
  'ON-203': '规章制度的签收留痕直接关系到后续违纪解除是否站得住脚。您是新建制度还是更新存量制度？',
  'ON-301': '试用期长度按合同年限走，多签一天都可能被认定违法。先告诉我合同期是多久？',
  'ON-302': '试用期工资有两条红线（≥转正 80% 且 ≥当地最低工资），我帮您按城市核一遍。员工在哪个城市？',
  'ON-303': '试用期解除的关键是「不符合录用条件」要能举证。您手里有当时签的录用条件 / 岗位说明书吗？',
  'AE-101': '调岗调薪是争议高发区，**协商一致**是最稳的路径。这次是经营调整、绩效问题、还是组织变更？',
  'AE-102': '年终奖发放规则要写在文件里。员工是已离职、在岗、还是「离职前几天发」这种敏感时点？',
  'AE-103': '工资条要发、要留痕、要让员工签收。问一下：您现在是用纸质 / 系统 / 邮件发？',
  'AE-201': '加班费的认定看「单位是否安排」和「考勤记录」两个证据。员工申诉的是工作日加班 / 周末 / 法定节假日？',
  'AE-202': '产假 / 陪产假按属地法规走（差异较大）。员工在哪个城市？预产期大概什么时候？',
  'AE-203': '病假工资的算法 = 基数 × 系数（与工龄挂钩）。员工司龄是多少年？病假已经休了几天？',
  'AE-204': '年假天数按累计工龄算（不是司龄）。员工此前工作过几年？目前未休几天？',
  'AE-301': '严重违纪要能拿到三样东西：制度依据 + 事实证据 + 程序留痕。是哪类违纪行为？',
  'AE-302': '处分留痕要让员工签收，不签也要走「送达不能」程序。这次是口头警告 / 书面警告 / 记过？',
  'AE-401': '专项培训费追偿要满足「真实出资 + 服务期约定 + 培训凭证」。培训成本大概多少？签了服务期吗？',
  'AE-402': '竞业限制的关键是 **补偿金 ≥ 30% 月薪** + 范围合理 + 时长 ≤2 年。员工岗位是？',
  'OF-101': '协商一致解除最稳——核心是把补偿金算清楚 + 把离职文件签全。员工司龄是多久？是否同意协商？',
  'OF-102': '离职面谈是留痕的最后机会。员工目前情绪是？已经书面提出辞职了吗？',
  'OF-201': '严重违纪解除门槛最高、最容易翻车。员工的违纪事实是什么？您是否有书面证据？',
  'OF-202': '"不能胜任"解除要走「考核 → 培训/调岗 → 二次考核 → 仍不能胜任」流程。员工现在走到哪一步了？',
  'OF-301': '经济补偿要分清 N / N+1 / 2N 三种情形——这次是协商离职 / 公司单方 / 违法解除？',
  'OF-302': '社保转移 + 离职证明 + 档案这三样必须一次办齐。员工是同城转移、跨城、还是出境？',
};

Object.assign(window, { STAGES, INITIAL_MESSAGES, REFS, OPENERS, findScenario, getRefs });
