-- 数字员工人工接管提醒策略
-- 设计原则：客户侧无感，不配置“转给谁”，统一提醒客户归属销售；无归属销售时由业务侧兜底到管理员/待处理池。

CREATE TABLE IF NOT EXISTS lobster_handoff_policy (
  id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  company_id BIGINT NOT NULL COMMENT '企业ID',
  enabled TINYINT DEFAULT 1 COMMENT '是否启用自动人工接管提醒',
  trigger_manual_request TINYINT DEFAULT 1 COMMENT '客户明确要求人工/负责人时提醒',
  trigger_high_risk TINYINT DEFAULT 1 COMMENT '投诉/退款/举报/法律风险时提醒',
  trigger_urgency TINYINT DEFAULT 1 COMMENT '客户明显着急或不满时提醒',
  trigger_low_relevance TINYINT DEFAULT 1 COMMENT 'AI连续答非所问时提醒',
  trigger_media TINYINT DEFAULT 1 COMMENT '图片/视频/文件等需要人工查看时提醒',
  trigger_reply_risk TINYINT DEFAULT 1 COMMENT 'AI回复高风险被拦截时提醒',
  trigger_quota_exceeded TINYINT DEFAULT 1 COMMENT 'AI额度用完时提醒',
  notify_owner_sales TINYINT DEFAULT 1 COMMENT '固定提醒客户归属销售',
  pause_ai TINYINT DEFAULT 1 COMMENT '触发后暂停AI自动回复',
  silent_to_customer TINYINT DEFAULT 1 COMMENT '客户侧无感，不发送转人工提示',
  create_follow_task TINYINT DEFAULT 1 COMMENT '创建销售跟进待办',
  record_reason TINYINT DEFAULT 1 COMMENT '记录接管原因',
  customer_message VARCHAR(500) DEFAULT NULL COMMENT '可选客户提示语，默认不发送',
  internal_notice VARCHAR(500) DEFAULT '客户需要人工跟进，请及时处理' COMMENT '提醒归属销售的内部提示',
  status TINYINT DEFAULT 1 COMMENT '状态 1正常 0停用',
  create_by VARCHAR(64) DEFAULT NULL COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(64) DEFAULT NULL COMMENT '更新人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (id),
  UNIQUE KEY uk_company (company_id),
  KEY idx_enabled (enabled, status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数字员工-人工接管提醒策略';

-- 人工接管事件表：记录无感接管原因、归属销售提醒状态和后续待办
CREATE TABLE IF NOT EXISTS lobster_handoff_events (
  id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  company_id BIGINT NOT NULL COMMENT '企业ID',
  instance_id BIGINT DEFAULT NULL COMMENT '工作流实例ID',
  external_user_id VARCHAR(128) DEFAULT NULL COMMENT '外部联系人/客户ID',
  trigger_type VARCHAR(64) DEFAULT NULL COMMENT '触发类型',
  trigger_detail VARCHAR(1000) DEFAULT NULL COMMENT '触发详情',
  reason VARCHAR(500) DEFAULT NULL COMMENT '接管原因',
  urgency VARCHAR(50) DEFAULT NULL COMMENT '紧急程度',
  notify_owner_sales TINYINT DEFAULT 1 COMMENT '是否提醒归属销售',
  pause_ai TINYINT DEFAULT 1 COMMENT '是否暂停AI',
  silent_to_customer TINYINT DEFAULT 1 COMMENT '客户侧是否无感',
  create_follow_task TINYINT DEFAULT 1 COMMENT '是否创建跟进待办',
  notify_status VARCHAR(30) DEFAULT 'pending' COMMENT '提醒状态 pending/sent/failed/unassigned',
  owner_sales_id VARCHAR(64) DEFAULT NULL COMMENT '客户归属销售ID',
  follow_task_id BIGINT DEFAULT NULL COMMENT '跟进待办ID',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (id),
  KEY idx_company_instance (company_id, instance_id),
  KEY idx_owner_sales (company_id, owner_sales_id),
  KEY idx_trigger (trigger_type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数字员工-人工接管提醒事件';

-- 扩展旧人工接管事件表字段，MySQL 8 支持 IF NOT EXISTS，重复执行不报错
ALTER TABLE lobster_handoff_events
  ADD COLUMN IF NOT EXISTS notify_owner_sales TINYINT DEFAULT 1 COMMENT '是否提醒归属销售',
  ADD COLUMN IF NOT EXISTS pause_ai TINYINT DEFAULT 1 COMMENT '是否暂停AI',
  ADD COLUMN IF NOT EXISTS silent_to_customer TINYINT DEFAULT 1 COMMENT '客户侧是否无感',
  ADD COLUMN IF NOT EXISTS create_follow_task TINYINT DEFAULT 1 COMMENT '是否创建跟进待办',
  ADD COLUMN IF NOT EXISTS notify_status VARCHAR(30) DEFAULT 'pending' COMMENT '提醒状态 pending/sent/failed/unassigned',
  ADD COLUMN IF NOT EXISTS owner_sales_id VARCHAR(64) DEFAULT NULL COMMENT '客户归属销售ID',
  ADD COLUMN IF NOT EXISTS follow_task_id BIGINT DEFAULT NULL COMMENT '跟进待办ID';
