import type { LucideIcon } from 'lucide-react';
import {
  AlertTriangle,
  Archive,
  ArrowLeftRight,
  BookOpen,
  Building2,
  Calendar,
  Car,
  CircleDollarSign,
  ClipboardCheck,
  ClipboardList,
  FileSignature,
  FileText,
  FileWarning,
  Fuel,
  GraduationCap,
  Library,
  MapPin,
  Network,
  Package,
  RefreshCw,
  RotateCcw,
  Settings,
  Shield,
  ShieldAlert,
  ShieldCheck,
  Siren,
  Truck,
  UserRound,
  Users,
  Wallet,
  Wrench,
} from 'lucide-react';

export type ModuleAccent = 'blue' | 'violet' | 'indigo' | 'amber' | 'teal' | 'emerald';

/** 运维条线 Hero 链路图：main 顺序主线，support 并行能力（无先后） */
export type PipelineTrack = 'main' | 'support';

export interface LineModule {
  id: string;
  step: number;
  title: string;
  subtitle: string;
  shortLabel: string;
  accent: ModuleAccent;
  icon: LucideIcon;
  pipelineTrack?: PipelineTrack;
  roles: string[];
  start: string;
  process: string[];
  closure: string;
  outcomes?: { label: string; tone: 'ok' | 'warn' | 'danger' }[];
  prototypeHref?: string;
  prototypeLabel?: string;
}

export type BusinessLineId = 'lease' | 'energy' | 'ops' | 'safety' | 'self-operated';

export interface LineHeroStat {
  value: string;
  label: string;
}

export interface LineEvolution {
  currentLabel: string;
  currentText: string;
  targetLabel: string;
  targetText: string;
}

export interface BusinessLineConfig {
  id: BusinessLineId;
  label: string;
  shortLabel: string;
  hero: {
    title: string;
    tagline: string;
    summary: string;
    stats: LineHeroStat[];
  };
  modules: LineModule[];
  loopTitle: string;
  loopSummary: string;
  /** 仅租赁条线展示演进路径 */
  evolution?: LineEvolution;
  /** 占位条线，模块内容稍后填充 */
  placeholder?: boolean;
  placeholderHint?: string;
}

export const LEASE_MODULES: LineModule[] = [
  {
    id: 'customer',
    step: 1,
    title: '客户管理',
    subtitle: '准入评级 · 决定能否签约、走哪条流程',
    shortLabel: '客户',
    accent: 'blue',
    icon: Users,
    roles: ['业务管理组', '法务部', '财务部', '安全部'],
    start: '业务管理组维护客户基础信息，作为后续合同与账单的统一客户主数据。',
    process: [
      '法务部每 3 个月评估客户法律风险。',
      '财务部实时维护客户财务风险等级。',
      '安全部实时维护客户安全风险等级。',
      '系统综合三部门结果，形成客户签约策略。',
    ],
    closure:
      '未达禁止标准：可签租赁合同；若需偏离常规范式，走「非标准流程」评审。达到禁止标准：禁止新签，并将该客户现有合同标记为「高风险」，通知业务人员跟进处理或终止。',
    outcomes: [
      { label: '可标准签约', tone: 'ok' },
      { label: '可签 · 走非标', tone: 'warn' },
      { label: '禁止签约 · 高风险', tone: 'danger' },
    ],
    prototypeHref: '/prototypes/customer-management',
    prototypeLabel: '打开客户管理',
  },
  {
    id: 'contract-template',
    step: 2,
    title: '标准合同管理',
    subtitle: '模板配置 · 支撑电子合同一键发起',
    shortLabel: '模板',
    accent: 'violet',
    icon: FileText,
    roles: ['法务部', '数智部'],
    start: '法务部维护各车型的试用合同、正式合同等标准模板，明确条款边界与风控要求。',
    process: [
      '数智部按模板配置电子合同，发起时可直选模板。',
      '条款可设「触发车型」——仅对应车型可见该条款或附件。',
      '「风控红线」被修改时，自动进入非标准流程审批。',
      '「锁定区域」内内容在合同中不可被业务随意改动。',
    ],
    closure:
      '标准模板就绪后，业务员发起合同时可直接选用；在允许范围内填写即走标准流程，触碰红线或锁定区外修改则转入法务非标审批。',
    prototypeHref: '/prototypes/contract-template-management',
    prototypeLabel: '打开合同模板管理',
  },
  {
    id: 'lease-contract',
    step: 3,
    title: '租赁合同',
    subtitle: '签约发起 · 标准 / 非标 / 禁止三条路径',
    shortLabel: '签约',
    accent: 'indigo',
    icon: FileSignature,
    roles: ['业务员', '法务部'],
    start: '业务员选择羚牛签约主体与乙方客户；系统依据客户评级判断可走「标准流程」「非标准流程」或禁止发起。',
    process: [
      '填写合同要素，内容实时反写进电子合同预览。',
      '完成后自动生成电子合同、条款附件、授权委托书等。',
      '预览可在标准约束内微调；一旦越界，自动转非标准流程供法务审核。',
      '支持续签、转正式合同、转三方合同、添加增值服务、添加授权委托书、主动终止等操作。',
    ],
    closure:
      '合同审批通过即进入履约阶段，并与后续提车应收、交车任务、台账账单串联；非标路径须法务与董事长确认法律合规后放行。',
    prototypeHref: '/prototypes/lease-contract-management',
    prototypeLabel: '打开租赁合同',
  },
  {
    id: 'pickup-receivable',
    step: 4,
    title: '提车应收款',
    subtitle: '应收生成 · 实收对齐 · 触发交车',
    shortLabel: '提车',
    accent: 'amber',
    icon: Wallet,
    roles: ['业务员', '法务部', '业务管理组', '运维部'],
    start: '业务员提交租赁合同审批时，系统按合同条款自动生成提车应收金额。',
    process: [
      '法务在「收款记录」导入到账信息（后期对接财务 YS 与银企直联自动获取）。',
      '业务员 / 业务管理组将收款记录关联到账单并分配金额。',
      '实收与应收对齐后，提车应收款自动标记为完成。',
    ],
    closure:
      '应收完成后，按合同约定生成交车任务；运维部对应区域操作员在交车模块查看并执行，车辆正式交付给承租方。',
    prototypeHref: '/prototypes/vehicle-pickup-receivable',
    prototypeLabel: '打开提车应收款',
  },
  {
    id: 'lease-ledger',
    step: 5,
    title: '租赁业务台账',
    subtitle: '交车后账单 · 周期收费与实收延续',
    shortLabel: '台账',
    accent: 'teal',
    icon: BookOpen,
    roles: ['运维部', '业务员', '业务管理组'],
    start: '运维交车成功后，租赁业务台账自动生成该车辆的租赁账单，应付款日初始为「待设置」。',
    process: [
      '业务人员设置账单应付款日后，第一期账单按规则自动生成并计算应收费用。',
      '提车应收款实收同步写入首期账单实收。',
      '若实收多于首期应收，溢出部分自动并入第二期实收作减免，第二期仅收差额。',
    ],
    closure:
      '台账持续记录每期应收、实收与状态，支撑租期中运营管理与后续还车结算的数据基础。',
    prototypeHref: '/prototypes/lease-business-ledger',
    prototypeLabel: '打开租赁业务台账',
  },
  {
    id: 'return-settlement',
    step: 6,
    title: '还车应结款',
    subtitle: '还车结算 · 多部门会签 · 归档闭环',
    shortLabel: '还车',
    accent: 'emerald',
    icon: RotateCcw,
    roles: ['业务管理组', '安全部', '运维部', '业务管理组-能源部'],
    start: '运维完成还车后，系统自动生成还车应结款任务。',
    process: [
      '业务管理组、安全部、运维部、能源部各自完成本部门还车应结款审批。',
      '汇总后计算应退还或应补缴金额。',
      '应补缴时关联「收款记录」，应退还时关联「付款记录」，结果回写还车应结款。',
    ],
    closure:
      '业务管理组发起还车应结款总审批；审批完成后自动归档，租赁单条业务从签约到还车全链路闭环。',
    prototypeHref: '/prototypes/vehicle-return-settlement',
    prototypeLabel: '打开还车应结款',
  },
];

