65 lines
2.3 KiB
MySQL
65 lines
2.3 KiB
MySQL
|
|
-- CursorPro 数据库初始化脚本
|
|||
|
|
-- 如果需要手动建表可以使用此脚本,FastAPI 启动时会自动创建表
|
|||
|
|
|
|||
|
|
SET NAMES utf8mb4;
|
|||
|
|
SET CHARACTER SET utf8mb4;
|
|||
|
|
|
|||
|
|
-- 创建数据库(如果不存在)
|
|||
|
|
CREATE DATABASE IF NOT EXISTS cursorpro
|
|||
|
|
CHARACTER SET utf8mb4
|
|||
|
|
COLLATE utf8mb4_unicode_ci;
|
|||
|
|
|
|||
|
|
USE cursorpro;
|
|||
|
|
|
|||
|
|
-- cursor_accounts 表
|
|||
|
|
CREATE TABLE IF NOT EXISTS cursor_accounts (
|
|||
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|||
|
|
email VARCHAR(255) NOT NULL UNIQUE,
|
|||
|
|
access_token TEXT NOT NULL,
|
|||
|
|
refresh_token TEXT,
|
|||
|
|
workos_session_token TEXT,
|
|||
|
|
membership_type ENUM('free', 'pro') DEFAULT 'pro',
|
|||
|
|
status ENUM('active', 'in_use', 'disabled', 'expired') DEFAULT 'active',
|
|||
|
|
usage_count INT DEFAULT 0,
|
|||
|
|
current_key_id INT,
|
|||
|
|
last_used_at DATETIME,
|
|||
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|||
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|||
|
|
INDEX idx_status (status),
|
|||
|
|
INDEX idx_membership_type (membership_type)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|||
|
|
|
|||
|
|
-- activation_keys 表
|
|||
|
|
CREATE TABLE IF NOT EXISTS activation_keys (
|
|||
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|||
|
|
`key` VARCHAR(64) NOT NULL UNIQUE,
|
|||
|
|
switch_limit INT DEFAULT 100,
|
|||
|
|
switch_count INT DEFAULT 0,
|
|||
|
|
membership_type ENUM('free', 'pro') DEFAULT 'pro',
|
|||
|
|
status ENUM('active', 'disabled') DEFAULT 'active',
|
|||
|
|
current_account_id INT,
|
|||
|
|
expire_at DATETIME,
|
|||
|
|
remark VARCHAR(255),
|
|||
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|||
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|||
|
|
INDEX idx_key (`key`),
|
|||
|
|
INDEX idx_status (status)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|||
|
|
|
|||
|
|
-- usage_logs 表
|
|||
|
|
CREATE TABLE IF NOT EXISTS usage_logs (
|
|||
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|||
|
|
key_id INT NOT NULL,
|
|||
|
|
account_id INT,
|
|||
|
|
action ENUM('verify', 'switch') NOT NULL,
|
|||
|
|
ip_address VARCHAR(45),
|
|||
|
|
success BOOLEAN DEFAULT TRUE,
|
|||
|
|
message VARCHAR(255),
|
|||
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|||
|
|
INDEX idx_key_id (key_id),
|
|||
|
|
INDEX idx_created_at (created_at)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|||
|
|
|
|||
|
|
-- 插入示例激活码(可选)
|
|||
|
|
-- INSERT INTO activation_keys (`key`, switch_limit, membership_type) VALUES ('TEST-KEY-0001', 100, 'pro');
|