-- ===================================================================================== -- Schema: 客服模块核心表 -- 位置:docs/sql/10_schema/kefu/ml_kefu_tables_v1.sql -- 对象类型:Schema (DDL) -- 版本:v1 -- 说明:包含客服账号、话术、留言及自动回复逻辑 -- ===================================================================================== -- 1. 客服人员表 CREATE TABLE IF NOT EXISTS public.ml_kefu_accounts ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL REFERENCES public.ak_users(id), -- 关联主用户表 nickname TEXT NOT NULL, -- 客服昵称 avatar TEXT NULL, -- 客服头像 status SMALLINT NOT NULL DEFAULT 1, -- 1:启用, 0:禁用 is_online BOOLEAN NOT NULL DEFAULT FALSE, created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- 2. 话术分类表 CREATE TABLE IF NOT EXISTS public.ml_kefu_word_categories ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT NOT NULL, sort INT NOT NULL DEFAULT 0, created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- 3. 客服快捷话术表 CREATE TABLE IF NOT EXISTS public.ml_kefu_words ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), category_id UUID NOT NULL REFERENCES public.ml_kefu_word_categories(id) ON DELETE CASCADE, title TEXT NOT NULL, content TEXT NOT NULL, sort INT NOT NULL DEFAULT 0, created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- 4. 用户留言反馈表 CREATE TABLE IF NOT EXISTS public.ml_kefu_feedbacks ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NULL REFERENCES public.ak_users(id), -- 允许匿名留言 nickname TEXT NULL, phone TEXT NULL, content TEXT NOT NULL, status SMALLINT NOT NULL DEFAULT 0, -- 0:未处理, 1:已处理 reply_content TEXT NULL, -- 管理员回复内容 processed_at TIMESTAMPTZ NULL, -- 处理时间 created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- 5. 关键词自动回复表 CREATE TABLE IF NOT EXISTS public.ml_kefu_auto_replies ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), keyword TEXT NOT NULL, content TEXT NOT NULL, reply_type TEXT NOT NULL DEFAULT 'text', -- text, image status SMALLINT NOT NULL DEFAULT 1, -- 1:开启, 0:关闭 created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- 索引 CREATE INDEX IF NOT EXISTS ml_kefu_accounts_user_id_idx ON public.ml_kefu_accounts (user_id); CREATE INDEX IF NOT EXISTS ml_kefu_words_category_id_idx ON public.ml_kefu_words (category_id); CREATE INDEX IF NOT EXISTS ml_kefu_feedbacks_status_idx ON public.ml_kefu_feedbacks (status); CREATE INDEX IF NOT EXISTS ml_kefu_auto_replies_keyword_idx ON public.ml_kefu_auto_replies (keyword);