export const ENERGY_MODULES: LineModule[] = [
  {
    id: 'energy-supplier',
    step: 1,
    title: '供应商管理',
    subtitle: '加氢/充电站供应商 · 站点绑定与业财直连',
    shortLabel: '供应商',
    accent: 'blue',
    icon: Building2,
    roles: ['采购组', '财务部'],
    start: '加氢站、充电站作为供应商纳入统一供应商体系，由采购组维护供应商基础信息与结算要素。',
    process: [
      '创建加氢站 / 充电站站点时绑定对应供应商。',
      '氢费、电费对账支持供应商直连付款，付款金额与明细由系统自动生成。',
      '付款、收款明细自动关联财务「收款记录」「付款记录」。',
      '支撑对加氢站 / 充电站供应商的付款申请、收款申请及流程审批。',
    ],
    closure:
      '供应商主数据与站点、对账、财务记录贯通，减少手工对账与重复录入，为能源侧业财闭环打好基础。',
    prototypeHref: '/prototypes/supplier-management',
    prototypeLabel: '打开供应商管理',
  },
  {
    id: 'h2-station',
    step: 2,
    title: '加氢站管理',
    subtitle: '签约站 / 非签约站 · 账号、余额与价格',
    shortLabel: '加氢站',
    accent: 'violet',
    icon: MapPin,
    roles: ['采购部', '加氢站'],
    start: '加氢站由采购部统一管理，分为「签约站」与「非签约站」；签约站须关联供应商与系统账号。',
    process: [
      '签约站使用采购部分配的账号登录 ONE-OS，进入加氢订单模块（PC / 移动端 / H5）。',
      '加氢站预付款余额：管理预付给加氢站的余额及使用记录。',
      '营业状态管理：维护营业状态与营业时间。',
      '价格配置：维护加氢站成本价，自动关联至氢费记录。',
      '业务管理组-能源部将加氢记录形成对账单并发起付款申请（后期对接财务 YS 系统）。',
    ],
    closure:
      '站点、账号、余额、价格与营业状态集中管理，签约站可自助上报氢费，为对账与付款提供准确数据源。',
    prototypeHref: '/prototypes/oneos-web-h2-station-site',
    prototypeLabel: '打开站点信息',
  },
  {
    id: 'h2-order',
    step: 3,
    title: '加氢订单',
    subtitle: '主动上报 · PLC 自动采集 · 预约接单',
    shortLabel: '订单',
    accent: 'indigo',
    icon: ClipboardList,
    roles: ['签约加氢站', '业务管理组-能源部'],
    start: '签约加氢站使用系统账号登录后，通过各渠道上报加氢订单，实现氢费记录主动采集；支持 PLC 接入的站点可自动获取订单。',
    process: [
      '支持 PC、移动端、移动端 H5 等多端快速识别并记录加氢信息。',
      '支持加氢机 PLC 数据接入的站点，通过接入 PLC 数据实现加氢订单自动获取，无需人工补录。',
      '联动「小羚羚」，接收车队、司机预约加氢订单并处理；加氢订单最终由司机进行确认。',
      '订单数据进入加氢记录，供能源部对账与结算使用。',
    ],
    closure:
      '签约站氢费由站点主动上报或 PLC 自动采集，预约订单在线闭环，减少能源部手工补录、提升数据时效性。',
    prototypeHref: '/prototypes/oneos-web-h2-station',
    prototypeLabel: '打开加氢订单',
  },
  {
    id: 'vehicle-h2-fee',
    step: 4,
    title: '车辆氢费明细',
    subtitle: '非签约站补录 · 对账归档 · 余额关联',
    shortLabel: '氢费',
    accent: 'amber',
    icon: Fuel,
    roles: ['业务管理组-能源部'],
    start: '非签约加氢站的车辆氢费，由业务管理组-能源部在系统中手动维护明细。',
    process: [
      '录入车辆加氢明细，与站点、车辆、客户等业务对象关联。',
      '对账完成后将记录标记为「已对账」并归档。',
      '与加氢站预付款余额、客户能源账户联动，同步更新两侧余额；系统级 OCR 及车辆电子围栏核对，辅助对车辆氢费明细进行核对和提示。',
    ],
    closure:
      '签约站与非签约站氢费数据统一归集，对账状态可追踪，余额变动与明细一致可追溯。',
    prototypeHref: '/prototypes/vehicle-h2-fee-ledger',
    prototypeLabel: '打开车辆氢费明细',
  },
  {
    id: 'h2-account',
    step: 5,
    title: '氢费账户',
    subtitle: '客户预付款 · 对账单 · 业财收款闭环',
    shortLabel: '账户',
    accent: 'teal',
    icon: CircleDollarSign,
    roles: ['业务管理组-能源部', '财务部'],
    start: '管理客户氢费预付款账户余额，以及面向客户的氢费对账单。',
    process: [
      '维护客户氢费预付款账户及余额变动。',
      '生成客户对账单，汇总应收氢费明细。',
      '对账单关联财务「收款记录」，完成氢费侧业财闭环。',
      '收款确认后，将对应加氢记录标记为「已付款」。',
      '支持充值发起及开票发起，直接到财务，替代现有钉钉审批流程，对接 YS 系统直接形成业财闭环。',
    ],
    closure:
      '客户氢费从明细、对账到收款全链路可核对，加氢记录付款状态与财务实收一致。',
    prototypeHref: '/prototypes/payment-records',
    prototypeLabel: '打开收款记录',
  },
  {
    id: 'energy-extension',
    step: 6,
    title: '扩展规划',
    subtitle: '上游采购 · 下游司机服务',
    shortLabel: '扩展',
    accent: 'emerald',
    icon: Network,
    roles: ['采购部', '业务管理组-能源部', '数智部'],
    start: '能源业务条线成熟后，向氢气供应链上游与氢能车服务下游延伸。',
    process: [
      '上游：拓展氢气采购端，支撑用氢环节采购业务场景。',
      '下游：拓展外部氢能车司机端，提供加氢及其他氢能车扩展服务。',
      '与现有供应商、站点、订单、氢费账户能力衔接，形成更大范围能源生态。',
    ],
    closure:
      '在现有加氢站运营与对账闭环基础上，逐步覆盖「采购—站点—用氢—结算—司机服务」全链条，支撑能源业务规模化扩展。',
  },
];

