-- ============================================================================
-- SMS发送日志表 (sms_send_log)
-- ============================================================================
-- 用途：记录每次短信发送情况，用于资源核算和成本分析
-- 业务场景：
--   - 用户注册时的手机号验证 (scene: register)
--   - 忘记密码时的手机号验证 (scene: password)
-- 相关服务：userService (短信验证码功能)
-- 维护注意事项：
--   - mobile 字段脱敏存储（前端只显示138****5678格式）
--   - 验证码内容不记录，只记录发送状态
--   - 索引：mobile(查询), scene(统计), send_time(报表)
-- ============================================================================

-- SMS发送日志表
-- 用于记录每次短信发送情况，便于资源核算和成本分析
CREATE TABLE IF NOT EXISTS sms_send_log (
    id BIGSERIAL PRIMARY KEY,
    mobile VARCHAR(20) NOT NULL,
    scene VARCHAR(20) NOT NULL DEFAULT 'register',
    template_code VARCHAR(50) NOT NULL,
    sign_name VARCHAR(50) NOT NULL,
    message_id VARCHAR(64) DEFAULT '',
    response_code VARCHAR(20) DEFAULT '',
    response_description VARCHAR(255) DEFAULT '',
    status SMALLINT NOT NULL DEFAULT 1,
    send_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 索引
CREATE INDEX idx_sms_send_log_mobile ON sms_send_log(mobile);
CREATE INDEX idx_sms_send_log_scene ON sms_send_log(scene);
CREATE INDEX idx_sms_send_log_send_time ON sms_send_log(send_time);
