-- ============================================================
-- 待办记录表 + 接收人关联表（DM8）
-- 设计：待办主题/内容只存一份，接收人独立关联，批量发送无冗余
-- 接收人名称不存储，查询时关联 PERSONAL_INFO/ENTERPRISE_INFO 实时获取
-- 前端页面跳转所需的目标页面路径、数据ID、路径参数，直接存在待办主表
-- ============================================================

CREATE TABLE todo_record (
    ID            VARCHAR(36)   NOT NULL,
    MODULE_TYPE   VARCHAR(50)            COMMENT '来源模块',
    SUBJECT       VARCHAR(200)  NOT NULL COMMENT '待办标题',
    CONTENT       VARCHAR(2000)          COMMENT '待办内容',
    CREATOR_ID    VARCHAR(36)            COMMENT '发起人用户ID(关联sys_user)',
    CREATOR       VARCHAR(50)   NOT NULL COMMENT '发起人姓名',
    CREATE_TIME   TIMESTAMP     DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '创建时间',
    STATUS        VARCHAR(20)   DEFAULT '0' NOT NULL COMMENT '状态: 0待处理 1已完成 2已取消',
    COMPLETE_TIME TIMESTAMP              COMMENT '完成时间',
    EXPIRE_TIME   TIMESTAMP              COMMENT '过期时间',
    TARGET_PAGE   VARCHAR(500)           COMMENT '目标页面路径',
    DATA_ID       VARCHAR(36)            COMMENT '数据ID',
    PATH_PARAMS   VARCHAR(500)           COMMENT '路径参数',
    SYS_ORG_CODE  VARCHAR(50),
    PRIMARY KEY (ID)
);
COMMENT ON TABLE todo_record IS '待办记录表';

CREATE TABLE todo_target (
    TODO_ID     VARCHAR(36) NOT NULL COMMENT '待办ID',
    TARGET_TYPE VARCHAR(20) NOT NULL COMMENT '类型: personal/enterprise',
    TARGET_ID   VARCHAR(36) NOT NULL COMMENT '目标ID'
);
COMMENT ON TABLE todo_target IS '待办接收人关联表';
CREATE INDEX idx_tt_target ON todo_target(TARGET_TYPE, TARGET_ID);
CREATE INDEX idx_tt_todo ON todo_target(TODO_ID);
ALTER TABLE todo_target ADD STATUS VARCHAR(20) DEFAULT '0';
COMMENT ON COLUMN todo_target.STATUS IS '状态: 0待处理 1已完成 2已取消';