export const OPS_MODULES: LineModule[] = [
  {
    id: 'ops-supplier',
    step: 1,
    title: '供应商管理',
    subtitle: '整车厂 / 三方租赁 · 付款底座',
    shortLabel: '供应商',
    pipelineTrack: 'support',
    accent: 'blue',
    icon: Building2,
    roles: ['采购组', '财务部'],
    start: '整车厂、三方租赁企业作为供应商纳入统一管理体系，维护基础信息与结算要素。',
    process: [
      '维护整车厂、三方租赁厂商供应商档案与联系方式。',
      '为车辆采购、三方租赁合同提供供应商主数据引用。',
      '支撑后续财务付款闭环的基础数据底座。',
    ],
    closure: '供应商信息与采购合同、付款记录贯通，减少重复建档与对账差错。',
    prototypeHref: '/prototypes/supplier-management',
    prototypeLabel: '打开供应商管理',
  },
  {
    id: 'ops-procurement-contract',
    step: 2,
    title: '车辆采购 / 三方租赁合同',
    subtitle: '车型数量 · 付款关联 · 验车任务',
    shortLabel: '采购合同',
    pipelineTrack: 'support',
    accent: 'violet',
    icon: FileText,
    roles: ['采购部', '法务部', '财务部'],
    start: '向整车厂、三方租赁厂商发起车辆采购或三方车辆租赁合同，录入车型、数量、费用等关键条款。',
    process: [
      '创建并审批车辆采购 / 三方租赁合同。',
      '关联财务「付款记录」，按合同条款发起付款。',
      '根据合同条款自动生成验车任务，进入验车入库流程。',
    ],
    closure: '合同、付款与验车任务联动，采购来源可追溯，为车辆入库提供合规入口。',
    prototypeHref: '/prototypes/lease-contract-management',
    prototypeLabel: '打开租赁合同',
  },
  {
    id: 'ops-inspection',
    step: 3,
    title: '验车入库',
    subtitle: '采购 / 三方来源 · 验完自动入库',
    shortLabel: '验车入库',
    pipelineTrack: 'main',
    accent: 'indigo',
    icon: ClipboardCheck,
    roles: ['运维部', '采购部'],
    start: '对采购或三方租赁来源的氢能车执行验车，记录验车过程与结论。',
    process: [
      '接收合同触发的验车任务，现场核对车辆与合同信息。',
      '记录验车过程、问题项与处理结果。',
      '验车完成后车辆自动入库，源头数据留痕归档。',
    ],
    closure: '验车结果与合同、库存车辆绑定，入库车辆来源清晰、过程可审计。',
    prototypeHref: '/prototypes/vehicle-management',
    prototypeLabel: '打开车辆管理',
  },
  {
    id: 'ops-plate',
    step: 4,
    title: '车辆上牌',
    subtitle: '车架号入库 · 完成牌证登记',
    shortLabel: '上牌',
    pipelineTrack: 'main',
    accent: 'amber',
    icon: Car,
    roles: ['运维部'],
    start: '对仅有车架号、尚未上牌的新车执行上牌操作，补齐牌照信息。',
    process: [
      '从库存中筛选待上牌车辆（仅有车架号）。',
      '录入或同步上牌进度与牌照信息。',
      '上牌完成后更新库存车辆状态，进入可运营准备。',
    ],
    closure: '库存车辆牌证信息完整，为证照管理与交车交付提供前置条件。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开上牌管理',
  },
  {
    id: 'ops-certificate',
    step: 5,
    title: '证照管理',
    subtitle: '一车一档 · 到期待办推送',
    shortLabel: '证照',
    pipelineTrack: 'main',
    accent: 'teal',
    icon: Shield,
    roles: ['运维部', '安全部'],
    start: '对氢能车行驶证、道路运输证、登记证、特种设备使用登记证 / 标识、加氢卡、安全阀、压力表等实行一车一档管理。',
    process: [
      '维护各类证照档案与有效期信息。',
      '核心证照临近到期时，自动生成年审、等评、换证等待办任务。',
      '待办同步推送运维部、安全部等责任部门跟进处理。',
    ],
    closure: '证照全生命周期系统化管理，降低违规与漏办风险，保障车辆合法运营。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开证照管理',
  },
  {
    id: 'ops-prep',
    step: 6,
    title: '备车管理',
    subtitle: '交车前整备 · 随时可交付',
    shortLabel: '备车',
    pipelineTrack: 'main',
    accent: 'emerald',
    icon: Package,
    roles: ['运维部'],
    start: '运维日常对车辆车况提前检查整备，确保交车任务到来时可随时交付。',
    process: [
      '按交车计划或库存策略发起备车检查。',
      '记录车况整备项、完成状态与责任人。',
      '作为交车前置任务，缩短交车现场处理时长。',
    ],
    closure: '交车前整备前置完成，提升交车效率与交付质量一致性。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开备车管理',
  },
  {
    id: 'ops-delivery',
    step: 7,
    title: '交车管理',
    subtitle: '司机培训留痕 · 区域派单 · OCR 比对 · 电子签',
    shortLabel: '交车',
    pipelineTrack: 'main',
    accent: 'blue',
    icon: Truck,
    roles: ['运维部', '业务管理组', '司机'],
    start: '承接租赁 / 自营合同形成的交车任务，按交车区域自动分配属地运维人员处理；提车司机须先完成在线培训并留存电子记录。',
    process: [
      '提车司机在线培训：司机主动上传身份证、驾驶证、从业资格证，完成司机签名与现场拍照，形成可查的电子培训留痕记录。',
      '交付已完成整备、证照及交强险 / 商业险有效的车辆。',
      '记录交车里程、氢量、电量、交车位置；OCR 识别胎纹留档。',
      '还车时与交车数据自动比对，计算轮胎磨损费、维修费、保养费等。',
      '结合 E 签宝形成电子化签字确认与归档记录。',
    ],
    closure:
      '司机培训、证照上传与现场拍照全程电子留痕，交车过程数据完整可查，为还车费用核算与争议处理提供可信依据。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开交车管理',
  },
  {
    id: 'ops-replacement',
    step: 8,
    title: '替换车管理',
    subtitle: '临时 / 永久替换 · 费用自动核算',
    shortLabel: '替换',
    pipelineTrack: 'support',
    accent: 'violet',
    icon: RefreshCw,
    roles: ['运维部', '业务管理组'],
    start: '因客户或车辆原因发起车辆替换，支持临时替换与永久替换两种模式。',
    process: [
      '发起替换流程，选择替换类型与新旧车辆。',
      '完成替换交还操作并记录替换原因与时间。',
      '客户原因导致的替换，系统自动计算新旧车费用差异。',
    ],
    closure: '替换过程可追踪、费用可核算，保障租赁 / 自营履约不中断。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开替换车管理',
  },
  {
    id: 'ops-return',
    step: 9,
    title: '还车管理',
    subtitle: '区域派单 · 费用自动计算 · 电子签',
    shortLabel: '还车',
    pipelineTrack: 'main',
    accent: 'indigo',
    icon: RotateCcw,
    roles: ['运维部', '业务管理组'],
    start: '处理业务 / 业管发起的还车任务，按还车区域自动分配属地运维人员。',
    process: [
      '记录还车时间、里程、氢量、电量、还车位置。',
      'OCR 识别胎纹，与交车时数据对比，自动计算胎纹磨损差费用。',
      '按交车至还车里程及氢量差、电量差，自动计算相关费用。',
      '结合 E 签宝形成电子化签字确认与归档记录。',
    ],
    closure: '还车费用依据交还车对比自动出具，减少人工核算与纠纷成本。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开还车管理',
  },
  {
    id: 'ops-fault',
    step: 10,
    title: '故障管理',
    subtitle: 'AI 助手 + 人工 · 证据链归档',
    shortLabel: '故障',
    pipelineTrack: 'support',
    accent: 'amber',
    icon: AlertTriangle,
    roles: ['运维部', '司机'],
    start: '通过微信 AI 故障助手或人工方式，记录车辆故障发生时的关键信息。',
    process: [
      '记录故障时间、地点、车辆信息、故障类型与紧急程度。',
      '留存图片、视频、聊天记录等证据链材料。',
      '运维人员维护处理过程，直至故障关闭归档。',
      '形成运维待办任务，统计执行情况来推动运维人员及时处理。',
      '最终形成各品牌车型故障类型、严重程度、次数进行统计，为未来车辆资产的管理、车辆采购和三方租赁提供基础论证。',
    ],
    closure: '故障从产生到解决全过程留痕，证据链完整，便于复盘与责任界定。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开故障管理',
  },
  {
    id: 'ops-annual-inspection',
    step: 11,
    title: '年审记录',
    subtitle: '提前 3 个月 · OCR 刷新证照',
    shortLabel: '年审',
    pipelineTrack: 'support',
    accent: 'teal',
    icon: Calendar,
    roles: ['运维部'],
    start: '依据行驶证审验有效期，提前 3 个月为对应车辆生成年审任务。',
    process: [
      '年审任务按车辆、按月份归集，跟踪办理进度。',
      '年审完成后 OCR 识别新上传行驶证，自动刷新车辆证照数据。',
      '按每月年审任务数量自动计算执行完成百分比。',
    ],
    closure: '年审任务不遗漏、进度可量化，证照数据与办理结果自动同步。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开年审管理',
  },
  {
    id: 'ops-maintenance',
    step: 12,
    title: '维修与保养记录',
    subtitle: '费用汇总 · 业财一体 · 盈亏核算',
    shortLabel: '维保',
    pipelineTrack: 'support',
    accent: 'emerald',
    icon: Settings,
    roles: ['运维部', '财务部'],
    start: '首期由运维人员手动维护各自负责车辆的维修与保养记录。',
    process: [
      '记录配件费、人工费等明细并形成费用汇总。',
      '按承担方（客户 / 我司）自动生成客户账单或纳入运维成本。',
      '维修与保养费用计入车辆盈亏核算，实现业财一体化。',
    ],
    closure: '维保成本可追溯、可分摊，支撑单车盈亏与对客户计费闭环。',
    prototypeHref: '/prototypes/vehicle-maintenance-ledger',
    prototypeLabel: '打开车辆维修明细',
  },
  {
    id: 'ops-movement',
    step: 13,
    title: '车辆异动',
    subtitle: '出库维修 / 年审 / 保养 · 成本归集',
    shortLabel: '异动',
    pipelineTrack: 'support',
    accent: 'blue',
    icon: MapPin,
    roles: ['运维部'],
    start: '车辆因当地维修、年审、保养等需要出库异动，须提前审批并记录异动前后状态。',
    process: [
      '发起异动审批，记录异动前氢量、电量、里程。',
      '异动完成后记录结束时的氢量、电量、里程。',
      '异动期间产生的加氢记录自动归集为异动成本，计入成本侧。',
    ],
    closure: '异动过程可审批、可计量，异动成本自动归集，避免成本漏记。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开异动管理',
  },
  {
    id: 'ops-transfer',
    step: 14,
    title: '车辆调拨',
    subtitle: '跨区调拨 · 运维权转移',
    shortLabel: '调拨',
    pipelineTrack: 'support',
    accent: 'violet',
    icon: ArrowLeftRight,
    roles: ['运维部', '业务管理组'],
    start: '将车辆从 A 地调拨至 B 地用于运营，须提前审批并记录调拨与接收信息。',
    process: [
      '记录调拨发起方、费用与运输安排。',
      '接收方确认接收，完成车辆交接。',
      '接收完成后，车辆运维操作权由 A 地转移至 B 地。',
    ],
    closure: '跨区调拨过程透明，运维责任属地随车辆同步切换，避免管理真空。',
    prototypeHref: '/prototypes/oneos-web-ops',
    prototypeLabel: '打开调拨管理',
  },
  {
    id: 'ops-disposal',
    step: 15,
    title: '车辆出售、过户、报废',
    subtitle: '资产变更审批 · 过程留痕 · 自动出库',
    shortLabel: '处置出库',
    pipelineTrack: 'main',
    accent: 'indigo',
    icon: Archive,
    roles: ['运维部', '董事长', '财务部'],
    start: '车辆达到出售、过户或报废条件时，发起资产变更流程，录入出售方、出售价格、过户情况、报废残值等关键信息。',
    process: [
      '提交出售 / 过户 / 报废申请，填写交易方、价格、过户状态或报废残值等要素。',
      '流程审批通过后，由董事长确认资产变更。',
      '运维部记录出售、过户或报废全过程，形成最终归档。',
      '完成后车辆自动标记为退出运营并出库，不再参与租赁 / 自营交付。',
    ],
    closure: '资产处置全程审批留痕，车辆退出运营状态与库存自动同步，生命周期闭环至出库归档。',
    prototypeHref: '/prototypes/vehicle-management',
    prototypeLabel: '打开车辆管理',
  },
];

