低空智控平台 后端go
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

49 lines
2.5 KiB

-- 001_schema.sql 已包含 password_changed_at;本脚本仅补充账户会话和发票表。
CREATE TABLE IF NOT EXISTS `user_login_session` (
id BIGINT PRIMARY KEY COMMENT '主键 ID',
user_id BIGINT NOT NULL COMMENT '所属用户 ID',
access_token_id VARCHAR(64) NOT NULL COMMENT '访问令牌 ID',
refresh_token_id VARCHAR(64) NOT NULL COMMENT '刷新令牌 ID',
user_agent VARCHAR(512) COMMENT '客户端 User-Agent',
ip VARCHAR(64) COMMENT '客户端 IP 地址',
last_active_at DATETIME NOT NULL COMMENT '最后活跃时间',
expires_at DATETIME NOT NULL COMMENT '过期时间戳',
revoked_at DATETIME COMMENT '撤销时间',
created_at DATETIME COMMENT '创建时间',
UNIQUE KEY uk_session_access (access_token_id),
UNIQUE KEY uk_session_refresh (refresh_token_id),
KEY idx_session_user_active (user_id, revoked_at, expires_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `invoice_profile` (
id BIGINT PRIMARY KEY COMMENT '主键 ID',
user_id BIGINT NOT NULL COMMENT '所属用户 ID',
title VARCHAR(128) NOT NULL COMMENT '发票抬头',
taxpayer_number VARCHAR(64) NOT NULL COMMENT '纳税人识别号',
email VARCHAR(128) NOT NULL COMMENT '电子邮箱',
is_default TINYINT DEFAULT 0 COMMENT '是否默认发票信息',
created_at DATETIME COMMENT '创建时间',
updated_at DATETIME COMMENT '更新时间',
KEY idx_invoice_profile_user (user_id, is_default)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `invoice_request` (
id BIGINT PRIMARY KEY COMMENT '主键 ID',
user_id BIGINT NOT NULL COMMENT '所属用户 ID',
order_id BIGINT NOT NULL COMMENT '订单 ID',
amount DECIMAL(10,2) NOT NULL COMMENT '开票金额',
title VARCHAR(128) NOT NULL COMMENT '发票抬头',
taxpayer_number VARCHAR(64) NOT NULL COMMENT '纳税人识别号',
email VARCHAR(128) NOT NULL COMMENT '电子邮箱',
status VARCHAR(16) DEFAULT 'pending' COMMENT '业务状态',
invoice_number VARCHAR(64) COMMENT '发票号码',
admin_remark VARCHAR(256) COMMENT '管理员备注',
requested_at DATETIME COMMENT '申请时间',
processed_at DATETIME COMMENT '处理时间',
UNIQUE KEY uk_invoice_order (order_id),
KEY idx_invoice_request_user (user_id, requested_at),
KEY idx_invoice_request_status (status, requested_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE INDEX idx_download_log_user_created ON download_log (user_id, created_at DESC);