CREATE DATABASE `storm-AfterSales`

USE `storm-AfterSales`

CREATE TABLE sys_work_order_type (
                                     type_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '类型ID',
                                     type_name VARCHAR(50) NOT NULL COMMENT '类型名称（操作习惯、部件维修、设备巡厂维修、产品建议、投诉）',
                                     type_key VARCHAR(50) NOT NULL COMMENT '类型键值',
                                     STATUS CHAR(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
                                     order_num INT DEFAULT 0 COMMENT '显示顺序',
                                     create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
                                     create_time DATETIME COMMENT '创建时间',
                                     update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
                                     update_time DATETIME COMMENT '更新时间',
                                     remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
                                     UNIQUE KEY uk_type_key (type_key)
) ENGINE=INNODB COMMENT='工单类型表';

CREATE TABLE sys_work_order (
                                order_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '工单ID',
                                order_no VARCHAR(50) UNIQUE NOT NULL COMMENT '工单编号',
                                order_title VARCHAR(200) NOT NULL COMMENT '工单标题',
                                order_type VARCHAR(50) COMMENT '工单类型（对应type_key）',
                                order_status VARCHAR(20) DEFAULT 'pending' COMMENT '工单状态（pending, processing, resolved, closed, cancelled）',
                                priority VARCHAR(10) DEFAULT 'medium' COMMENT '优先级（low, medium, high, urgent）',

    -- 客户信息
                                customer_id BIGINT COMMENT '客户ID',
                                customer_name VARCHAR(100) COMMENT '客户姓名',
                                customer_contact VARCHAR(50) COMMENT '客户联系方式',
                                store_address VARCHAR(200) COMMENT '门店地址',

    -- 设备信息
                                device_name VARCHAR(100) COMMENT '设备名称',
                                device_serial_no VARCHAR(100) COMMENT '设备序列号',
                                device_model VARCHAR(100) COMMENT '设备型号',
                                production_date DATE COMMENT '生产日期',

    -- 问题描述（多媒体支持）
                                problem_description TEXT COMMENT '问题描述',
                                attachment_urls JSON COMMENT '附件URL（图片/视频） - 支持多个',
                                problem_category VARCHAR(50) COMMENT '问题分类（数量问题、质量问题、软件故障等）',

    -- 处理信息
                                assignee_id BIGINT COMMENT '处理人ID',
                                assignee_name VARCHAR(100) COMMENT '处理人姓名',
                                assign_time DATETIME COMMENT '分配时间',
                                current_handler_id BIGINT COMMENT '当前处理人ID',
                                current_handler_name VARCHAR(100) COMMENT '当前处理人姓名',

    -- 进度管理（结构化）
                                root_cause TEXT COMMENT '原因定位',
                                solution_plan TEXT COMMENT '处理方案',
                                final_solution TEXT COMMENT '最终解决方案',

    -- 物流信息（图片1明确需求）
                                logistics_number VARCHAR(100) COMMENT '物流单号',
                                logistics_progress VARCHAR(500) COMMENT '物流进度',

    -- 客户反馈
                                customer_feedback TEXT COMMENT '客户反馈',
                                satisfaction_level INT COMMENT '满意度（1-5）',
                                feedback_type VARCHAR(20) COMMENT '反馈类型（praise, complaint, suggestion）',

    -- 时间管理
                                plan_finish_time DATETIME COMMENT '计划完成时间',
                                actual_finish_time DATETIME COMMENT '实际完成时间',
                                response_deadline DATETIME COMMENT '响应截止时间（30分钟规则）',

    -- 来源渠道
                                source_channel VARCHAR(20) DEFAULT 'feishu' COMMENT '来源渠道（feishu, phone, wechat, app, web）',
                                feishu_chat_id VARCHAR(100) COMMENT '飞书会话ID',

    -- 若依标准字段
                                create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
                                create_time DATETIME COMMENT '创建时间',
                                update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
                                update_time DATETIME COMMENT '更新时间',
                                remark VARCHAR(500) DEFAULT NULL COMMENT '备注',

    -- 索引优化
                                INDEX idx_order_no (order_no),
                                INDEX idx_status (order_status),
                                INDEX idx_assignee (assignee_id),
                                INDEX idx_customer (customer_id),
                                INDEX idx_create_time (create_time),
                                INDEX idx_device_serial (device_serial_no),
                                INDEX idx_logistics (logistics_number)
) ENGINE=INNODB COMMENT='工单主表';

-- 工单处理记录表（增强进度跟踪）
CREATE TABLE sys_work_order_record (
                                       record_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '记录ID',
                                       order_id BIGINT NOT NULL COMMENT '工单ID',
                                       process_type VARCHAR(50) COMMENT '处理类型（create, assign, process, feedback, close, visit等）',
                                       process_content TEXT COMMENT '处理内容',

    -- 结构化进度信息
                                       progress_type VARCHAR(50) COMMENT '进度类型（logistics, repair, replacement, optimization, complaint）',
                                       progress_value VARCHAR(200) COMMENT '进度值',
                                       progress_percent INT COMMENT '进度百分比',

                                       process_user_id BIGINT COMMENT '处理人ID',
                                       process_user_name VARCHAR(100) COMMENT '处理人姓名',
                                       process_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '处理时间',
                                       attachment_url VARCHAR(500) COMMENT '进度附件',

                                       INDEX idx_order_id (order_id),
                                       INDEX idx_process_time (process_time),
                                       INDEX idx_progress_type (progress_type)
) ENGINE=INNODB COMMENT='工单处理记录表';

-- 工单聊天关联表（支持多渠道）
CREATE TABLE sys_work_order_chat_rel (
                                         id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
                                         order_id BIGINT NOT NULL COMMENT '工单ID',
                                         chat_session_id VARCHAR(100) COMMENT '聊天会话ID',
                                         chat_platform VARCHAR(20) DEFAULT 'feishu' COMMENT '平台（feishu, wechat, phone）',
                                         message_id VARCHAR(100) COMMENT '消息ID',
                                         chat_content TEXT COMMENT '聊天内容摘要',
                                         chat_duration INT COMMENT '通话时长（秒）',
                                         create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

                                         INDEX idx_order_id (order_id),
                                         INDEX idx_chat_session (chat_session_id),
                                         INDEX idx_platform (chat_platform)
) ENGINE=INNODB COMMENT='工单聊天关联表';

-- 新增：客服知识库关联表
CREATE TABLE sys_knowledge_rel (
                                   id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
                                   order_id BIGINT NOT NULL COMMENT '工单ID',
                                   knowledge_id BIGINT COMMENT '知识库文章ID',
                                   knowledge_title VARCHAR(200) COMMENT '知识标题',
                                   used_count INT DEFAULT 1 COMMENT '使用次数',
                                   create_time DATETIME COMMENT '关联时间',

                                   INDEX idx_order_id (order_id),
                                   INDEX idx_knowledge (knowledge_id)
) ENGINE=INNODB COMMENT='工单知识库关联表';