export const SAFETY_MODULES: LineModule[] = [
  {
    id: 'safety-driver',
    step: 1,
    title: '司机管理',
    subtitle: '自营内部司机 · 信息证照一体',
    shortLabel: '司机',
    accent: 'blue',
    icon: UserRound,
    roles: ['安全部', '业务管理组'],
    start: '管理自营业务内部司机，支撑自营场景下的司机快速选取与档案维护。',
    process: [
      '维护司机基础信息、联系方式与在职状态。',
      '管理驾驶证、从业资格证等证照信息与有效期。',
      '与自营业务交车、台账等场景联动，支持司机快速选取。',
    ],
    closure: '内部司机主数据统一维护，证照齐全可查，支撑自营运力调度与安全合规。',
  },
  {
    id: 'safety-training',
    step: 2,
    title: '内部司机培训',
    subtitle: '定期安全培训 · 证据链留痕',
    shortLabel: '培训',
    accent: 'violet',
    icon: GraduationCap,
    roles: ['安全部', '司机'],
    start: '定期对内部司机开展安全培训，并形成可追溯的培训记录。',
    process: [
      '安全部制定培训计划，组织内部司机参加安全培训。',
      '记录培训时间、内容、参训司机与完成情况。',
      '形成完整培训证据链，供交管部门查询时出示。',
    ],
    closure: '培训记录电子化归档，随时可调阅完整证据链，满足监管与内控要求。',
  },
  {
    id: 'safety-library',
    step: 3,
    title: '安全培训资料库',
    subtitle: '资料上传 · APP / 小程序学习',
    shortLabel: '资料库',
    accent: 'indigo',
    icon: Library,
    roles: ['安全部', '司机'],
    start: '安全部上传安全培训及安全运营相关资料，供内部司机在线学习。',
    process: [
      '安全部维护安全培训课件、制度规范与运营指引等资料。',
      '资料分类发布至资料库，支持版本更新与检索。',
      '内部司机通过 APP / 小程序快速查看、学习相关资料。',
    ],
    closure: '培训资料集中管理、随时更新，司机移动端可学可查，提升安全运营一致性。',
  },
  {
    id: 'safety-violation-record',
    step: 4,
    title: '违规记录',
    subtitle: '司机违规 · 关联评级',
    shortLabel: '违规',
    accent: 'amber',
    icon: FileWarning,
    roles: ['安全部', '业务管理组'],
    start: '记录内部司机在运营过程中的违规情况，并与相关主数据联动。',
    process: [
      '登记司机违规事件、违规类型、发生时间与处理结果。',
      '与司机管理档案关联，沉淀司机安全行为记录。',
      '与客户安全部评级等安全评估体系联动，影响风险判断。',
    ],
    closure: '司机违规可追踪、可汇总，为司机选用与客户安全评级提供依据。',
  },
  {
    id: 'safety-traffic-violation',
    step: 5,
    title: '违章管理',
    subtitle: '分值罚款 · 还车联动 · 代处理',
    shortLabel: '违章',
    accent: 'teal',
    icon: ShieldAlert,
    roles: ['安全部', '财务部', '业务管理组'],
    start: '记录司机交通违章的关键信息，并与还车应结款等业务环节联动。',
    process: [
      '登记违章时间、地点、分值、罚款金额及是否已缴纳等要素。',
      '与还车应结款联动，将未处理违章纳入结算考量。',
      '违章逾期仍未缴纳时，安全部自动生成代处理费用。',
    ],
    closure: '违章信息完整可查，逾期代处理费用自动形成，还车结算与财务侧口径一致。',
    prototypeHref: '/prototypes/vehicle-management',
    prototypeLabel: '打开车辆管理',
  },
  {
    id: 'safety-accident',
    step: 6,
    title: '事故管理',
    subtitle: '权责划分 · 保险赔付 · 还车联动',
    shortLabel: '事故',
    accent: 'emerald',
    icon: Siren,
    roles: ['安全部', '财务部', '业务管理组'],
    start: '记录车辆事故的关键信息，支撑定责、理赔与还车费用结算。',
    process: [
      '登记事故时间、地点、车辆、司机及事故权责划分情况。',
      '记录保险是否介入、赔付情况、保险上浮情况等要素。',
      '与还车应结款联动生成相关费用，安全部费用自动写入应结项。',
    ],
    closure: '事故从登记到赔付、上浮与还车应结款全链路贯通，安全费用不遗漏、可追溯。',
    prototypeHref: '/prototypes/vehicle-management',
    prototypeLabel: '打开车辆管理',
  },
];

