CREATE SCHEMA IF NOT EXISTS workcase;

-- 系统外部人员（来客）管理 用于给系统外人员创建id
DROP TABLE IF EXISTS workcase.tb_receptionist CASCADE;
CREATE TABLE workcase.tb_receptionist(
    optsn              VARCHAR(50)   NOT NULL,               -- 流水号
    user_id            VARCHAR(50)   NOT NULL,               -- 来客ID
    name               VARCHAR(50)   NOT NULL,               -- 姓名
    phone              VARCHAR(50)   NOT NULL,               -- 电话
    email              VARCHAR(50)   NOT NULL,               -- 邮箱
    wechat_id          VARCHAR(50)   NOT NULL,               -- 微信号
    create_time        TIMESTAMPTZ   NOT NULL DEFAULT now(), -- 创建时间
    delete_time        TIMESTAMPTZ   DEFAULT NULL,           -- 删除时间
    deleted            BOOLEAN       NOT NULL DEFAULT false, -- 是否删除
    PRIMARY KEY (user_id),
    UNIQUE (wechat_id),
    UNIQUE (phone),
    UNIQUE (email)
);


-- 客服对话记录，客服对话消息，包含ai、员工回答和来客提问
-- 直接使用ai.tb_chat和ai.tb_chat_message，user_type为false，表示该对话为来客对话
-- 这里，需要把在微信客服上的聊天同步到ai.tb_chat_message

-- 工单表
DROP TABLE IF EXISTS workcase.tb_workcase CASCADE;
CREATE TABLE workcase.tb_workcase(
    optsn              VARCHAR(50)   NOT NULL,               -- 流水号
    workcase_id        VARCHAR(50)   NOT NULL,               -- 工单ID
    user_id            VARCHAR(50)   NOT NULL,               -- 来客ID
    username           VARCHAR(200)  NOT NULL,               -- 来客姓名
    phone              VARCHAR(20)   NOT NULL,               -- 来客电话
    type               VARCHAR(50)   NOT NULL,               -- 故障类型
    device             VARCHAR(50)   NOT NULL,               -- 设备型号
    emergency          VARCHAR(50)   NOT NULL DEFAULT 'normal', -- 紧急程度 normal-普通 emergency-紧急
    status             VARCHAR(50)   NOT NULL DEFAULT 'pending', -- 状态 pending-待处理 processing-处理中 done-已完成
    processor          VARCHAR(50)   DEFAULT NULL,           -- 处理人
    create_time        TIMESTAMPTZ   NOT NULL DEFAULT now(), -- 创建时间
    update_time        TIMESTAMPTZ   DEFAULT NULL,           -- 更新时间
    delete_time        TIMESTAMPTZ   DEFAULT NULL,           -- 删除时间
    deleted            BOOLEAN       NOT NULL DEFAULT false, -- 是否删除
    PRIMARY KEY (workcase_id),
    UNIQUE (optsn)
);