低空智控平台 后端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
1.7 KiB

ALTER TABLE `user` ADD COLUMN `password_changed_at` DATETIME NULL AFTER `last_login`;
CREATE TABLE IF NOT EXISTS `user_login_session` (
id BIGINT PRIMARY KEY,
user_id BIGINT NOT NULL,
access_token_id VARCHAR(64) NOT NULL,
refresh_token_id VARCHAR(64) NOT NULL,
user_agent VARCHAR(512),
ip VARCHAR(64),
last_active_at DATETIME NOT NULL,
expires_at DATETIME NOT NULL,
revoked_at DATETIME,
created_at DATETIME,
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,
user_id BIGINT NOT NULL,
title VARCHAR(128) NOT NULL,
taxpayer_number VARCHAR(64) NOT NULL,
email VARCHAR(128) NOT NULL,
is_default TINYINT DEFAULT 0,
created_at DATETIME,
updated_at DATETIME,
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,
user_id BIGINT NOT NULL,
order_id BIGINT NOT NULL,
amount DECIMAL(10,2) NOT NULL,
title VARCHAR(128) NOT NULL,
taxpayer_number VARCHAR(64) NOT NULL,
email VARCHAR(128) NOT NULL,
status VARCHAR(16) DEFAULT 'pending',
invoice_number VARCHAR(64),
admin_remark VARCHAR(256),
requested_at DATETIME,
processed_at DATETIME,
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);