export const SELF_OPERATED_MODULES: LineModule[] = [
  {
    id: 'self-contract',
    step: 1,
    title: '自营合同',
    subtitle: '关键信息录入 · 上传合同 · 自动交车',
    shortLabel: '合同',
    accent: 'blue',
    icon: FileSignature,
    roles: ['业务管理组', '业务服务组'],
    start: '创建自营合同，记录客户方、车型、车辆数、交车时间与地点等关键信息，并上传合同附件。',
    process: [
      '录入自营项目与客户方、车型、车辆数量等合同要素。',
      '填写交车时间、交车地点，上传自营合同扫描件。',
      '合同提交后自动生成交车任务，推送运维条线处理交付。',
    ],
    closure: '合同信息与交车任务联动，自营项目从签约起即可进入交付与运营环节。',
    prototypeHref: '/prototypes/oneos-web-lease-contract',
    prototypeLabel: '打开车辆租赁合同',
  },
  {
    id: 'self-ledger',
    step: 2,
    title: '自营台账',
    subtitle: '导入台账 · 成本利润核算 · 项目盈亏',
    shortLabel: '台账',
    accent: 'emerald',
    icon: BookOpen,
    roles: ['业务服务组', '财务部'],
    start: '根据导入的自营台账与账单信息，汇总项目侧收入与成本数据。',
    process: [
      '导入或维护自营运营台账、账单明细。',
      '自动计算利润侧数据，以及司机成本、车辆成本侧数据。',
      '汇集至项目盈亏表，支撑项目经营分析。',
      '演进阶段关联财务「收款记录」，形成业财记录闭环。',
    ],
    closure: '项目收入、司机与车辆成本在同一台账内可核对，盈亏结果可对接财务实收。',
    prototypeHref: '/prototypes/self-operated-business-ledger',
    prototypeLabel: '打开自营业务台账',
  },
];

