-- PROD数据库: 添加邮件发送记录表和Token日志表
-- 与 QA 的 qa_ddl.sql 对齐
USE mokeegateway;

CREATE TABLE IF NOT EXISTS sys_email_log (
    id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
    to_address VARCHAR(256) NOT NULL COMMENT '收件人',
    subject VARCHAR(512) NOT NULL COMMENT '主题',
    content TEXT COMMENT '邮件内容',
    content_type VARCHAR(16) NOT NULL DEFAULT 'html' COMMENT '格式 html/text',
    status TINYINT NOT NULL DEFAULT 0 COMMENT '0-失败 1-成功',
    error_msg VARCHAR(1024) DEFAULT NULL COMMENT '错误信息',
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发送时间',
    PRIMARY KEY (id),
    KEY idx_created_at (created_at),
    KEY idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邮件发送记录表';

CREATE TABLE IF NOT EXISTS sys_open_token_log (
    id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
    system_id VARCHAR(64) DEFAULT NULL COMMENT '系统ID',
    system_code VARCHAR(64) NOT NULL COMMENT '系统编码',
    token_id VARCHAR(64) NOT NULL COMMENT 'Token唯一ID',
    token_preview VARCHAR(64) DEFAULT NULL COMMENT 'Token预览',
    acquired_at DATETIME DEFAULT NULL COMMENT '获取时间',
    consumed TINYINT NOT NULL DEFAULT 0 COMMENT '0-未消费 1-已消费',
    consumed_at DATETIME DEFAULT NULL COMMENT '消费时间',
    consume_api VARCHAR(256) DEFAULT NULL COMMENT '消费接口',
    consume_ip VARCHAR(64) DEFAULT NULL COMMENT '消费IP',
    PRIMARY KEY (id),
    KEY idx_token_id (token_id),
    KEY idx_system_code (system_code),
    KEY idx_acquired_at (acquired_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='开放API Token日志表';
