-- 流程实例表
DROP TABLE IF EXISTS `sys_flow_instance`;
CREATE TABLE `sys_flow_instance`
(
    `instance_id`  varchar(32) NOT NULL COMMENT '主键ID (UUID)',
    `flow_code`    varchar(64)  DEFAULT NULL COMMENT '流程编码',
    `business_id`  varchar(64)  DEFAULT NULL COMMENT '业务单据ID',
    `status`       int          DEFAULT NULL COMMENT '状态: 0-进行中, 1-已完成, 2-已撤销, 9-已终止',
    `company_id`   bigint       DEFAULT NULL COMMENT '租户/公司ID',
    `initiator_id` varchar(64)  DEFAULT NULL COMMENT '发起人ID',
    `finish_time`  datetime     DEFAULT NULL COMMENT '结束时间',
    `create_by`    varchar(64)  DEFAULT NULL COMMENT '创建者',
    `create_time`  datetime     DEFAULT NULL COMMENT '创建时间',
    `update_by`    varchar(64)  DEFAULT NULL COMMENT '更新者',
    `update_time`  datetime     DEFAULT NULL COMMENT '更新时间',
    `remark`       varchar(500) DEFAULT NULL COMMENT '备注',
    PRIMARY KEY (`instance_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程实例表';

-- 流程待办任务表
DROP TABLE IF EXISTS `sys_flow_task`;
CREATE TABLE `sys_flow_task`
(
    `task_id`     varchar(32) NOT NULL COMMENT '任务ID (UUID)',
    `instance_id` varchar(32)  DEFAULT NULL COMMENT '关联流程实例ID',
    `node_code`   varchar(64)  DEFAULT NULL COMMENT '节点编码',
    `node_name`   varchar(64)  DEFAULT NULL COMMENT '节点名称',
    `approver_id` varchar(64)  DEFAULT NULL COMMENT '待审批人ID',
    `company_id`  bigint       DEFAULT NULL COMMENT '租户/公司ID',
    `create_by`   varchar(64)  DEFAULT NULL COMMENT '创建者',
    `create_time` datetime     DEFAULT NULL COMMENT '创建时间',
    `update_by`   varchar(64)  DEFAULT NULL COMMENT '更新者',
    `update_time` datetime     DEFAULT NULL COMMENT '更新时间',
    `remark`      varchar(500) DEFAULT NULL COMMENT '备注',
    PRIMARY KEY (`task_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程待办任务表';

-- 流程处理历史表
DROP TABLE IF EXISTS `sys_flow_task_his`;
CREATE TABLE `sys_flow_task_his`
(
    `his_id`       varchar(32) NOT NULL COMMENT '历史记录ID (UUID)',
    `instance_id`  varchar(32)  DEFAULT NULL COMMENT '关联流程实例ID',
    `task_id`      varchar(32)  DEFAULT NULL COMMENT '关联原待办任务ID',
    `node_code`    varchar(64)  DEFAULT NULL COMMENT '节点编码',
    `node_name`    varchar(64)  DEFAULT NULL COMMENT '节点名称',
    `approver_id`  varchar(64)  DEFAULT NULL COMMENT '实际处理人ID',
    `status`       int          DEFAULT NULL COMMENT '审批结果: 1-通过, 2-驳回, 3-转办, 9-终止',
    `comment`      varchar(500) DEFAULT NULL COMMENT '审批意见',
    `audit_time`   datetime     DEFAULT NULL COMMENT '审批时间',
    `company_id`   bigint       DEFAULT NULL COMMENT '租户/公司ID',
    `create_by`    varchar(64)  DEFAULT NULL COMMENT '创建者',
    `create_time`  datetime     DEFAULT NULL COMMENT '创建时间',
    `update_by`    varchar(64)  DEFAULT NULL COMMENT '更新者',
    `update_time`  datetime     DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`his_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程处理历史表';