const PLACEHOLDER_STATS: LineHeroStat[] = [
  { value: '—', label: '业务模块' },
  { value: '—', label: '协同部门' },
  { value: '—', label: '闭环阶段' },
];

export const BUSINESS_LINES: BusinessLineConfig[] = [
  {
    id: 'lease',
    label: '租赁业务条线',
    shortLabel: '租赁',
    hero: {
      title: '租赁业务条线',
      tagline: '从合同发起->业财闭环->合同结束归档',
      summary:
        '六大模块串联客户评级、标准合同、租赁签约、提车收款、租期台账与还车结算。每个模块都有明确责任部门、输入条件与闭环结果。',
      stats: [
        { value: '6', label: '业务模块' },
        { value: '8+', label: '协同部门' },
        { value: '1', label: '全链路闭环' },
      ],
    },
    modules: LEASE_MODULES,
    loopTitle: '一条业务，六个模块，完整闭环',
    loopSummary:
      '客户评级决定是否可签 → 标准模板支撑签约 → 租赁合同进入履约 → 提车应收对齐后交车 → 台账承接租期账单 → 还车应结款会签归档。',
    evolution: {
      currentLabel: '现阶段 · 合同电子化 · 业务闭环化',
      currentText: '标准合同模板、电子签约、收款关联与台账闭环已在 ONE-OS 内贯通，支撑租赁全生命周期管理。',
      targetLabel: '演进方向 · 移动端商城直连',
      targetText: '移动端商城可直接发起租赁合同，提车应收、交车、台账与还车结算等后续业务自动打通；业务模式由主动推进转向被动接收与处理，系统自动提醒并流转待办，减少人工催办与漏单。',
    },
  },
  {
    id: 'energy',
    label: '能源业务条线',
    shortLabel: '能源',
    hero: {
      title: '能源业务条线',
      tagline: '从加氢站供应商管理，到加氢站/客户的氢费业财闭环；未来开放独立 SaaS 工具以供加氢站运作和我方采集数据使用',
      summary:
        '六大模块串联供应商管理、加氢站运营、加氢订单采集、车辆氢费明细、客户氢费账户与上下游扩展规划，覆盖签约站主动上报与非签约站补录两条路径。',
      stats: [
        { value: '6', label: '业务模块' },
        { value: '5+', label: '协同部门' },
        { value: '1', label: '业财闭环' },
      ],
    },
    modules: ENERGY_MODULES,
    loopTitle: '供应商到账户，氢费全链路闭环',
    loopSummary:
      '供应商主数据支撑站点绑定 → 签约站账号与订单主动上报 → 非签约站氢费补录对账 → 客户对账单关联收款 → 加氢记录标记已付款 → 成熟后向采购端与司机端延伸。',
    evolution: {
      currentLabel: '现阶段 · 手工维护氢费明细',
      currentText:
        '业务管理部-能源组在系统中手工维护、记录车辆氢费明细，完成非签约站补录、对账归档及加氢站与客户氢费账户余额管理。',
      targetLabel: '演进方向 · 加氢站主动上报',
      targetText:
        '签约加氢站通过系统账号主动上报加氢记录，业务管理组-能源部由「全量手工录入」转为「核对确认」，提升数据时效、减少重复补录。',
    },
  },
  {
    id: 'ops',
    label: '运维管理条线',
    shortLabel: '运维',
    hero: {
      title: '运维管理条线',
      tagline: '车辆全生命周期留痕、租赁/自营业务的交还车闭环',
      summary:
        '十五个模块串联供应商、采购合同、验车入库、牌证整备、交还车、故障维保、异动调拨与出售过户报废，覆盖氢能车从进入到退出运营的全生命周期运维场景。',
      stats: [
        { value: '15', label: '业务模块' },
        { value: '6+', label: '协同部门' },
        { value: '1', label: '全链路闭环' },
      ],
    },
    modules: OPS_MODULES,
    loopTitle: '从验车入库到出库归档，运维全链路留痕',
    loopSummary:
      '供应商与采购合同入库 → 上牌证照与备车整备 → 交车 / 替换 / 还车闭环 → 故障与年审维保 → 异动调拨 → 出售 / 过户 / 报废审批出库，车辆全生命周期数据完整可追溯。',
    evolution: {
      currentLabel: '现阶段 · 车辆使用环节闭环',
      currentText:
        '聚焦交还车、证照、故障、年审维保、异动调拨等车辆使用阶段运维能力，支撑租赁与自营业务的现场交付与费用核算。',
      targetLabel: '演进方向 · 入库到出库全链路',
      targetText:
        '从入库 → 运作 → 出库形成完整闭环，贯通采购验车入库、牌证整备、运营交还、维保处置到车辆退出全生命周期管理。',
    },
  },
  {
    id: 'safety',
    label: '安全管理条线',
    shortLabel: '安全',
    hero: {
      title: '安全管理条线',
      tagline: '司机安全全链条 · 培训留痕 · 违章事故联动还车；安全事前的预判，并可与客户安全评级挂钩',
      summary:
        '六大模块串联司机管理、内部培训、资料库、违规与违章记录及事故管理，覆盖自营内部司机安全合规与还车应结款联动场景。',
      stats: [
        { value: '6', label: '业务模块' },
        { value: '4+', label: '协同部门' },
        { value: '1', label: '安全闭环' },
      ],
    },
    modules: SAFETY_MODULES,
    loopTitle: '从司机档案到违章事故，安全全链路留痕',
    loopSummary:
      '司机信息与证照管理 → 定期培训与资料库学习 → 违规记录关联评级 → 违章 / 事故登记 → 联动还车应结款与代处理费用，安全证据链完整可追溯。',
  },
  {
    id: 'self-operated',
    label: '自营业务条线',
    shortLabel: '自营',
    hero: {
      title: '自营业务条线',
      tagline: '自营物流条线合同->账单业财闭环',
      summary:
        '两大模块串联自营合同与自营台账：合同驱动交车任务，台账导入后自动核算司机、车辆成本与项目盈亏，逐步对接财务收款形成业财闭环。',
      stats: [
        { value: '2', label: '业务模块' },
        { value: '4+', label: '协同部门' },
        { value: '1', label: '业财闭环' },
      ],
    },
    modules: SELF_OPERATED_MODULES,
    loopTitle: '合同到台账，自营经营可核算',
    loopSummary:
      '自营合同录入并生成交车任务 → 运营数据导入自营台账 → 自动汇总利润与司机、车辆成本 → 汇集项目盈亏表 → 关联收款记录完成业财闭环。',
    evolution: {
      currentLabel: '现阶段 · 人工核算台账',
      currentText:
        '人工发起自营合同，人工计算车辆成本、司机成本与自营台账，项目盈亏依赖线下表格汇总与人工核对。',
      targetLabel: '演进方向 · 业财记录闭环',
      targetText:
        '仍人工发起合同；司机在线管理、司机成本自动计算；自营台账人工导入后自动汇总，关联财务「收款记录」模块，形成业财记录闭环。',
    },
  },
];

