|
@@ -1050,6 +1050,7 @@ CREATE TABLE `chat_msg`
|
|
|
`nick_name` varchar(200) NULL DEFAULT NULL,
|
|
`nick_name` varchar(200) NULL DEFAULT NULL,
|
|
|
`avatar` varchar(200) NULL DEFAULT NULL,
|
|
`avatar` varchar(200) NULL DEFAULT NULL,
|
|
|
`user_type` tinyint(1) NULL DEFAULT 1 COMMENT '用户类型 1微信用户 2小程序用户 3销售用户',
|
|
`user_type` tinyint(1) NULL DEFAULT 1 COMMENT '用户类型 1微信用户 2小程序用户 3销售用户',
|
|
|
|
|
+ `channel_type` varchar(30) NULL DEFAULT 'QW' COMMENT '渠道类型',
|
|
|
PRIMARY KEY (`msg_id`) USING BTREE
|
|
PRIMARY KEY (`msg_id`) USING BTREE
|
|
|
) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '聊天消息记录表' ROW_FORMAT = DYNAMIC;
|
|
) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '聊天消息记录表' ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
|
@@ -1113,6 +1114,15 @@ CREATE TABLE `chat_session`
|
|
|
`user_type` tinyint(1) NULL DEFAULT 1 COMMENT '用户类型 1微信用户 2小程序用户 3销售用户',
|
|
`user_type` tinyint(1) NULL DEFAULT 1 COMMENT '用户类型 1微信用户 2小程序用户 3销售用户',
|
|
|
`nick_name` varchar(200) NULL DEFAULT NULL,
|
|
`nick_name` varchar(200) NULL DEFAULT NULL,
|
|
|
`avatar` varchar(200) NULL DEFAULT NULL,
|
|
`avatar` varchar(200) NULL DEFAULT NULL,
|
|
|
|
|
+ `contact_id` bigint NULL DEFAULT NULL COMMENT '触点ID',
|
|
|
|
|
+ `channel_type` varchar(30) NULL DEFAULT 'QW' COMMENT '渠道类型: QW/WX/IM/WHATSAPP/...',
|
|
|
|
|
+ `channel_source_id` varchar(128) NULL DEFAULT NULL COMMENT '源平台用户ID',
|
|
|
|
|
+ `channel_source_type` varchar(100) NULL DEFAULT NULL COMMENT '源平台表名',
|
|
|
|
|
+ `last_msg` varchar(500) NULL DEFAULT NULL COMMENT '最后消息摘要',
|
|
|
|
|
+ `last_msg_time` datetime NULL DEFAULT NULL COMMENT '最后消息时间',
|
|
|
|
|
+ `unread_count` int NULL DEFAULT 0 COMMENT '未读数',
|
|
|
|
|
+ `instance_id` bigint NULL DEFAULT NULL COMMENT '工作流实例ID',
|
|
|
|
|
+ `external_user_id` varchar(128) NULL DEFAULT NULL COMMENT '外部用户ID',
|
|
|
PRIMARY KEY (`session_id`) USING BTREE
|
|
PRIMARY KEY (`session_id`) USING BTREE
|
|
|
) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '会话表' ROW_FORMAT = DYNAMIC;
|
|
) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '会话表' ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
|
@@ -15828,7 +15838,8 @@ CREATE TABLE `qw_user`
|
|
|
`send_msg_type` int NULL DEFAULT 0 COMMENT '发送消息类型0侧边栏1pad',
|
|
`send_msg_type` int NULL DEFAULT 0 COMMENT '发送消息类型0侧边栏1pad',
|
|
|
`is_auto` char(2) NULL DEFAULT '00' COMMENT '是否自动发课 00、禁用,01、启用',
|
|
`is_auto` char(2) NULL DEFAULT '00' COMMENT '是否自动发课 00、禁用,01、启用',
|
|
|
`video_get_status` int NULL DEFAULT 1 COMMENT '是否获取视频号消息(0否1是)',
|
|
`video_get_status` int NULL DEFAULT 1 COMMENT '是否获取视频号消息(0否1是)',
|
|
|
- `ai_status` tinyint(1) NULL DEFAULT 0 COMMENT '角色状态 默认为0 0为启用 1为禁用', `qw_open_user_id` varchar(100) NULL DEFAULT NULL,
|
|
|
|
|
|
|
+ `ai_status` tinyint(1) NULL DEFAULT 0 COMMENT '角色状态 默认为0 0为启用 1为禁用',
|
|
|
|
|
+ `qw_open_user_id` varchar(100) NULL DEFAULT NULL,
|
|
|
|
|
|
|
|
PRIMARY KEY (`id`) USING BTREE,
|
|
PRIMARY KEY (`id`) USING BTREE,
|
|
|
UNIQUE INDEX `5`(`qw_user_id` ASC, `corp_id` ASC) USING BTREE,
|
|
UNIQUE INDEX `5`(`qw_user_id` ASC, `corp_id` ASC) USING BTREE,
|
|
@@ -18177,6 +18188,8 @@ CREATE TABLE `company_workflow_lobster_node`
|
|
|
`message_template` text COMMENT '消息模板',
|
|
`message_template` text COMMENT '消息模板',
|
|
|
`condition_expr` text COMMENT '条件表达式JSON',
|
|
`condition_expr` text COMMENT '条件表达式JSON',
|
|
|
`node_config` text COMMENT '节点配置JSON',
|
|
`node_config` text COMMENT '节点配置JSON',
|
|
|
|
|
+ `scene_code` varchar(64) DEFAULT NULL COMMENT 'AI场景编码',
|
|
|
|
|
+ `model_name` varchar(128) DEFAULT NULL COMMENT '指定模型名称',
|
|
|
`greeting_config` text COMMENT '问候配置JSON',
|
|
`greeting_config` text COMMENT '问候配置JSON',
|
|
|
`create_by` varchar(64) DEFAULT NULL,
|
|
`create_by` varchar(64) DEFAULT NULL,
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
@@ -18184,10 +18197,11 @@ CREATE TABLE `company_workflow_lobster_node`
|
|
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
`del_flag` tinyint NOT NULL DEFAULT '0',
|
|
`del_flag` tinyint NOT NULL DEFAULT '0',
|
|
|
`send_time` time DEFAULT NULL COMMENT '发送时间',
|
|
`send_time` time DEFAULT NULL COMMENT '发送时间',
|
|
|
- `max_round` int DEFAULT '0' COMMENT '最大循环数',
|
|
|
|
|
|
|
+ `max_rounds` int DEFAULT '0' COMMENT '最大循环数',
|
|
|
PRIMARY KEY (`id`),
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `idx_workflow_id` (`workflow_id`),
|
|
KEY `idx_workflow_id` (`workflow_id`),
|
|
|
KEY `idx_node_code` (`node_code`),
|
|
KEY `idx_node_code` (`node_code`),
|
|
|
|
|
+ KEY `idx_node_scene_code` (`scene_code`),
|
|
|
KEY `idx_cwln_workflow_del_sort` (`workflow_id`,`del_flag`,`sort_no`)
|
|
KEY `idx_cwln_workflow_del_sort` (`workflow_id`,`del_flag`,`sort_no`)
|
|
|
) ENGINE=InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工作流龙虾节点';
|
|
) ENGINE=InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工作流龙虾节点';
|
|
|
|
|
|
|
@@ -18784,3 +18798,1824 @@ CREATE TABLE `sys_redpacket_config_more` (
|
|
|
PRIMARY KEY (`id`),
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `idx_mch_id` (`mch_id`)
|
|
KEY `idx_mch_id` (`mch_id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='多商户配置';
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='多商户配置';
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+-- ============================================================================
|
|
|
|
|
+-- tenant-initTable 补全:与 Java @TableName / Mapper 一致的缺失表
|
|
|
|
|
+-- ============================================================================
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for cc_llm_kb
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `cc_llm_kb`;
|
|
|
|
|
+CREATE TABLE `cc_llm_kb` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `name` varchar(100) DEFAULT NULL COMMENT '知识库名称',
|
|
|
|
|
+ `title` varchar(200) DEFAULT NULL COMMENT '标题',
|
|
|
|
|
+ `content` text COMMENT '内容',
|
|
|
|
|
+ `cat_id` bigint DEFAULT NULL COMMENT '分类ID',
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI外呼LLM知识库';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_ai_provider
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_ai_provider`;
|
|
|
|
|
+CREATE TABLE `company_ai_provider` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `provider_code` varchar(50) DEFAULT NULL,
|
|
|
|
|
+ `provider_name` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `api_key` varchar(500) DEFAULT NULL,
|
|
|
|
|
+ `api_endpoint` varchar(500) DEFAULT NULL,
|
|
|
|
|
+ `model_name` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `max_tokens` int DEFAULT 4096,
|
|
|
|
|
+ `temperature` double DEFAULT 0.7,
|
|
|
|
|
+ `is_default` int DEFAULT 0,
|
|
|
|
|
+ `enabled` int DEFAULT 1,
|
|
|
|
|
+ `del_flag` int DEFAULT 0,
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT NULL,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业AI供应商配置';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_ai_workflow_company_user
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_ai_workflow_company_user`;
|
|
|
|
|
+CREATE TABLE `company_ai_workflow_company_user` (
|
|
|
|
|
+ `workflow_id` bigint NOT NULL COMMENT '工作流ID',
|
|
|
|
|
+ `company_user_id` bigint NOT NULL COMMENT '公司员工ID',
|
|
|
|
|
+ PRIMARY KEY (`workflow_id`, `company_user_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI工作流-员工关联';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_ai_workflow_company_voice
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_ai_workflow_company_voice`;
|
|
|
|
|
+CREATE TABLE `company_ai_workflow_company_voice` (
|
|
|
|
|
+ `workflow_id` bigint NOT NULL COMMENT '工作流ID',
|
|
|
|
|
+ `company_user_id` bigint NOT NULL COMMENT '公司员工ID',
|
|
|
|
|
+ `node_key` varchar(64) NOT NULL COMMENT '节点Key',
|
|
|
|
|
+ PRIMARY KEY (`workflow_id`, `company_user_id`, `node_key`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI工作流-员工语音节点关联';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_lobster_profile_config
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_lobster_profile_config`;
|
|
|
|
|
+CREATE TABLE `company_lobster_profile_config` (
|
|
|
|
|
+ id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ field_key VARCHAR(64) NOT NULL COMMENT '客户画像字段(如 age, gender, occupation)',
|
|
|
|
|
+ `field_label` VARCHAR(64) COMMENT '字段中文名',
|
|
|
|
|
+ `field_type` VARCHAR(32) DEFAULT NULL COMMENT '字段类型',
|
|
|
|
|
+ `extract_rule` TEXT COMMENT '提取规则(关键词/正则/AI prompt 模板)',
|
|
|
|
|
+ extract_mode VARCHAR(32) DEFAULT 'ai' COMMENT 'keyword/regex/ai',
|
|
|
|
|
+ enabled TINYINT DEFAULT 1,
|
|
|
|
|
+ sort_order INT DEFAULT 0,
|
|
|
|
|
+ create_by VARCHAR(64),
|
|
|
|
|
+ create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ update_by VARCHAR(64),
|
|
|
|
|
+ update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ KEY idx_company (company_id),
|
|
|
|
|
+ KEY idx_company_field (company_id, field_key)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾画像配置';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_lobster_sensitive_word
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_lobster_sensitive_word`;
|
|
|
|
|
+CREATE TABLE `company_lobster_sensitive_word` (
|
|
|
|
|
+ id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ word VARCHAR(128) NOT NULL,
|
|
|
|
|
+ category VARCHAR(32) COMMENT '分类:politic/violence/porn/finance/custom',
|
|
|
|
|
+ action VARCHAR(32) DEFAULT 'block' COMMENT 'block/replace/warn',
|
|
|
|
|
+ replace_text VARCHAR(128) COMMENT '替换文本(action=replace 时用)',
|
|
|
|
|
+ enabled TINYINT DEFAULT 1,
|
|
|
|
|
+ create_by VARCHAR(64),
|
|
|
|
|
+ create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ update_by VARCHAR(64),
|
|
|
|
|
+ update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ KEY idx_company (company_id),
|
|
|
|
|
+ KEY idx_company_word (company_id, word)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾敏感词';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_lobster_summary_config
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_lobster_summary_config`;
|
|
|
|
|
+CREATE TABLE `company_lobster_summary_config` (
|
|
|
|
|
+ id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ scenario VARCHAR(64) NOT NULL COMMENT '场景:daily/handoff/closing',
|
|
|
|
|
+ summary_template TEXT COMMENT '摘要 prompt 模板',
|
|
|
|
|
+ max_length INT DEFAULT 500 COMMENT '摘要最大字数',
|
|
|
|
|
+ enabled TINYINT DEFAULT 1,
|
|
|
|
|
+ create_by VARCHAR(64),
|
|
|
|
|
+ create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ update_by VARCHAR(64),
|
|
|
|
|
+ update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ KEY idx_company (company_id)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾会话摘要配置';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_sms_device
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_sms_device`;
|
|
|
|
|
+CREATE TABLE `company_sms_device` (
|
|
|
|
|
+ `device_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '设备ID',
|
|
|
|
|
+ `tenant_id` BIGINT NOT NULL COMMENT '所属租户',
|
|
|
|
|
+ `company_user_id` BIGINT DEFAULT NULL COMMENT '绑定销售用户ID(NULL=未分配)',
|
|
|
|
|
+ `device_name` VARCHAR(100) DEFAULT NULL COMMENT '设备名称',
|
|
|
|
|
+ `imei` VARCHAR(50) NOT NULL COMMENT 'IMEI(唯一标识)',
|
|
|
|
|
+ `app_version` VARCHAR(30) DEFAULT NULL COMMENT 'APP版本',
|
|
|
|
|
+ `middleware_id` BIGINT DEFAULT NULL COMMENT '关联中间件ID',
|
|
|
|
|
+ `last_heartbeat` DATETIME DEFAULT NULL COMMENT '最后心跳时间',
|
|
|
|
|
+ `status` TINYINT DEFAULT 0 COMMENT '0离线/1在线/2禁用',
|
|
|
|
|
+ `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
+ `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
|
+ PRIMARY KEY (`device_id`),
|
|
|
|
|
+ UNIQUE KEY `uk_imei` (`imei`),
|
|
|
|
|
+ KEY `idx_tenant_id` (`tenant_id`),
|
|
|
|
|
+ KEY `idx_company_user_id` (`company_user_id`),
|
|
|
|
|
+ KEY `idx_middleware_id` (`middleware_id`),
|
|
|
|
|
+ KEY `idx_status` (`status`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='手机设备管理';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_voice_robotic_call_blacklist_intercept_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_voice_robotic_call_blacklist_intercept_log`;
|
|
|
|
|
+CREATE TABLE `company_voice_robotic_call_blacklist_intercept_log` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '租户/公司ID',
|
|
|
|
|
+ `scene_code` varchar(32) NOT NULL COMMENT '业务场景:CALL外呼 SMS短信 ADD_WX加微',
|
|
|
|
|
+ `blacklist_id` bigint DEFAULT NULL COMMENT '命中的黑名单记录ID',
|
|
|
|
|
+ `target_type` tinyint NOT NULL COMMENT '对象类型:1手机号 2客户ID 3企微客户ID',
|
|
|
|
|
+ `target_value` varchar(128) NOT NULL COMMENT '拦截时对象值(手机号加密)',
|
|
|
|
|
+ `blacklist_reason` varchar(255) DEFAULT NULL COMMENT '黑名单拉黑原因快照',
|
|
|
|
|
+ `intercept_reason` varchar(500) NOT NULL COMMENT '拦截说明',
|
|
|
|
|
+ `customer_id` bigint DEFAULT NULL COMMENT 'CRM客户ID',
|
|
|
|
|
+ `callee_id` bigint DEFAULT NULL COMMENT '外呼被叫人ID',
|
|
|
|
|
+ `robotic_id` bigint DEFAULT NULL COMMENT '外呼任务ID',
|
|
|
|
|
+ `company_user_id` bigint DEFAULT NULL COMMENT '操作人ID',
|
|
|
|
|
+ `biz_id` varchar(64) DEFAULT NULL COMMENT '业务ID',
|
|
|
|
|
+ `biz_trace_id` varchar(64) DEFAULT NULL COMMENT '链路追踪ID',
|
|
|
|
|
+ `request_ip` varchar(64) DEFAULT NULL COMMENT '请求IP',
|
|
|
|
|
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '拦截时间',
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_time` (`company_id`, `create_time`),
|
|
|
|
|
+ KEY `idx_blacklist_id` (`blacklist_id`),
|
|
|
|
|
+ KEY `idx_scene_time` (`scene_code`, `create_time`),
|
|
|
|
|
+ KEY `idx_target_value` (`target_type`, `target_value`(32)),
|
|
|
|
|
+ KEY `idx_customer_id` (`customer_id`),
|
|
|
|
|
+ KEY `idx_robotic_callee` (`robotic_id`, `callee_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='外呼黑名单拦截明细';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for customer_fact
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `customer_fact`;
|
|
|
|
|
+CREATE TABLE `customer_fact` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ external_user_id VARCHAR(128) NOT NULL,
|
|
|
|
|
+ instance_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ fact_key VARCHAR(200) NOT NULL,
|
|
|
|
|
+ fact_value VARCHAR(2000),
|
|
|
|
|
+ fact_type VARCHAR(30) DEFAULT 'EXTRACTED' COMMENT 'EXTRACTED/INFERRED/MANUAL',
|
|
|
|
|
+ confidence DOUBLE DEFAULT 1.0 COMMENT '1.0=新插入, 衰减至<0.3将被清理',
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ UNIQUE KEY uk_fact (company_id, external_user_id, instance_id, fact_key),
|
|
|
|
|
+ INDEX idx_company_user (company_id, external_user_id)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for customer_habit
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `customer_habit`;
|
|
|
|
|
+CREATE TABLE `customer_habit` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ external_user_id VARCHAR(128) NOT NULL,
|
|
|
|
|
+ habit_key VARCHAR(64) NOT NULL,
|
|
|
|
|
+ habit_value VARCHAR(512),
|
|
|
|
|
+ confidence DOUBLE DEFAULT 0.5,
|
|
|
|
|
+ source VARCHAR(32) DEFAULT 'AI',
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ UNIQUE KEY uk_habit (company_id, external_user_id, habit_key)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for customer_tag
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `customer_tag`;
|
|
|
|
|
+CREATE TABLE `customer_tag` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ external_user_id VARCHAR(128) NOT NULL,
|
|
|
|
|
+ tag_key VARCHAR(100) NOT NULL,
|
|
|
|
|
+ tag_value VARCHAR(500),
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ UNIQUE KEY uk_tag (company_id, external_user_id, tag_key)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for fee_plan
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `fee_plan`;
|
|
|
|
|
+CREATE TABLE `fee_plan` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `plan_code` varchar(64) NOT NULL COMMENT '????',
|
|
|
|
|
+ `plan_name` varchar(128) NOT NULL COMMENT '????',
|
|
|
|
|
+ `version` int NOT NULL COMMENT '???',
|
|
|
|
|
+ `status` varchar(16) NOT NULL DEFAULT 'DRAFT' COMMENT 'DRAFT/PUBLISHED/ARCHIVED',
|
|
|
|
|
+ `effective_time` datetime DEFAULT NULL COMMENT '????',
|
|
|
|
|
+ `expire_time` datetime DEFAULT NULL COMMENT '????',
|
|
|
|
|
+ `remark` varchar(500) DEFAULT NULL,
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_plan_ver` (`plan_code`,`version`),
|
|
|
|
|
+ KEY `idx_status` (`status`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='??????';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for fee_plan_item
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `fee_plan_item`;
|
|
|
|
|
+CREATE TABLE `fee_plan_item` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `plan_code` varchar(64) NOT NULL,
|
|
|
|
|
+ `version` int NOT NULL,
|
|
|
|
|
+ `item_code` varchar(64) NOT NULL COMMENT 'FLOW_POSTPAID/CALL_OUT/CALL_IN/AI_CALL/SOP_TOKEN/AI_REPLY_TOKEN/ADD_WECHAT/OPEN_ACCOUNT_NON_AI/OPEN_ACCOUNT_AI',
|
|
|
|
|
+ `unit` varchar(32) NOT NULL COMMENT 'GB/MIN/TOKEN/COUNT/TIME',
|
|
|
|
|
+ `unit_price` decimal(18,6) NOT NULL DEFAULT '0.000000' COMMENT '??',
|
|
|
|
|
+ `token_unit` bigint DEFAULT NULL COMMENT 'token????(?100000)',
|
|
|
|
|
+ `min_charge_unit` int DEFAULT NULL COMMENT '??????(?????1??)',
|
|
|
|
|
+ `enabled` tinyint NOT NULL DEFAULT '1',
|
|
|
|
|
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_plan_item` (`plan_code`,`version`,`item_code`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='?????';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_api_registry
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_api_registry`;
|
|
|
|
|
+CREATE TABLE `lobster_api_registry` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `api_name` varchar(200) NOT NULL,
|
|
|
|
|
+ `api_key` varchar(100) NOT NULL,
|
|
|
|
|
+ `api_url` varchar(500) DEFAULT NULL,
|
|
|
|
|
+ `api_type` varchar(50) DEFAULT NULL,
|
|
|
|
|
+ `api_description` text,
|
|
|
|
|
+ `request_method` varchar(10) DEFAULT 'POST',
|
|
|
|
|
+ `request_headers` text,
|
|
|
|
|
+ `request_body_template` text,
|
|
|
|
|
+ `response_mapping` text,
|
|
|
|
|
+ `enabled` tinyint DEFAULT '1',
|
|
|
|
|
+ `category` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT '',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT '',
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_api_key` (`api_key`),
|
|
|
|
|
+ KEY `idx_category` (`category`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='API注册中心';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_channel_plugin_config
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_channel_plugin_config`;
|
|
|
|
|
+CREATE TABLE `lobster_channel_plugin_config` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL COMMENT '租户ID',
|
|
|
|
|
+ channel_type VARCHAR(30) NOT NULL COMMENT '渠道类型: QW/WX/IM/WHATSAPP/LINE/TELEGRAM/APP_IM/DOUYIN_DM/KUAISHOU_DM/XIAOHONGSHU_DM/TMALL/JD/OTHER',
|
|
|
|
|
+ enabled TINYINT DEFAULT 0 COMMENT '是否启用: 0-禁用 1-启用',
|
|
|
|
|
+ config_json TEXT COMMENT '渠道配置JSON(API Key/Webhook URL/Token/phoneNumberId等)',
|
|
|
|
|
+ create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ UNIQUE KEY uk_company_channel (company_id, channel_type)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾渠道插件配置表(即插即用多IM通道)';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_compliance_audit
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_compliance_audit`;
|
|
|
|
|
+CREATE TABLE `lobster_compliance_audit` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ rule_name VARCHAR(200) DEFAULT NULL,
|
|
|
|
|
+ severity INT DEFAULT 1,
|
|
|
|
|
+ matched_keyword VARCHAR(200) DEFAULT NULL,
|
|
|
|
|
+ content_snippet VARCHAR(500) DEFAULT NULL,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ INDEX idx_company (company_id)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_compliance_rule
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_compliance_rule`;
|
|
|
|
|
+CREATE TABLE `lobster_compliance_rule` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `rule_name` varchar(200) DEFAULT NULL,
|
|
|
|
|
+ `rule_type` varchar(50) DEFAULT NULL,
|
|
|
|
|
+ `pattern` text,
|
|
|
|
|
+ `description` text,
|
|
|
|
|
+ `action` varchar(200) DEFAULT NULL,
|
|
|
|
|
+ `severity` int DEFAULT NULL,
|
|
|
|
|
+ `enabled` int DEFAULT '1',
|
|
|
|
|
+ `del_flag` int DEFAULT '0',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT NULL,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`),
|
|
|
|
|
+ KEY `idx_rule_type` (`rule_type`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾合规规则';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_conversation_summary
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_conversation_summary`;
|
|
|
|
|
+CREATE TABLE `lobster_conversation_summary` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `contact_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `summary_type` varchar(50) DEFAULT NULL,
|
|
|
|
|
+ `summary_content` text,
|
|
|
|
|
+ `key_points` text,
|
|
|
|
|
+ `sentiment_analysis` varchar(200) DEFAULT NULL,
|
|
|
|
|
+ `next_action_suggestion` text,
|
|
|
|
|
+ `message_count` int DEFAULT '0',
|
|
|
|
|
+ `del_flag` int DEFAULT '0',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT NULL,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`),
|
|
|
|
|
+ KEY `idx_instance_id` (`instance_id`),
|
|
|
|
|
+ KEY `idx_contact_id` (`contact_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾对话摘要';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_dead_letter_queue
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_dead_letter_queue`;
|
|
|
|
|
+CREATE TABLE `lobster_dead_letter_queue` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `workflow_instance_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `error_message` text,
|
|
|
|
|
+ `payload` text,
|
|
|
|
|
+ `retry_count` int DEFAULT '0',
|
|
|
|
|
+ `status` varchar(20) DEFAULT 'pending',
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_workflow_instance` (`workflow_instance_id`),
|
|
|
|
|
+ KEY `idx_status` (`status`),
|
|
|
|
|
+ `queue_name` varchar(100) DEFAULT NULL COMMENT '队列名',
|
|
|
|
|
+ `error_msg` varchar(500) DEFAULT NULL COMMENT '错误信息') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='死信队列';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_dialogue_state
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_dialogue_state`;
|
|
|
|
|
+CREATE TABLE `lobster_dialogue_state` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `instance_id` bigint NOT NULL,
|
|
|
|
|
+ `node_code` varchar(100) NOT NULL,
|
|
|
|
|
+ `state_json` text,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_instance_node` (`instance_id`,`node_code`),
|
|
|
|
|
+ KEY `idx_company` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_dynamic_node_impl
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_dynamic_node_impl`;
|
|
|
|
|
+CREATE TABLE `lobster_dynamic_node_impl` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT DEFAULT NULL COMMENT '租户ID, 0/NULL=全租户通用',
|
|
|
|
|
+ node_type INT NOT NULL COMMENT '陌生节点类型编号',
|
|
|
|
|
+ node_type_code VARCHAR(64) DEFAULT NULL COMMENT '节点编码(如knowledge_retrieval)',
|
|
|
|
|
+ fingerprint VARCHAR(128) NOT NULL COMMENT 'nodeType + config 关键字段 hash, 同 fingerprint 复用',
|
|
|
|
|
+ sub_dsl_json MEDIUMTEXT NOT NULL COMMENT 'AI 拆解后的子节点 DSL(JSON Array)',
|
|
|
|
|
+ prompt_used TEXT DEFAULT NULL COMMENT '生成时使用的 prompt 备份',
|
|
|
|
|
+ source_model VARCHAR(64) DEFAULT NULL COMMENT '生成模型名',
|
|
|
|
|
+ quality_score DOUBLE DEFAULT 0 COMMENT '质量评分 0-100',
|
|
|
|
|
+ exec_count INT DEFAULT 0 COMMENT '累计调用次数',
|
|
|
|
|
+ success_count INT DEFAULT 0 COMMENT '累计成功次数',
|
|
|
|
|
+ avg_duration_ms INT DEFAULT 0 COMMENT '平均执行毫秒',
|
|
|
|
|
+ status VARCHAR(16) DEFAULT 'DRAFT' COMMENT 'DRAFT/PENDING/ACTIVE/REJECTED',
|
|
|
|
|
+ last_exec_time DATETIME DEFAULT NULL,
|
|
|
|
|
+ reviewed_by VARCHAR(64) DEFAULT NULL,
|
|
|
|
|
+ reviewed_time DATETIME DEFAULT NULL,
|
|
|
|
|
+ reject_reason VARCHAR(255) DEFAULT NULL,
|
|
|
|
|
+ create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ KEY idx_lookup (node_type, fingerprint, status),
|
|
|
|
|
+ KEY idx_company_status (company_id, status),
|
|
|
|
|
+ KEY idx_node_type (node_type)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾动态节点学习产物表';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_e2e_run
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_e2e_run`;
|
|
|
|
|
+CREATE TABLE `lobster_e2e_run` (
|
|
|
|
|
+ `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
|
|
|
+ `run_id` VARCHAR(64) NOT NULL COMMENT '运行ID(UUID)',
|
|
|
|
|
+ `company_id` BIGINT NULL COMMENT '公司ID',
|
|
|
|
|
+ `template_id` BIGINT NULL COMMENT '工作流模板ID',
|
|
|
|
|
+ `instance_id` BIGINT NULL COMMENT '工作流实例ID',
|
|
|
|
|
+ `scenario_id` BIGINT NULL COMMENT '测试场景ID',
|
|
|
|
|
+ `business_desc` VARCHAR(500) NULL COMMENT '业务描述(若是即时生成)',
|
|
|
|
|
+ `total_score` DECIMAL(5,2) NULL COMMENT '综合评分(0-100)',
|
|
|
|
|
+ `passed_node_cnt` INT DEFAULT 0 COMMENT '通过节点数',
|
|
|
|
|
+ `total_node_cnt` INT DEFAULT 0 COMMENT '总节点数',
|
|
|
|
|
+ `duration_ms` BIGINT DEFAULT 0 COMMENT '总耗时ms',
|
|
|
|
|
+ `status` VARCHAR(20) DEFAULT 'RUNNING' COMMENT 'RUNNING|SUCCESS|FAILED',
|
|
|
|
|
+ `error_msg` TEXT NULL COMMENT '错误信息',
|
|
|
|
|
+ `evolution_count` INT DEFAULT 0 COMMENT '生成的进化建议数',
|
|
|
|
|
+ `create_by` VARCHAR(64) NULL,
|
|
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_run_id` (`run_id`),
|
|
|
|
|
+ KEY `idx_template` (`template_id`),
|
|
|
|
|
+ KEY `idx_status_time` (`status`, `create_time`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾E2E测试运行头表';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_e2e_run_node
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_e2e_run_node`;
|
|
|
|
|
+CREATE TABLE `lobster_e2e_run_node` (
|
|
|
|
|
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `run_id` VARCHAR(64) NOT NULL COMMENT '关联 lobster_e2e_run.run_id',
|
|
|
|
|
+ `node_seq` INT NOT NULL COMMENT '节点序号',
|
|
|
|
|
+ `node_code` VARCHAR(64) NOT NULL COMMENT '节点编码',
|
|
|
|
|
+ `node_type` VARCHAR(32) NULL COMMENT '节点类型',
|
|
|
|
|
+ `node_name` VARCHAR(128) NULL,
|
|
|
|
|
+ `turn_no` INT DEFAULT 1 COMMENT '单节点轮次(多轮对话)',
|
|
|
|
|
+ `user_input` TEXT NULL COMMENT '用户输入',
|
|
|
|
|
+ `ai_output` TEXT NULL COMMENT 'AI输出',
|
|
|
|
|
+ `score` DECIMAL(5,2) NULL COMMENT '本节点本轮评分',
|
|
|
|
|
+ `score_detail` TEXT NULL COMMENT '维度评分JSON',
|
|
|
|
|
+ `duration_ms` BIGINT DEFAULT 0,
|
|
|
|
|
+ `model_used` VARCHAR(64) NULL COMMENT '使用的模型',
|
|
|
|
|
+ `evolution_hint` TEXT NULL COMMENT '进化建议草稿',
|
|
|
|
|
+ `passed` TINYINT(1) DEFAULT 1 COMMENT '0=未达标 1=达标',
|
|
|
|
|
+ `error_msg` TEXT NULL,
|
|
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_run_seq` (`run_id`, `node_seq`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾E2E测试节点明细';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_event_node_audit
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_event_node_audit`;
|
|
|
|
|
+CREATE TABLE `lobster_event_node_audit` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL COMMENT '工作流实例ID',
|
|
|
|
|
+ `workflow_id` varchar(100) DEFAULT NULL COMMENT '工作流ID',
|
|
|
|
|
+ `node_key` varchar(100) DEFAULT NULL COMMENT '节点key',
|
|
|
|
|
+ `node_name` varchar(200) DEFAULT NULL COMMENT '节点名称',
|
|
|
|
|
+ `node_type` varchar(50) DEFAULT NULL COMMENT '节点类型',
|
|
|
|
|
+ `node_json` text COMMENT '节点完整JSON',
|
|
|
|
|
+ `insert_at` varchar(50) DEFAULT NULL COMMENT '插入位置(before/after)',
|
|
|
|
|
+ `insert_ref_node` varchar(100) DEFAULT NULL COMMENT '参考节点key',
|
|
|
|
|
+ `decision_engine` varchar(100) DEFAULT NULL COMMENT '决策引擎名称',
|
|
|
|
|
+ `decision_score` decimal(5,2) DEFAULT NULL COMMENT 'AI决策置信度',
|
|
|
|
|
+ `decision_reason` text COMMENT 'AI决策理由',
|
|
|
|
|
+ `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态:pending/approved/rejected',
|
|
|
|
|
+ `audit_by` varchar(64) DEFAULT NULL COMMENT '审核人',
|
|
|
|
|
+ `audit_comment` varchar(500) DEFAULT NULL COMMENT '审核备注',
|
|
|
|
|
+ `audit_time` datetime DEFAULT NULL COMMENT '审核时间',
|
|
|
|
|
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_status` (`company_id`,`status`),
|
|
|
|
|
+ KEY `idx_instance_id` (`instance_id`),
|
|
|
|
|
+ KEY `idx_status` (`status`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾事件节点审核';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_evolution_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_evolution_log`;
|
|
|
|
|
+CREATE TABLE `lobster_evolution_log` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '租户ID',
|
|
|
|
|
+ `workflow_id` bigint DEFAULT NULL COMMENT '工作流ID',
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL COMMENT '工作流实例ID',
|
|
|
|
|
+ `contact_id` bigint DEFAULT NULL COMMENT '联系人ID',
|
|
|
|
|
+ `channel_type` varchar(20) DEFAULT NULL COMMENT '通道类型:IM/WX/QW',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `sent_message` text COMMENT '发送的消息内容',
|
|
|
|
|
+ `customer_reply` text COMMENT '客户回复内容',
|
|
|
|
|
+ `outcome` varchar(50) DEFAULT NULL COMMENT '结果:replied/no_reply/converted/churned',
|
|
|
|
|
+ `variables` text COMMENT '工作流变量快照JSON',
|
|
|
|
|
+ `duration_ms` bigint DEFAULT NULL COMMENT '交互耗时(毫秒)',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_workflow` (`company_id`,`workflow_id`),
|
|
|
|
|
+ KEY `idx_company_node` (`company_id`,`node_code`)
|
|
|
|
|
+) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='进化引擎-交互日志表';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_evolution_suggestion
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_evolution_suggestion`;
|
|
|
|
|
+CREATE TABLE `lobster_evolution_suggestion` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '租户ID',
|
|
|
|
|
+ `workflow_id` bigint DEFAULT NULL COMMENT '工作流ID',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `suggestion_type` varchar(50) DEFAULT NULL COMMENT '建议类型:message_optimize/timing_adjust/flow_restructure',
|
|
|
|
|
+ `current_content` text COMMENT '当前内容',
|
|
|
|
|
+ `suggested_content` text COMMENT '建议内容',
|
|
|
|
|
+ `confidence` double DEFAULT NULL COMMENT '置信度',
|
|
|
|
|
+ `reason` text COMMENT '优化原因',
|
|
|
|
|
+ `status` tinyint DEFAULT '0' COMMENT '状态:0-待审核,1-已应用,2-已拒绝',
|
|
|
|
|
+ `apply_time` datetime DEFAULT NULL COMMENT '应用时间',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company` (`company_id`),
|
|
|
|
|
+ KEY `idx_status` (`company_id`,`status`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='进化引擎-优化建议表';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_handoff_events
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_handoff_events`;
|
|
|
|
|
+CREATE TABLE `lobster_handoff_events` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ instance_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ external_user_id VARCHAR(128) DEFAULT NULL,
|
|
|
|
|
+ trigger_type VARCHAR(50) COMMENT 'sensitive_word/sensitive_word_high_risk/semantic_takeover',
|
|
|
|
|
+ trigger_detail VARCHAR(500) DEFAULT NULL,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ INDEX idx_company (company_id)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_heartbeat_registry
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_heartbeat_registry`;
|
|
|
|
|
+CREATE TABLE `lobster_heartbeat_registry` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `instance_id` bigint NOT NULL,
|
|
|
|
|
+ `company_id` bigint NOT NULL,
|
|
|
|
|
+ `workflow_id` bigint NOT NULL,
|
|
|
|
|
+ `contact_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `channel_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'QW',
|
|
|
|
|
+ `interval_ms` bigint DEFAULT '300000',
|
|
|
|
|
+ `timeout_ms` bigint DEFAULT '86400000',
|
|
|
|
|
+ `max_retries` int DEFAULT '3',
|
|
|
|
|
+ `auto_execute` tinyint DEFAULT '1',
|
|
|
|
|
+ `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'ACTIVE',
|
|
|
|
|
+ `last_heartbeat` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_instance_id` (`instance_id`),
|
|
|
|
|
+ KEY `idx_company` (`company_id`),
|
|
|
|
|
+ KEY `idx_status` (`status`),
|
|
|
|
|
+ KEY `idx_last_heartbeat` (`last_heartbeat`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='龙虾引擎-心跳注册表';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_knowledge_usage_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_knowledge_usage_log`;
|
|
|
|
|
+CREATE TABLE `lobster_knowledge_usage_log` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ instance_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ knowledge_title VARCHAR(200) DEFAULT NULL,
|
|
|
|
|
+ knowledge_text VARCHAR(500) DEFAULT NULL,
|
|
|
|
|
+ retrieval_method VARCHAR(30) COMMENT 'vector/keyword',
|
|
|
|
|
+ source VARCHAR(50) DEFAULT 'context_assembler',
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ INDEX idx_company (company_id),
|
|
|
|
|
+ INDEX idx_company_title (company_id, knowledge_title)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_message_delivery_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_message_delivery_log`;
|
|
|
|
|
+CREATE TABLE `lobster_message_delivery_log` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL,
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `workflow_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `contact_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `channel_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
|
|
|
|
+ `channel_user_id` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
|
|
|
+ `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
|
|
|
|
|
+ `msg_type` int DEFAULT '1',
|
|
|
|
|
+ `channel_msg_id` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
|
|
|
+ `success` tinyint DEFAULT '0',
|
|
|
|
|
+ `error_msg` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company` (`company_id`),
|
|
|
|
|
+ KEY `idx_instance` (`instance_id`),
|
|
|
|
|
+ KEY `idx_channel_type` (`channel_type`),
|
|
|
|
|
+ KEY `idx_create_time` (`create_time`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='龙虾引擎-消息触达日志';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_model_config
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_model_config`;
|
|
|
|
|
+CREATE TABLE `lobster_model_config` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `model_name` varchar(100) NOT NULL,
|
|
|
|
|
+ `model_key` varchar(100) NOT NULL,
|
|
|
|
|
+ `provider` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `api_endpoint` varchar(500) DEFAULT NULL,
|
|
|
|
|
+ `max_tokens` int DEFAULT '4096',
|
|
|
|
|
+ `temperature` decimal(3,2) DEFAULT '0.70',
|
|
|
|
|
+ `enabled` tinyint DEFAULT '1',
|
|
|
|
|
+ `token_coefficient` decimal(10,4) DEFAULT '1.0000',
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT '',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT '',
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_model_key` (`model_key`),
|
|
|
|
|
+ KEY `idx_company` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='模型配置';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_multi_turn_dialogue
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_multi_turn_dialogue`;
|
|
|
|
|
+CREATE TABLE `lobster_multi_turn_dialogue` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ instance_id BIGINT NOT NULL,
|
|
|
|
|
+ node_code VARCHAR(100) NOT NULL,
|
|
|
|
|
+ state_json TEXT,
|
|
|
|
|
+ turn_index INT DEFAULT 0,
|
|
|
|
|
+ direction INT COMMENT '1=客户 2=AI',
|
|
|
|
|
+ content TEXT,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ UNIQUE KEY uk_instance_node (instance_id, node_code),
|
|
|
|
|
+ INDEX idx_company (company_id)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_node_execution_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_node_execution_log`;
|
|
|
|
|
+CREATE TABLE `lobster_node_execution_log` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `workflow_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `node_index` int DEFAULT NULL,
|
|
|
|
|
+ `node_type` varchar(50) DEFAULT NULL,
|
|
|
|
|
+ `node_name` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `input_content` text,
|
|
|
|
|
+ `output_content` text,
|
|
|
|
|
+ `status` varchar(50) DEFAULT NULL,
|
|
|
|
|
+ `retry_count` int DEFAULT '0',
|
|
|
|
|
+ `del_flag` int DEFAULT '0',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT NULL,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL,
|
|
|
|
|
+ `ai_model` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `duration_ms` bigint DEFAULT NULL,
|
|
|
|
|
+ `token_usage` int DEFAULT NULL,
|
|
|
|
|
+ `error_message` text,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_instance_id` (`instance_id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_pay_order
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_pay_order`;
|
|
|
|
|
+CREATE TABLE `lobster_pay_order` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ contact_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ instance_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ order_no VARCHAR(64) NOT NULL,
|
|
|
|
|
+ product_name VARCHAR(256),
|
|
|
|
|
+ amount BIGINT DEFAULT 0 COMMENT '金额(分)',
|
|
|
|
|
+ status VARCHAR(20) DEFAULT 'CREATED',
|
|
|
|
|
+ gateway VARCHAR(20) DEFAULT 'wechat',
|
|
|
|
|
+ transaction_id VARCHAR(128) DEFAULT NULL,
|
|
|
|
|
+ extra TEXT,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ paid_time DATETIME DEFAULT NULL,
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ UNIQUE KEY uk_order (order_no),
|
|
|
|
|
+ INDEX idx_company_status (company_id, status)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_pending_knowledge
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_pending_knowledge`;
|
|
|
|
|
+CREATE TABLE `lobster_pending_knowledge` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ external_user_id VARCHAR(128) DEFAULT NULL,
|
|
|
|
|
+ knowledge_type VARCHAR(50) DEFAULT 'auto',
|
|
|
|
|
+ content TEXT,
|
|
|
|
|
+ context_snapshot TEXT COMMENT '评分维度/上下文快照JSON',
|
|
|
|
|
+ source_node_code VARCHAR(100) DEFAULT NULL,
|
|
|
|
|
+ status VARCHAR(30) DEFAULT 'pending' COMMENT 'pending/APPROVED/REJECTED',
|
|
|
|
|
+ auditor_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ audit_comment VARCHAR(500) DEFAULT NULL,
|
|
|
|
|
+ audit_time DATETIME DEFAULT NULL,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ INDEX idx_company_status (company_id, status)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_sales_corpus
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_sales_corpus`;
|
|
|
|
|
+CREATE TABLE `lobster_sales_corpus` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `dialog_text` text,
|
|
|
|
|
+ `scenario` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `score` decimal(5,2) DEFAULT NULL,
|
|
|
|
|
+ `source_type` varchar(50) DEFAULT NULL,
|
|
|
|
|
+ `external_user_id` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `tags` varchar(500) DEFAULT NULL,
|
|
|
|
|
+ `enabled` tinyint DEFAULT '1',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT '',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT '',
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_scenario` (`scenario`),
|
|
|
|
|
+ KEY `idx_company` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='销冠语料库';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_sensitive_word
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_sensitive_word`;
|
|
|
|
|
+CREATE TABLE `lobster_sensitive_word` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ word VARCHAR(200) NOT NULL,
|
|
|
|
|
+ category VARCHAR(50) DEFAULT '通用',
|
|
|
|
|
+ level VARCHAR(20) DEFAULT 'warn',
|
|
|
|
|
+ replacement VARCHAR(200) DEFAULT '***',
|
|
|
|
|
+ enabled INT DEFAULT 1,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ create_by VARCHAR(64) DEFAULT 'SYSTEM',
|
|
|
|
|
+ INDEX idx_company (company_id),
|
|
|
|
|
+ UNIQUE KEY uk_word (company_id, word)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_smart_api
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_smart_api`;
|
|
|
|
|
+CREATE TABLE `lobster_smart_api` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ api_code VARCHAR(100) NOT NULL COMMENT 'API唯一标识',
|
|
|
|
|
+ api_name VARCHAR(200) DEFAULT NULL,
|
|
|
|
|
+ api_url VARCHAR(500) NOT NULL,
|
|
|
|
|
+ api_method VARCHAR(10) DEFAULT 'POST',
|
|
|
|
|
+ headers_json VARCHAR(1000) DEFAULT '{}',
|
|
|
|
|
+ body_template TEXT,
|
|
|
|
|
+ description VARCHAR(500) DEFAULT NULL,
|
|
|
|
|
+ enabled INT DEFAULT 1,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ UNIQUE KEY uk_code (company_id, api_code)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_system_prompt
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_system_prompt`;
|
|
|
|
|
+CREATE TABLE `lobster_system_prompt` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `prompt_key` varchar(100) NOT NULL COMMENT '唯一键',
|
|
|
|
|
+ `prompt_name` varchar(200) DEFAULT NULL COMMENT '提示词名称',
|
|
|
|
|
+ `prompt_category` varchar(50) DEFAULT NULL COMMENT '分类: rag/ai/code_collect/handoff/kb',
|
|
|
|
|
+ `prompt_content` text NOT NULL COMMENT '提示词内容',
|
|
|
|
|
+ `model_name` varchar(100) DEFAULT 'doubao-lite' COMMENT '推荐模型',
|
|
|
|
|
+ `system_role` varchar(500) DEFAULT NULL COMMENT 'system角色提示',
|
|
|
|
|
+ `enabled` int DEFAULT '1' COMMENT '1启用0禁用',
|
|
|
|
|
+ `sort_order` int DEFAULT '0',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT 'admin',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '租户ID,NULL=系统默认',
|
|
|
|
|
+ `industry_type` varchar(50) DEFAULT NULL COMMENT '行业类型: travel/medical/education/insurance/general,NULL=通用',
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `prompt_key` (`prompt_key`),
|
|
|
|
|
+ KEY `idx_category` (`prompt_category`),
|
|
|
|
|
+ KEY `idx_enabled` (`enabled`),
|
|
|
|
|
+ KEY `idx_company_industry` (`company_id`,`industry_type`)
|
|
|
|
|
+) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_test_scenario
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_test_scenario`;
|
|
|
|
|
+CREATE TABLE `lobster_test_scenario` (
|
|
|
|
|
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` BIGINT NULL,
|
|
|
|
|
+ `scenario_name` VARCHAR(128) NOT NULL COMMENT '场景名',
|
|
|
|
|
+ `business_desc` VARCHAR(500) NULL COMMENT '业务描述(留空则用 template_id)',
|
|
|
|
|
+ `template_id` BIGINT NULL COMMENT '关联工作流模板',
|
|
|
|
|
+ `user_inputs_json` TEXT NOT NULL COMMENT '用户输入数组JSON',
|
|
|
|
|
+ `expected_nodes` TEXT NULL COMMENT '期望命中的节点编码JSON',
|
|
|
|
|
+ `min_score` DECIMAL(5,2) DEFAULT 60.00 COMMENT '最低通过分',
|
|
|
|
|
+ `enabled` TINYINT(1) DEFAULT 1 COMMENT '是否启用回归',
|
|
|
|
|
+ `cron` VARCHAR(64) NULL COMMENT '自定义cron(空则跟随全局)',
|
|
|
|
|
+ `last_run_id` VARCHAR(64) NULL,
|
|
|
|
|
+ `last_run_status` VARCHAR(20) NULL,
|
|
|
|
|
+ `last_run_time` DATETIME NULL,
|
|
|
|
|
+ `create_by` VARCHAR(64) NULL,
|
|
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_enabled` (`enabled`),
|
|
|
|
|
+ KEY `idx_company` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾测试场景剧本';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_unified_contact
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_unified_contact`;
|
|
|
|
|
+CREATE TABLE `lobster_unified_contact` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL,
|
|
|
|
|
+ `contact_id` bigint NOT NULL,
|
|
|
|
|
+ `contact_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
|
|
|
+ `contact_phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
|
|
|
+ `channel_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
|
|
|
|
+ `channel_user_id` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
|
|
|
+ `extra` json DEFAULT NULL,
|
|
|
|
|
+ `del_flag` tinyint DEFAULT '0',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_contact_channel` (`company_id`,`contact_id`,`channel_type`),
|
|
|
|
|
+ KEY `idx_company` (`company_id`),
|
|
|
|
|
+ KEY `idx_channel_type` (`channel_type`),
|
|
|
|
|
+ KEY `idx_channel_user` (`channel_user_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='龙虾引擎-统一联系人';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_user_profile
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_user_profile`;
|
|
|
|
|
+CREATE TABLE `lobster_user_profile` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ company_id BIGINT NOT NULL,
|
|
|
|
|
+ external_user_id VARCHAR(128) NOT NULL,
|
|
|
|
|
+ nickname VARCHAR(128) DEFAULT NULL,
|
|
|
|
|
+ persona VARCHAR(500) DEFAULT NULL,
|
|
|
|
|
+ current_state VARCHAR(100) DEFAULT NULL,
|
|
|
|
|
+ lifecycle_stage VARCHAR(30) DEFAULT 'NEW' COMMENT 'NEW/ACTIVE/DORMANT/SLEEP/CHURN',
|
|
|
|
|
+ value_score INT DEFAULT 10,
|
|
|
|
|
+ total_purchase DECIMAL(12,2) DEFAULT 0,
|
|
|
|
|
+ interaction_count INT DEFAULT 0,
|
|
|
|
|
+ last_active_time DATETIME DEFAULT NULL,
|
|
|
|
|
+ internal_tags VARCHAR(1000) DEFAULT NULL,
|
|
|
|
|
+ variable_snapshot VARCHAR(2000) DEFAULT NULL,
|
|
|
|
|
+ deleted INT DEFAULT 0,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ UNIQUE KEY uk_user (company_id, external_user_id)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_workflow_instance
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_workflow_instance`;
|
|
|
|
|
+CREATE TABLE `lobster_workflow_instance` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `workflow_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `instance_name` varchar(200) DEFAULT NULL,
|
|
|
|
|
+ `status` varchar(20) DEFAULT 'pending',
|
|
|
|
|
+ `contact_id` bigint DEFAULT NULL,
|
|
|
|
|
+ `contact_name` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `channel_type` varchar(20) DEFAULT 'QW',
|
|
|
|
|
+ `current_node_index` int DEFAULT '0',
|
|
|
|
|
+ `current_node_name` varchar(100) DEFAULT NULL,
|
|
|
|
|
+ `total_nodes` int DEFAULT '0',
|
|
|
|
|
+ `completed_nodes` int DEFAULT '0',
|
|
|
|
|
+ `context_snapshot` text,
|
|
|
|
|
+ `variables` text,
|
|
|
|
|
+ `start_time` varchar(30) DEFAULT NULL,
|
|
|
|
|
+ `end_time` varchar(30) DEFAULT NULL,
|
|
|
|
|
+ `last_activity_time` varchar(30) DEFAULT NULL,
|
|
|
|
|
+ `error_message` text,
|
|
|
|
|
+ `del_flag` int DEFAULT '0',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT NULL,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL,
|
|
|
|
|
+ `handoff_agent` varchar(100) DEFAULT NULL COMMENT '转人工目标',
|
|
|
|
|
+ `handoff_reason` varchar(500) DEFAULT NULL COMMENT '转人工原因',
|
|
|
|
|
+ `control_mode` varchar(20) DEFAULT 'ai' COMMENT '控制模式: ai=龙虾接管, human=人工接管',
|
|
|
|
|
+ `control_updated_by` varchar(64) DEFAULT NULL COMMENT '切换操作人',
|
|
|
|
|
+ `control_updated_at` datetime DEFAULT NULL COMMENT '切换时间',
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`),
|
|
|
|
|
+ KEY `idx_workflow_id` (`workflow_id`),
|
|
|
|
|
+ KEY `idx_contact_id` (`contact_id`),
|
|
|
|
|
+ KEY `idx_status` (`status`)
|
|
|
|
|
+) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_workflow_node_type
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_workflow_node_type`;
|
|
|
|
|
+CREATE TABLE `lobster_workflow_node_type` (
|
|
|
|
|
+ id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
|
+ node_type INT NOT NULL UNIQUE COMMENT '节点编号(与执行器常量对齐)',
|
|
|
|
|
+ node_name VARCHAR(64) NOT NULL COMMENT '节点显示名称',
|
|
|
|
|
+ code_name VARCHAR(64) NOT NULL COMMENT '节点代码标识',
|
|
|
|
|
+ description VARCHAR(255) COMMENT '节点描述 + skill.md 别名',
|
|
|
|
|
+ category VARCHAR(32) COMMENT '分类:basic/flow/business/api',
|
|
|
|
|
+ icon VARCHAR(64) COMMENT '图标 class',
|
|
|
|
|
+ color VARCHAR(16) COMMENT '主题色 hex',
|
|
|
|
|
+ template_json TEXT COMMENT '默认配置模板 JSON',
|
|
|
|
|
+ enabled TINYINT DEFAULT 1,
|
|
|
|
|
+ sort_order INT DEFAULT 0,
|
|
|
|
|
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='龙虾工作流节点类型字典';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_workflow_variable
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_workflow_variable`;
|
|
|
|
|
+CREATE TABLE `lobster_workflow_variable` (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ instance_id BIGINT NOT NULL,
|
|
|
|
|
+ company_id BIGINT DEFAULT NULL,
|
|
|
|
|
+ var_key VARCHAR(200) NOT NULL,
|
|
|
|
|
+ var_value TEXT,
|
|
|
|
|
+ create_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ update_time DATETIME DEFAULT NOW(),
|
|
|
|
|
+ UNIQUE KEY uk_inst_key (instance_id, var_key)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for outbound_line_limit_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `outbound_line_limit_log`;
|
|
|
|
|
+CREATE TABLE `outbound_line_limit_log` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
|
|
|
|
+ `gateway_id` bigint DEFAULT NULL COMMENT '网关ID',
|
|
|
|
|
+ `time_window` int DEFAULT NULL COMMENT '时间粒度(分钟)',
|
|
|
|
|
+ `window_start` datetime DEFAULT NULL COMMENT '时间窗口起始',
|
|
|
|
|
+ `max_calls` int DEFAULT NULL COMMENT '窗口最大呼出次数',
|
|
|
|
|
+ `current_count` int DEFAULT NULL COMMENT '当前已呼叫次数',
|
|
|
|
|
+ `is_limited` tinyint DEFAULT 0 COMMENT '是否触发限制 0否1是',
|
|
|
|
|
+ `call_param` text COMMENT '触发时调用参数JSON',
|
|
|
|
|
+ `next_available_time` datetime DEFAULT NULL COMMENT '下一可用时间',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_gateway_window` (`company_id`, `gateway_id`, `time_window`, `create_time`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='外呼线路限流日志';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for qw_customer_property
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `qw_customer_property`;
|
|
|
|
|
+CREATE TABLE `qw_customer_property` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
|
|
|
|
+ `external_user_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户ID',
|
|
|
|
|
+ `property_id` bigint DEFAULT NULL COMMENT '字段ID',
|
|
|
|
|
+ `property_name` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '字段名称',
|
|
|
|
|
+ `property_value` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '字段内容',
|
|
|
|
|
+ `property_value_type` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '字段类型',
|
|
|
|
|
+ `trade_type` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '行业类型',
|
|
|
|
|
+ `ai_analysis` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '内容解析',
|
|
|
|
|
+ `intention` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '意向登记:high-高意向,medium-中意向,low-低意向,none-无意向',
|
|
|
|
|
+ `like_ratio` int DEFAULT NULL COMMENT '喜欢占比:0-100',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
+ `create_by` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
|
|
|
+ `update_by` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
|
|
|
|
|
+ `remark` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ `deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除 0否 1是',
|
|
|
|
|
+ `delete_by` varchar(300) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '删除人',
|
|
|
|
|
+ `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
|
|
|
|
+ `corp_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '企业id',
|
|
|
|
|
+ `qw_user_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '属于用户id',
|
|
|
|
|
+ PRIMARY KEY (`id`) USING BTREE,
|
|
|
|
|
+ KEY `qw_id_index` (`external_user_id`,`corp_id`,`qw_user_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for qw_external_ai_analyze
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `qw_external_ai_analyze`;
|
|
|
|
|
+CREATE TABLE `qw_external_ai_analyze` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
|
|
|
+ `external_user_id` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '外部联系人id',
|
|
|
|
|
+ `customer_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户姓名',
|
|
|
|
|
+ `customer_portrait_json` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户画像',
|
|
|
|
|
+ `communication_abstract` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '沟通摘要',
|
|
|
|
|
+ `communication_summary` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '沟通总结',
|
|
|
|
|
+ `attrition_level` tinyint DEFAULT '0' COMMENT '流失风险等级 0:未知;1:无风险;2:低风险;3:中风险;4:高风险',
|
|
|
|
|
+ `attrition_level_prompt` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '流失风险等级提示',
|
|
|
|
|
+ `customer_focus_json` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户关注点',
|
|
|
|
|
+ `intention_degree` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '意向度',
|
|
|
|
|
+ `ai_chat_record` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'ai通话聊天记录',
|
|
|
|
|
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
|
|
|
|
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
|
|
|
|
+ `reserve_int` bigint DEFAULT '0' COMMENT '预留数字型字段',
|
|
|
|
|
+ `reserve_str` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '预留字符串型字段',
|
|
|
|
|
+ `corp_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '企业id',
|
|
|
|
|
+ `qw_user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '属于用户id',
|
|
|
|
|
+ `session_id` bigint DEFAULT NULL COMMENT 'qw_external_ai_analyze_session的iD,ai会话',
|
|
|
|
|
+ PRIMARY KEY (`id`) USING BTREE,
|
|
|
|
|
+ KEY `idx_customer_id` (`external_user_id`) USING BTREE,
|
|
|
|
|
+ KEY `idx_customer_time_id` (`external_user_id`,`create_time`,`id`) USING BTREE,
|
|
|
|
|
+ KEY `indx_user_bind` (`external_user_id`,`corp_id`,`qw_user_id`) USING BTREE COMMENT '用户关系唯一绑定',
|
|
|
|
|
+ FULLTEXT KEY `idx_ai_chat_record_fulltext` (`ai_chat_record`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+-- ============================================================================
|
|
|
|
|
+-- tenant-initTable 补全:Mapper/实体引用且 patch 无 DDL 的表
|
|
|
|
|
+-- ============================================================================
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for ai_chat_quality_record
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `ai_chat_quality_record`;
|
|
|
|
|
+CREATE TABLE `ai_chat_quality_record` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `session_id` varchar(64) DEFAULT NULL COMMENT '会话ID',
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
|
|
|
|
+ `company_name` varchar(200) DEFAULT NULL COMMENT '公司名称',
|
|
|
|
|
+ `user_id` varchar(64) DEFAULT NULL COMMENT '用户ID',
|
|
|
|
|
+ `user_name` varchar(200) DEFAULT NULL COMMENT '用户名',
|
|
|
|
|
+ `content_summary` text COMMENT '内容摘要',
|
|
|
|
|
+ `quality_result` varchar(50) DEFAULT NULL COMMENT '质检结果',
|
|
|
|
|
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ `quality_user_id` bigint DEFAULT NULL COMMENT '质检人ID',
|
|
|
|
|
+ `quality_user_name` varchar(200) DEFAULT NULL COMMENT '质检人',
|
|
|
|
|
+ `quality_time` datetime DEFAULT NULL COMMENT '质检时间',
|
|
|
|
|
+ `risk_level` varchar(20) DEFAULT NULL COMMENT '风险等级',
|
|
|
|
|
+ `sensitive_words` varchar(500) DEFAULT NULL COMMENT '敏感词',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`),
|
|
|
|
|
+ KEY `idx_session_id` (`session_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI聊天质检记录';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for cc_ext_num
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `cc_ext_num`;
|
|
|
|
|
+CREATE TABLE `cc_ext_num` (
|
|
|
|
|
+ `ext_id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `ext_num` varchar(50) NOT NULL COMMENT '分机号',
|
|
|
|
|
+ `ext_pass` varchar(100) DEFAULT NULL COMMENT '分机密码',
|
|
|
|
|
+ `user_code` varchar(100) DEFAULT NULL COMMENT '用户编码',
|
|
|
|
|
+ PRIMARY KEY (`ext_id`),
|
|
|
|
|
+ UNIQUE KEY `uk_ext_num` (`ext_num`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI外呼分机号';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_knowledge_base
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_knowledge_base`;
|
|
|
|
|
+CREATE TABLE `company_knowledge_base` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `base_id` bigint DEFAULT NULL COMMENT '知识库ID',
|
|
|
|
|
+ `title` varchar(200) DEFAULT NULL COMMENT '标题',
|
|
|
|
|
+ `question` text COMMENT '问题',
|
|
|
|
|
+ `answer` text COMMENT '答案',
|
|
|
|
|
+ `industry_type` varchar(50) DEFAULT NULL COMMENT '行业类型',
|
|
|
|
|
+ `source` varchar(50) DEFAULT NULL COMMENT '来源',
|
|
|
|
|
+ `audit_status` tinyint DEFAULT 0 COMMENT '审核状态',
|
|
|
|
|
+ `audit_comment` varchar(500) DEFAULT NULL COMMENT '审核意见',
|
|
|
|
|
+ `auditor` varchar(64) DEFAULT NULL COMMENT '审核人',
|
|
|
|
|
+ `audit_time` datetime DEFAULT NULL COMMENT '审核时间',
|
|
|
|
|
+ `use_count` int DEFAULT 0 COMMENT '使用次数',
|
|
|
|
|
+ `fastgpt_id` varchar(64) DEFAULT NULL COMMENT 'FastGPT ID',
|
|
|
|
|
+ `sync_status` tinyint DEFAULT 0 COMMENT '同步状态',
|
|
|
|
|
+ `sync_time` datetime DEFAULT NULL COMMENT '同步时间',
|
|
|
|
|
+ `del_flag` tinyint DEFAULT 0 COMMENT '删除标记',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`),
|
|
|
|
|
+ KEY `idx_base_id` (`base_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='公司知识库';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_knowledge_audit
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_knowledge_audit`;
|
|
|
|
|
+CREATE TABLE `company_knowledge_audit` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `knowledge_id` bigint DEFAULT NULL COMMENT '知识ID',
|
|
|
|
|
+ `source_type` varchar(50) DEFAULT NULL COMMENT '来源类型',
|
|
|
|
|
+ `source_id` bigint DEFAULT NULL COMMENT '来源ID',
|
|
|
|
|
+ `content` text COMMENT '内容',
|
|
|
|
|
+ `suggestion` text COMMENT '建议',
|
|
|
|
|
+ `audit_result` varchar(50) DEFAULT NULL COMMENT '审核结果',
|
|
|
|
|
+ `audit_comment` varchar(500) DEFAULT NULL COMMENT '审核意见',
|
|
|
|
|
+ `auditor` varchar(64) DEFAULT NULL COMMENT '审核人',
|
|
|
|
|
+ `audit_time` datetime DEFAULT NULL COMMENT '审核时间',
|
|
|
|
|
+ `del_flag` tinyint DEFAULT 0 COMMENT '删除标记',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='公司知识审核';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_knowledge_suggestion
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_knowledge_suggestion`;
|
|
|
|
|
+CREATE TABLE `company_knowledge_suggestion` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `type` varchar(50) DEFAULT NULL COMMENT '建议类型',
|
|
|
|
|
+ `description` text COMMENT '描述',
|
|
|
|
|
+ `suggestion` text COMMENT '建议内容',
|
|
|
|
|
+ `impact` varchar(200) DEFAULT NULL COMMENT '影响',
|
|
|
|
|
+ `status` varchar(30) DEFAULT 'pending' COMMENT '状态',
|
|
|
|
|
+ `apply_time` datetime DEFAULT NULL COMMENT '应用时间',
|
|
|
|
|
+ `del_flag` tinyint DEFAULT 0 COMMENT '删除标记',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='公司知识建议';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_lobster_dedup_config
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_lobster_dedup_config`;
|
|
|
|
|
+CREATE TABLE `company_lobster_dedup_config` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `config_name` varchar(100) DEFAULT NULL COMMENT '配置名称',
|
|
|
|
|
+ `dedup_mode` varchar(30) DEFAULT NULL COMMENT '去重模式',
|
|
|
|
|
+ `exact_window_size` int DEFAULT NULL COMMENT '精确窗口大小',
|
|
|
|
|
+ `semantic_threshold` double DEFAULT NULL COMMENT '语义阈值',
|
|
|
|
|
+ `window_duration_seconds` int DEFAULT NULL COMMENT '窗口时长(秒)',
|
|
|
|
|
+ `ignore_prefix_count` int DEFAULT NULL COMMENT '忽略前缀数',
|
|
|
|
|
+ `enabled` tinyint DEFAULT 1 COMMENT '是否启用',
|
|
|
|
|
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾消息去重配置';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_sms_api
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_sms_api`;
|
|
|
|
|
+CREATE TABLE `company_sms_api` (
|
|
|
|
|
+ `api_id` bigint NOT NULL AUTO_INCREMENT COMMENT '接口ID',
|
|
|
|
|
+ `api_name` varchar(100) DEFAULT NULL COMMENT '接口名称',
|
|
|
|
|
+ `provider` varchar(50) DEFAULT NULL COMMENT '服务商',
|
|
|
|
|
+ `sms_type` tinyint DEFAULT NULL COMMENT '短信类型',
|
|
|
|
|
+ `account` varchar(100) DEFAULT NULL COMMENT '账户名',
|
|
|
|
|
+ `password` varchar(200) DEFAULT NULL COMMENT '密码',
|
|
|
|
|
+ `url` varchar(500) DEFAULT NULL COMMENT '接口地址',
|
|
|
|
|
+ `callback_url` varchar(500) DEFAULT NULL COMMENT '回调地址',
|
|
|
|
|
+ `code` varchar(50) DEFAULT NULL COMMENT '扩展码',
|
|
|
|
|
+ `sign` varchar(50) DEFAULT NULL COMMENT '签名',
|
|
|
|
|
+ `cost_price` decimal(10,4) DEFAULT NULL COMMENT '成本价',
|
|
|
|
|
+ `is_default` tinyint DEFAULT 0 COMMENT '是否默认',
|
|
|
|
|
+ `status` tinyint DEFAULT 1 COMMENT '状态',
|
|
|
|
|
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`api_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='短信接口配置';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_sms_api_port
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_sms_api_port`;
|
|
|
|
|
+CREATE TABLE `company_sms_api_port` (
|
|
|
|
|
+ `port_id` bigint NOT NULL AUTO_INCREMENT COMMENT '端口ID',
|
|
|
|
|
+ `api_id` bigint NOT NULL COMMENT '接口ID',
|
|
|
|
|
+ `port_name` varchar(100) DEFAULT NULL COMMENT '端口名称',
|
|
|
|
|
+ `port_no` varchar(50) DEFAULT NULL COMMENT '端口号',
|
|
|
|
|
+ `account` varchar(100) DEFAULT NULL COMMENT '账户',
|
|
|
|
|
+ `password` varchar(200) DEFAULT NULL COMMENT '密码',
|
|
|
|
|
+ `sign` varchar(50) DEFAULT NULL COMMENT '签名',
|
|
|
|
|
+ `slot_index` tinyint DEFAULT 1 COMMENT '卡槽',
|
|
|
|
|
+ `status` tinyint DEFAULT 1 COMMENT '状态',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`port_id`),
|
|
|
|
|
+ KEY `idx_api_id` (`api_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='短信接口端口';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_sms_card
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_sms_card`;
|
|
|
|
|
+CREATE TABLE `company_sms_card` (
|
|
|
|
|
+ `card_id` bigint NOT NULL AUTO_INCREMENT COMMENT '卡ID',
|
|
|
|
|
+ `port_id` bigint DEFAULT NULL COMMENT '端口ID',
|
|
|
|
|
+ `tenant_id` bigint NOT NULL COMMENT '租户ID',
|
|
|
|
|
+ `device_id` bigint DEFAULT NULL COMMENT '设备ID',
|
|
|
|
|
+ `slot_index` tinyint DEFAULT 1 COMMENT '卡槽(1或2)',
|
|
|
|
|
+ `imei` varchar(50) DEFAULT NULL COMMENT 'IMEI',
|
|
|
|
|
+ `device_name` varchar(100) DEFAULT NULL COMMENT '设备名称',
|
|
|
|
|
+ `sim_count` tinyint DEFAULT 1 COMMENT '卡槽数',
|
|
|
|
|
+ `phone_1` varchar(20) DEFAULT NULL COMMENT '卡槽1手机号',
|
|
|
|
|
+ `phone_2` varchar(20) DEFAULT NULL COMMENT '卡槽2手机号',
|
|
|
|
|
+ `last_heartbeat` datetime DEFAULT NULL COMMENT '最后心跳',
|
|
|
|
|
+ `status` tinyint DEFAULT 0 COMMENT '0离线/1在线/2禁用',
|
|
|
|
|
+ `app_version` varchar(30) DEFAULT NULL COMMENT 'APP版本',
|
|
|
|
|
+ `sms_sent_today` int DEFAULT 0 COMMENT '今日已发短信',
|
|
|
|
|
+ `sms_sent_date` date DEFAULT NULL COMMENT '短信计数日期',
|
|
|
|
|
+ `sms_sent_hour` int DEFAULT 0 COMMENT '当前小时已发',
|
|
|
|
|
+ `sms_sent_hour_num` tinyint DEFAULT NULL COMMENT '当前小时(0-23)',
|
|
|
|
|
+ `sms_hourly_limit` int DEFAULT NULL COMMENT '每小时限制',
|
|
|
|
|
+ `sms_daily_limit` int DEFAULT NULL COMMENT '每日限制',
|
|
|
|
|
+ `sms_balance` int DEFAULT NULL COMMENT '短信余额',
|
|
|
|
|
+ `call_sent_today` int DEFAULT 0 COMMENT '今日已拨号',
|
|
|
|
|
+ `call_sent_date` date DEFAULT NULL COMMENT '拨号计数日期',
|
|
|
|
|
+ `call_interval_seconds` int DEFAULT NULL COMMENT '拨打间隔(秒)',
|
|
|
|
|
+ `call_minutes_balance` decimal(10,2) DEFAULT NULL COMMENT '通话分钟余额',
|
|
|
|
|
+ `phone_bill_balance` decimal(10,2) DEFAULT NULL COMMENT '话费余额',
|
|
|
|
|
+ `allow_call_forward` tinyint DEFAULT 0 COMMENT '允许呼转',
|
|
|
|
|
+ `forward_phone` varchar(20) DEFAULT NULL COMMENT '呼转号码',
|
|
|
|
|
+ `last_call_time` datetime DEFAULT NULL COMMENT '最后拨号时间',
|
|
|
|
|
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`card_id`),
|
|
|
|
|
+ KEY `idx_tenant_id` (`tenant_id`),
|
|
|
|
|
+ KEY `idx_device_id` (`device_id`),
|
|
|
|
|
+ KEY `idx_imei` (`imei`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='手机卡管理';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_sms_card_middleware
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_sms_card_middleware`;
|
|
|
|
|
+CREATE TABLE `company_sms_card_middleware` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `api_id` bigint DEFAULT NULL COMMENT '接口ID',
|
|
|
|
|
+ `tenant_id` bigint DEFAULT NULL COMMENT '租户ID',
|
|
|
|
|
+ `middleware_name` varchar(100) DEFAULT NULL COMMENT '中间件名称',
|
|
|
|
|
+ `callback_url` varchar(500) DEFAULT NULL COMMENT '回调地址',
|
|
|
|
|
+ `heartbeat_url` varchar(500) DEFAULT NULL COMMENT '心跳地址',
|
|
|
|
|
+ `auth_token` varchar(200) DEFAULT NULL COMMENT '认证Token',
|
|
|
|
|
+ `max_retry` int DEFAULT 3 COMMENT '最大重试',
|
|
|
|
|
+ `timeout_seconds` int DEFAULT 30 COMMENT '超时秒数',
|
|
|
|
|
+ `status` tinyint DEFAULT 1 COMMENT '状态',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_api_id` (`api_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='手机卡中间件';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_sms_device
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_sms_device`;
|
|
|
|
|
+CREATE TABLE `company_sms_device` (
|
|
|
|
|
+ `device_id` bigint NOT NULL AUTO_INCREMENT COMMENT '设备ID',
|
|
|
|
|
+ `tenant_id` bigint NOT NULL COMMENT '所属租户',
|
|
|
|
|
+ `company_user_id` bigint DEFAULT NULL COMMENT '绑定销售用户ID',
|
|
|
|
|
+ `device_name` varchar(100) DEFAULT NULL COMMENT '设备名称',
|
|
|
|
|
+ `imei` varchar(50) NOT NULL COMMENT 'IMEI',
|
|
|
|
|
+ `app_version` varchar(30) DEFAULT NULL COMMENT 'APP版本',
|
|
|
|
|
+ `middleware_id` bigint DEFAULT NULL COMMENT '关联中间件ID',
|
|
|
|
|
+ `last_heartbeat` datetime DEFAULT NULL COMMENT '最后心跳时间',
|
|
|
|
|
+ `status` tinyint DEFAULT 0 COMMENT '0离线/1在线/2禁用',
|
|
|
|
|
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
|
+ PRIMARY KEY (`device_id`),
|
|
|
|
|
+ UNIQUE KEY `uk_imei` (`imei`),
|
|
|
|
|
+ KEY `idx_tenant_id` (`tenant_id`),
|
|
|
|
|
+ KEY `idx_company_user_id` (`company_user_id`),
|
|
|
|
|
+ KEY `idx_middleware_id` (`middleware_id`),
|
|
|
|
|
+ KEY `idx_status` (`status`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='手机设备管理';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for company_sms_port_assign
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `company_sms_port_assign`;
|
|
|
|
|
+CREATE TABLE `company_sms_port_assign` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `port_id` bigint NOT NULL COMMENT '端口ID',
|
|
|
|
|
+ `tenant_id` bigint NOT NULL COMMENT '租户ID',
|
|
|
|
|
+ `company_user_id` bigint DEFAULT NULL COMMENT '销售用户ID',
|
|
|
|
|
+ `status` tinyint DEFAULT 1 COMMENT '状态',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_port_id` (`port_id`),
|
|
|
|
|
+ KEY `idx_tenant_id` (`tenant_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='短信端口分配';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for im_send_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `im_send_log`;
|
|
|
|
|
+CREATE TABLE `im_send_log` (
|
|
|
|
|
+ `log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
|
|
|
|
+ `send_id` varchar(64) DEFAULT NULL COMMENT '发送方ID',
|
|
|
|
|
+ `recv_id` varchar(64) DEFAULT NULL COMMENT '接收方ID',
|
|
|
|
|
+ `send_title` varchar(200) DEFAULT NULL COMMENT '标题',
|
|
|
|
|
+ `plan_send_time` datetime DEFAULT NULL COMMENT '计划发送时间',
|
|
|
|
|
+ `actual_send_time` datetime DEFAULT NULL COMMENT '实际发送时间',
|
|
|
|
|
+ `send_type` tinyint DEFAULT NULL COMMENT '发送类型',
|
|
|
|
|
+ `param_json` text COMMENT '参数JSON',
|
|
|
|
|
+ `status` tinyint DEFAULT NULL COMMENT '状态',
|
|
|
|
|
+ `result_message` varchar(500) DEFAULT NULL COMMENT '结果信息',
|
|
|
|
|
+ `exception_info` text COMMENT '异常信息',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
+ PRIMARY KEY (`log_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='IM发送日志';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_e2e_test
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_e2e_test`;
|
|
|
|
|
+CREATE TABLE `lobster_e2e_test` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
|
|
|
|
+ `test_name` varchar(128) DEFAULT NULL COMMENT '测试名称',
|
|
|
|
|
+ `workflow_id` bigint DEFAULT NULL COMMENT '工作流ID',
|
|
|
|
|
+ `test_data` text COMMENT '测试数据JSON',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾E2E测试(旧)';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_e2e_test_result
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_e2e_test_result`;
|
|
|
|
|
+CREATE TABLE `lobster_e2e_test_result` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `test_id` bigint DEFAULT NULL COMMENT '测试ID',
|
|
|
|
|
+ `run_id` varchar(64) DEFAULT NULL COMMENT '运行ID',
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
|
|
|
|
+ `passed` tinyint DEFAULT NULL COMMENT '是否通过',
|
|
|
|
|
+ `detail` text COMMENT '详情',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_test_id` (`test_id`),
|
|
|
|
|
+ KEY `idx_run_id` (`run_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾E2E测试结果(旧)';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_feedback_records
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_feedback_records`;
|
|
|
|
|
+CREATE TABLE `lobster_feedback_records` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL COMMENT '实例ID',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `feedback_type` varchar(50) DEFAULT NULL COMMENT '反馈类型',
|
|
|
|
|
+ `comment` text COMMENT '反馈内容',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_node` (`company_id`, `node_code`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾反馈记录';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_heartbeat
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_heartbeat`;
|
|
|
|
|
+CREATE TABLE `lobster_heartbeat` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `task_key` varchar(100) NOT NULL COMMENT '任务Key',
|
|
|
|
|
+ `status` varchar(30) DEFAULT NULL COMMENT '状态',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_task` (`company_id`, `task_key`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾任务心跳';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_knowledge_version
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_knowledge_version`;
|
|
|
|
|
+CREATE TABLE `lobster_knowledge_version` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `knowledge_id` bigint NOT NULL COMMENT '知识ID',
|
|
|
|
|
+ `version` int NOT NULL COMMENT '版本号',
|
|
|
|
|
+ `title` varchar(200) DEFAULT NULL COMMENT '标题',
|
|
|
|
|
+ `content` text COMMENT '内容',
|
|
|
|
|
+ `change_log` varchar(500) DEFAULT NULL COMMENT '变更说明',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_knowledge` (`company_id`, `knowledge_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾知识版本';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_learned_pattern
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_learned_pattern`;
|
|
|
|
|
+CREATE TABLE `lobster_learned_pattern` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `pattern_type` varchar(50) DEFAULT NULL COMMENT '模式类型',
|
|
|
|
|
+ `pattern_key` varchar(200) NOT NULL COMMENT '模式Key',
|
|
|
|
|
+ `pattern_value` text COMMENT '模式值',
|
|
|
|
|
+ `confidence` double DEFAULT 0.5 COMMENT '置信度',
|
|
|
|
|
+ `source` varchar(100) DEFAULT NULL COMMENT '来源',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_company_pattern` (`company_id`, `pattern_type`, `pattern_key`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾学习模式';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_learning_event_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_learning_event_log`;
|
|
|
|
|
+CREATE TABLE `lobster_learning_event_log` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL COMMENT '实例ID',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `event_type` varchar(50) DEFAULT NULL COMMENT '事件类型',
|
|
|
|
|
+ `quality_score` double DEFAULT NULL COMMENT '质量分',
|
|
|
|
|
+ `context_snapshot` text COMMENT '上下文快照',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_event` (`company_id`, `event_type`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾学习事件日志';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_learning_replay_buffer
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_learning_replay_buffer`;
|
|
|
|
|
+CREATE TABLE `lobster_learning_replay_buffer` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL COMMENT '实例ID',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `customer_message` text COMMENT '客户消息',
|
|
|
|
|
+ `ai_reply` text COMMENT 'AI回复',
|
|
|
|
|
+ `quality_score` double DEFAULT NULL COMMENT '质量分',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾学习回放缓冲';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_message_variants
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_message_variants`;
|
|
|
|
|
+CREATE TABLE `lobster_message_variants` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `content` text COMMENT '变体内容',
|
|
|
|
|
+ `generation_reason` varchar(500) DEFAULT NULL COMMENT '生成原因',
|
|
|
|
|
+ `status` varchar(30) DEFAULT 'active' COMMENT '状态',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_node` (`company_id`, `node_code`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾消息变体';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_node_interaction
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_node_interaction`;
|
|
|
|
|
+CREATE TABLE `lobster_node_interaction` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL COMMENT '实例ID',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `external_user_id` varchar(128) DEFAULT NULL COMMENT '外部用户ID',
|
|
|
|
|
+ `interaction_type` varchar(50) DEFAULT NULL COMMENT '交互类型',
|
|
|
|
|
+ `content` text COMMENT '内容',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_user_node` (`company_id`, `external_user_id`, `node_code`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾节点交互';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_optimization_config
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_optimization_config`;
|
|
|
|
|
+CREATE TABLE `lobster_optimization_config` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `workflow_id` bigint NOT NULL COMMENT '工作流ID',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `enabled` tinyint DEFAULT 1 COMMENT '是否启用',
|
|
|
|
|
+ `auto_apply` tinyint DEFAULT 0 COMMENT '自动应用',
|
|
|
|
|
+ `config_json` text COMMENT '配置JSON',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_company_workflow_node` (`company_id`, `workflow_id`, `node_code`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾优化配置';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_prompt_config
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_prompt_config`;
|
|
|
|
|
+CREATE TABLE `lobster_prompt_config` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `workflow_code` varchar(100) DEFAULT NULL COMMENT '工作流编码',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `prompt_type` varchar(50) DEFAULT NULL COMMENT 'Prompt类型',
|
|
|
|
|
+ `content` text COMMENT '内容',
|
|
|
|
|
+ `scope` varchar(50) DEFAULT NULL COMMENT '作用域',
|
|
|
|
|
+ `deleted` tinyint DEFAULT 0 COMMENT '删除标记',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_workflow_node` (`company_id`, `workflow_code`, `node_code`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾Prompt配置';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_sms_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_sms_log`;
|
|
|
|
|
+CREATE TABLE `lobster_sms_log` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
|
|
|
|
+ `content` text COMMENT '短信内容',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾短信日志';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_test_scenario_result
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_test_scenario_result`;
|
|
|
|
|
+CREATE TABLE `lobster_test_scenario_result` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
|
|
|
|
+ `scenario_id` bigint DEFAULT NULL COMMENT '场景ID',
|
|
|
|
|
+ `passed` tinyint DEFAULT NULL COMMENT '是否通过',
|
|
|
|
|
+ `detail` text COMMENT '详情',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_scenario_id` (`scenario_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾测试场景结果';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_token_consumption
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_token_consumption`;
|
|
|
|
|
+CREATE TABLE `lobster_token_consumption` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `instance_id` bigint DEFAULT NULL COMMENT '实例ID',
|
|
|
|
|
+ `node_code` varchar(100) DEFAULT NULL COMMENT '节点编码',
|
|
|
|
|
+ `model_identifier` varchar(200) DEFAULT NULL COMMENT '模型标识',
|
|
|
|
|
+ `consume_type` varchar(50) DEFAULT NULL COMMENT '消耗类型',
|
|
|
|
|
+ `token_count` bigint DEFAULT 0 COMMENT 'Token数',
|
|
|
|
|
+ `estimated_cost` decimal(18,6) DEFAULT NULL COMMENT '预估成本',
|
|
|
|
|
+ `request_time` datetime DEFAULT NULL COMMENT '请求时间',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_time` (`company_id`, `request_time`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾Token消耗';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_tool_exec_log
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_tool_exec_log`;
|
|
|
|
|
+CREATE TABLE `lobster_tool_exec_log` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `tool_name` varchar(100) DEFAULT NULL COMMENT '工具名',
|
|
|
|
|
+ `params_json` text COMMENT '参数JSON',
|
|
|
|
|
+ `result_json` text COMMENT '结果JSON',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_id` (`company_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾工具执行日志';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_user_preference
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_user_preference`;
|
|
|
|
|
+CREATE TABLE `lobster_user_preference` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `external_user_id` varchar(128) NOT NULL COMMENT '外部用户ID',
|
|
|
|
|
+ `snapshot_json` text COMMENT '偏好快照JSON',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_company_user` (`company_id`, `external_user_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾用户偏好';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_user_segment
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_user_segment`;
|
|
|
|
|
+CREATE TABLE `lobster_user_segment` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `segment_code` varchar(64) NOT NULL COMMENT '分群编码',
|
|
|
|
|
+ `segment_name` varchar(128) DEFAULT NULL COMMENT '分群名称',
|
|
|
|
|
+ `description` varchar(500) DEFAULT NULL COMMENT '描述',
|
|
|
|
|
+ `strategy_config` text COMMENT '策略配置JSON',
|
|
|
|
|
+ `deleted` tinyint DEFAULT 0 COMMENT '删除标记',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ UNIQUE KEY `uk_company_segment` (`company_id`, `segment_code`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾用户分群';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_vector_embeddings
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_vector_embeddings`;
|
|
|
|
|
+CREATE TABLE `lobster_vector_embeddings` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `doc_id` varchar(128) DEFAULT NULL COMMENT '文档ID',
|
|
|
|
|
+ `doc_type` varchar(50) DEFAULT NULL COMMENT '文档类型',
|
|
|
|
|
+ `content` text COMMENT '内容',
|
|
|
|
|
+ `embedding` blob COMMENT '向量',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_doc` (`company_id`, `doc_type`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾向量嵌入';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for lobster_workflow_patch
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `lobster_workflow_patch`;
|
|
|
|
|
+CREATE TABLE `lobster_workflow_patch` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint NOT NULL COMMENT '公司ID',
|
|
|
|
|
+ `target_table` varchar(100) DEFAULT NULL COMMENT '目标表',
|
|
|
|
|
+ `target_id` bigint DEFAULT NULL COMMENT '目标ID',
|
|
|
|
|
+ `field_name` varchar(100) DEFAULT NULL COMMENT '字段名',
|
|
|
|
|
+ `old_value` text COMMENT '旧值',
|
|
|
|
|
+ `new_value` text COMMENT '新值',
|
|
|
|
|
+ `reason` varchar(500) DEFAULT NULL COMMENT '原因',
|
|
|
|
|
+ `status` varchar(30) DEFAULT 'pending' COMMENT '状态',
|
|
|
|
|
+ `apply_time` datetime DEFAULT NULL COMMENT '应用时间',
|
|
|
|
|
+ `reject_time` datetime DEFAULT NULL COMMENT '拒绝时间',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_company_status` (`company_id`, `status`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='龙虾工作流补丁';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for user_daily_stats
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `user_daily_stats`;
|
|
|
|
|
+CREATE TABLE `user_daily_stats` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
|
|
|
|
+ `company_name` varchar(200) DEFAULT NULL COMMENT '公司名称',
|
|
|
|
|
+ `dept_id` bigint DEFAULT NULL COMMENT '部门ID',
|
|
|
|
|
+ `dept_name` varchar(200) DEFAULT NULL COMMENT '部门名称',
|
|
|
|
|
+ `user_id` bigint DEFAULT NULL COMMENT '用户ID',
|
|
|
|
|
+ `user_name` varchar(200) DEFAULT NULL COMMENT '用户名',
|
|
|
|
|
+ `nick_name` varchar(200) DEFAULT NULL COMMENT '昵称',
|
|
|
|
|
+ `statistics_time` varchar(20) DEFAULT NULL COMMENT '统计日期',
|
|
|
|
|
+ `line_num` int DEFAULT 0 COMMENT '进线数',
|
|
|
|
|
+ `active_num` int DEFAULT 0 COMMENT '活跃数',
|
|
|
|
|
+ `complete_num` int DEFAULT 0 COMMENT '完课数',
|
|
|
|
|
+ `answer_num` int DEFAULT 0 COMMENT '答题数',
|
|
|
|
|
+ `red_packet_num` int DEFAULT 0 COMMENT '红包数',
|
|
|
|
|
+ `red_packet_amount` decimal(10,2) DEFAULT NULL COMMENT '红包金额',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_user_date` (`user_id`, `statistics_time`),
|
|
|
|
|
+ KEY `idx_dept_date` (`dept_id`, `statistics_time`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户日统计';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for watch_alarm_data
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `watch_alarm_data`;
|
|
|
|
|
+CREATE TABLE `watch_alarm_data` (
|
|
|
|
|
+ `id` char(36) NOT NULL COMMENT '主键UUID',
|
|
|
|
|
+ `device_id` varchar(64) DEFAULT NULL COMMENT '设备编号',
|
|
|
|
|
+ `title` varchar(200) DEFAULT NULL COMMENT '预警标题',
|
|
|
|
|
+ `description` text COMMENT '预警详情',
|
|
|
|
|
+ `date_time` varchar(50) DEFAULT NULL COMMENT '预警时间',
|
|
|
|
|
+ `type` varchar(50) DEFAULT NULL COMMENT '预警类型',
|
|
|
|
|
+ `extra` varchar(500) DEFAULT NULL COMMENT '预警事件',
|
|
|
|
|
+ `location` varchar(200) DEFAULT NULL COMMENT '经纬度',
|
|
|
|
|
+ `status` tinyint DEFAULT 0 COMMENT 'web已读 0未读1已读',
|
|
|
|
|
+ `app_status` tinyint DEFAULT 0 COMMENT 'app已读 0未读1已读',
|
|
|
|
|
+ `is_del` tinyint DEFAULT 0 COMMENT '是否删除',
|
|
|
|
|
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_device_id` (`device_id`),
|
|
|
|
|
+ KEY `idx_app_status` (`app_status`, `is_del`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='设备预警数据';
|
|
|
|
|
+
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+-- Table structure for wx_sop_logs
|
|
|
|
|
+-- ----------------------------
|
|
|
|
|
+DROP TABLE IF EXISTS `wx_sop_logs`;
|
|
|
|
|
+CREATE TABLE `wx_sop_logs` (
|
|
|
|
|
+ `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
|
|
+ `type` tinyint DEFAULT NULL COMMENT '类型',
|
|
|
|
|
+ `sop_id` bigint DEFAULT NULL COMMENT 'SOP ID',
|
|
|
|
|
+ `sop_user_id` bigint DEFAULT NULL COMMENT 'SOP用户ID',
|
|
|
|
|
+ `send_type` tinyint DEFAULT NULL COMMENT '发送类型',
|
|
|
|
|
+ `generate_type` tinyint DEFAULT NULL COMMENT '生成类型',
|
|
|
|
|
+ `account_id` bigint DEFAULT NULL COMMENT '账号ID',
|
|
|
|
|
+ `wx_contact_id` bigint DEFAULT NULL COMMENT '微信联系人ID',
|
|
|
|
|
+ `wx_contact_name` varchar(200) DEFAULT NULL COMMENT '联系人名称',
|
|
|
|
|
+ `wx_room_id` bigint DEFAULT NULL COMMENT '群ID',
|
|
|
|
|
+ `wx_room_name` varchar(200) DEFAULT NULL COMMENT '群名称',
|
|
|
|
|
+ `fs_user_id` bigint DEFAULT NULL COMMENT '销售ID',
|
|
|
|
|
+ `send_status` tinyint DEFAULT NULL COMMENT '发送状态',
|
|
|
|
|
+ `send_remark` varchar(500) DEFAULT NULL COMMENT '发送备注',
|
|
|
|
|
+ `send_sort` int DEFAULT NULL COMMENT '发送排序',
|
|
|
|
|
+ `content_json` text COMMENT '内容JSON',
|
|
|
|
|
+ `send_time` datetime DEFAULT NULL COMMENT '发送时间',
|
|
|
|
|
+ `expiration_time` datetime DEFAULT NULL COMMENT '过期时间',
|
|
|
|
|
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
|
|
|
|
+ `create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
|
|
|
|
|
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
|
|
|
|
+ `update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
|
|
|
|
|
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_sop_id` (`sop_id`),
|
|
|
|
|
+ KEY `idx_sop_user_id` (`sop_user_id`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='微信SOP发送日志';
|