78 lines
4.1 KiB
SQL
78 lines
4.1 KiB
SQL
-- 创建数据库
|
||
CREATE DATABASE IF NOT EXISTS wecom_robot DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
USE wecom_robot;
|
||
|
||
-- 会话表
|
||
CREATE TABLE IF NOT EXISTS `session` (
|
||
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
|
||
`customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID (external_userid)',
|
||
`kf_id` VARCHAR(64) NOT NULL COMMENT '客服账号ID (open_kfid)',
|
||
`status` VARCHAR(20) NOT NULL DEFAULT 'AI' COMMENT '状态: AI/PENDING/MANUAL/CLOSED',
|
||
`wx_service_state` INT DEFAULT 0 COMMENT '微信会话状态: 0-未处理/1-智能助手/2-待接入池/3-人工接待/4-已结束',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`manual_cs_id` VARCHAR(64) DEFAULT NULL COMMENT '人工客服ID',
|
||
`metadata` TEXT DEFAULT NULL COMMENT '扩展信息JSON',
|
||
PRIMARY KEY (`session_id`),
|
||
INDEX `idx_customer_id` (`customer_id`),
|
||
INDEX `idx_kf_id` (`kf_id`),
|
||
INDEX `idx_status` (`status`),
|
||
INDEX `idx_updated_at` (`updated_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会话表';
|
||
|
||
-- 消息表
|
||
CREATE TABLE IF NOT EXISTS `message` (
|
||
`msg_id` VARCHAR(128) NOT NULL COMMENT '消息ID',
|
||
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
|
||
`sender_type` VARCHAR(20) NOT NULL COMMENT '发送者类型: customer/ai/manual',
|
||
`sender_id` VARCHAR(64) NOT NULL COMMENT '发送者标识',
|
||
`content` TEXT NOT NULL COMMENT '消息内容',
|
||
`msg_type` VARCHAR(20) NOT NULL DEFAULT 'text' COMMENT '消息类型: text/image/link等',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`raw_data` TEXT DEFAULT NULL COMMENT '原始消息数据JSON',
|
||
PRIMARY KEY (`msg_id`),
|
||
INDEX `idx_session_id` (`session_id`),
|
||
INDEX `idx_created_at` (`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息表';
|
||
|
||
-- 客服账号表
|
||
CREATE TABLE IF NOT EXISTS `kf_account` (
|
||
`kf_id` VARCHAR(64) NOT NULL COMMENT '客服账号ID',
|
||
`name` VARCHAR(100) DEFAULT NULL COMMENT '客服昵称',
|
||
`avatar` VARCHAR(500) DEFAULT NULL COMMENT '头像URL',
|
||
`status` VARCHAR(20) NOT NULL DEFAULT 'offline' COMMENT '状态: online/offline',
|
||
`bind_manual_id` VARCHAR(64) DEFAULT NULL COMMENT '绑定的企业微信员工ID',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`kf_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客服账号表';
|
||
|
||
-- 转人工记录表
|
||
CREATE TABLE IF NOT EXISTS `transfer_log` (
|
||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增ID',
|
||
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
|
||
`trigger_reason` VARCHAR(200) DEFAULT NULL COMMENT '触发原因',
|
||
`trigger_time` DATETIME NOT NULL COMMENT '触发时间',
|
||
`accepted_time` DATETIME DEFAULT NULL COMMENT '客服接入时间',
|
||
`accepted_cs_id` VARCHAR(64) DEFAULT NULL COMMENT '接入的客服ID',
|
||
PRIMARY KEY (`id`),
|
||
INDEX `idx_session_id` (`session_id`),
|
||
INDEX `idx_trigger_time` (`trigger_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='转人工记录表';
|
||
|
||
-- 快捷回复表 (可选)
|
||
CREATE TABLE IF NOT EXISTS `quick_reply` (
|
||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增ID',
|
||
`cs_id` VARCHAR(64) DEFAULT NULL COMMENT '客服ID,为空表示公共',
|
||
`category` VARCHAR(50) DEFAULT NULL COMMENT '分类',
|
||
`content` VARCHAR(500) NOT NULL COMMENT '回复内容',
|
||
`sort_order` INT DEFAULT 0 COMMENT '排序',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
INDEX `idx_cs_id` (`cs_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='快捷回复表';
|
||
|
||
-- 如果表已存在,添加新字段
|
||
ALTER TABLE `session` ADD COLUMN IF NOT EXISTS `wx_service_state` INT DEFAULT 0 COMMENT '微信会话状态';
|