-- 创建数据库（如果不存在）
CREATE DATABASE IF NOT EXISTS `qnc_server` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 使用数据库
USE `qnc_server`;

-- 创建代理实名认证表
CREATE TABLE `agent_real_name` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `agent_id` bigint NOT NULL COMMENT '代理ID',
    `name` varchar(255) NOT NULL COMMENT '实名姓名',
    `card_id` varchar(255) NOT NULL COMMENT '身份证号',
    `status` enum(
        'pending',
        'approved',
        'rejected'
    ) NOT NULL DEFAULT 'pending' COMMENT '认证状态（认证中、通过、拒绝）',
    `del_state` tinyint NOT NULL DEFAULT '0' COMMENT '删除状态',
    `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `approve_time` datetime DEFAULT NULL COMMENT '认证通过时间',
    `reject_time` datetime DEFAULT NULL COMMENT '认证拒绝时间',
    `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY `unique_agent_id` (`agent_id`),
    KEY `idx_status` (`status`),
    KEY `idx_card_id` (`card_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代理实名认证表';

-- 添加表注释
ALTER TABLE `agent_real_name` COMMENT = '代理实名认证表';

-- 添加字段注释
ALTER TABLE `agent_real_name`
MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
MODIFY COLUMN `agent_id` bigint NOT NULL COMMENT '代理ID',
MODIFY COLUMN `name` varchar(255) NOT NULL COMMENT '实名姓名',
MODIFY COLUMN `card_id` varchar(255) NOT NULL COMMENT '身份证号',
MODIFY COLUMN `status` enum(
    'pending',
    'approved',
    'rejected'
) NOT NULL DEFAULT 'pending' COMMENT '认证状态（认证中、通过、拒绝）',
MODIFY COLUMN `del_state` tinyint NOT NULL DEFAULT '0' COMMENT '删除状态',
MODIFY COLUMN `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号',
MODIFY COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
MODIFY COLUMN `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
MODIFY COLUMN `approve_time` datetime DEFAULT NULL COMMENT '认证通过时间',
MODIFY COLUMN `reject_time` datetime DEFAULT NULL COMMENT '认证拒绝时间',
MODIFY COLUMN `delete_time` datetime DEFAULT NULL COMMENT '删除时间';