-- 运营商提现向平台开票信息表
-- 执行前请确认 sys_todo_task、待办菜单权限 SQL 已部署。

CREATE TABLE IF NOT EXISTS `clearing_withdraw_invoice` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `withdraw_code` varchar(64) NOT NULL COMMENT '提现编号',
  `merchant_id` varchar(64) NOT NULL COMMENT '运营商ID',
  `invoice_status` varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '状态：PENDING待提交、SUBMITTED已提交、CLOSED已关闭',
  `invoice_number` varchar(100) DEFAULT NULL COMMENT '发票号码',
  `voucher_url` varchar(1000) DEFAULT NULL COMMENT '发票凭证地址',
  `submitted_by` bigint DEFAULT NULL COMMENT '提交人用户ID',
  `submitted_name` varchar(64) DEFAULT NULL COMMENT '提交人账号',
  `submitted_time` datetime DEFAULT NULL COMMENT '提交时间',
  `closed_by` bigint DEFAULT NULL COMMENT '关闭人用户ID',
  `closed_name` varchar(64) DEFAULT NULL COMMENT '关闭人账号',
  `closed_time` datetime DEFAULT NULL COMMENT '关闭时间',
  `close_reason` varchar(500) DEFAULT NULL COMMENT '关闭原因',
  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志（0正常 1删除）',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_withdraw_invoice_code` (`withdraw_code`),
  KEY `idx_withdraw_invoice_merchant_status` (`merchant_id`, `invoice_status`, `create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运营商提现向平台开票信息表';

-- 完成权限分配给运营商管理员角色，取消权限只分配给平台任务关闭角色。
-- INSERT INTO sys_role_menu (role_id, menu_id)
-- SELECT <运营商管理员角色ID>, menu_id FROM sys_menu WHERE perms = 'system:todo:complete';
-- INSERT INTO sys_role_menu (role_id, menu_id)
-- SELECT <平台任务关闭角色ID>, menu_id FROM sys_menu WHERE perms = 'system:todo:cancel';