export const BUSINESS_LINE_MAP = Object.fromEntries(
  BUSINESS_LINES.map((line) => [line.id, line]),
) as Record<BusinessLineId, BusinessLineConfig>;

export const DEFAULT_BUSINESS_LINE_ID: BusinessLineId = 'lease';

export const SYSTEM_INTRO = {
  eyebrow: 'ONE-OS',
  title: '系统介绍',
  tagline: '1 套系统，5 大业务条线闭环，3 大数据底座决策，走向业财一体',
  summary:
    'ONE-OS 以统一平台承载租赁、能源、运维、安全、自营五条业务条线，业务侧模块闭环已逐步成型；条线数据向上汇集成车辆资产、条线盈亏、里程履约三大数据底座，支撑管理层看全局、定方向、督风险。系统建设的核心方向，是在业务闭环跑通的基础上打通财务系统，由「业务驱动、财务手工维护」转向业财联动、数据同源。',
  evolution: {
    currentLabel: '现阶段 · 业务驱动 · 财务手工维护',
    currentText:
      '租赁、能源、自营等条线的合同、台账、对账、收付款多在 ONE-OS 内完成业务闭环，但财务侧收款、付款、核销仍大量依赖人工录入、导出与核对，业财之间存在时差与重复维护。',
    targetLabel: '演进方向 · 业财闭环一体化',
    targetText:
      '在各业务条线系统闭环成熟的基础上打通财务系统（如 YS），业务单据与台账自动关联财务「收款记录」「付款记录」，收付款状态双向回写，实现业财一体、减少手工维护、账实一致。',
  },
};

export const LINE_ACCENTS: Record<BusinessLineId, ModuleAccent> = {
  lease: 'blue',
  energy: 'teal',
  ops: 'violet',
  safety: 'amber',
  'self-operated': 'emerald',
};

/** @deprecated 使用 BUSINESS_LINE_MAP.lease */
export const LINE_MODULES = LEASE_MODULES;

/** @deprecated 使用 BUSINESS_LINE_MAP.lease.hero */
export const LINE_HERO = BUSINESS_LINE_MAP.lease.hero;

/** @deprecated 使用 BUSINESS_LINE_MAP.lease.loopSummary */
export const LOOP_SUMMARY = BUSINESS_LINE_MAP.lease.loopSummary;

export const LINE_TAB_ICONS: Record<BusinessLineId, LucideIcon> = {
  lease: FileSignature,
  energy: Fuel,
  ops: Wrench,
  safety: ShieldCheck,
  'self-operated': Truck,
};
