Files
DP/temp_backup/Server_redundant/init_db.sql
zuowei1216 12395d8eca newrun
2025-12-30 14:46:22 +08:00

171 lines
4.9 KiB
SQL

-- ==========================================
-- Database Initialization Script
-- Generated at: 2025-12-22 17:54:23.463367
-- ==========================================
-- 1. Select Database and Cleanup Tables
USE designer_db;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS check_in_config;
DROP TABLE IF EXISTS check_in_records;
DROP TABLE IF EXISTS features_config;
DROP TABLE IF EXISTS plugin_groups;
DROP TABLE IF EXISTS points_history;
DROP TABLE IF EXISTS vip_config;
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS user_sessions;
SET FOREIGN_KEY_CHECKS = 1;
-- 2. Create Tables
CREATE TABLE check_in_config (
id INTEGER NOT NULL AUTO_INCREMENT,
consecutive_days INTEGER NOT NULL,
base_points INTEGER NOT NULL,
bonus_points INTEGER NOT NULL,
total_points INTEGER NOT NULL,
enabled BOOL,
created_at DATETIME DEFAULT now(),
updated_at DATETIME,
PRIMARY KEY (id),
UNIQUE (consecutive_days)
);
CREATE TABLE check_in_records (
id INTEGER NOT NULL AUTO_INCREMENT,
user_id INTEGER NOT NULL,
username VARCHAR(50) NOT NULL,
check_in_date DATE NOT NULL,
points_earned INTEGER NOT NULL,
consecutive_days INTEGER NOT NULL,
vip_multiplier FLOAT,
created_at DATETIME DEFAULT now(),
PRIMARY KEY (id)
);
CREATE TABLE features_config (
id INTEGER NOT NULL AUTO_INCREMENT,
feature_key VARCHAR(50) NOT NULL,
feature_name VARCHAR(100) NOT NULL,
category VARCHAR(50),
points_cost INTEGER,
vip_points_cost INTEGER,
svip_points_cost INTEGER,
enabled BOOL,
description TEXT,
created_at DATETIME DEFAULT now(),
updated_at DATETIME,
PRIMARY KEY (id)
);
CREATE TABLE plugin_groups (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(64) NOT NULL,
current_version_file VARCHAR(255),
comment TEXT,
PRIMARY KEY (id)
);
CREATE TABLE points_history (
id INTEGER NOT NULL AUTO_INCREMENT,
user_id INTEGER NOT NULL,
username VARCHAR(50) NOT NULL,
type VARCHAR(20) NOT NULL,
amount INTEGER NOT NULL,
balance INTEGER NOT NULL,
description VARCHAR(255),
created_at DATETIME DEFAULT now(),
PRIMARY KEY (id)
);
CREATE TABLE vip_config (
id INTEGER NOT NULL AUTO_INCREMENT,
vip_type VARCHAR(20) NOT NULL,
name VARCHAR(50) NOT NULL,
price FLOAT NOT NULL,
daily_quota INTEGER NOT NULL,
points_multiplier FLOAT,
enabled BOOL,
description TEXT,
created_at DATETIME DEFAULT now(),
updated_at DATETIME,
PRIMARY KEY (id),
UNIQUE (vip_type)
);
CREATE TABLE users (
id INTEGER NOT NULL AUTO_INCREMENT,
username VARCHAR(64) NOT NULL,
hashed_password VARCHAR(128) NOT NULL,
created_at DATETIME NOT NULL DEFAULT now(),
group_id INTEGER,
permissions TEXT,
expire_date DATETIME,
email VARCHAR(255),
is_verified BOOL,
verification_code VARCHAR(6),
reset_token VARCHAR(128),
reset_token_expire DATETIME,
nickname VARCHAR(50),
avatar VARCHAR(500),
points INTEGER,
level INTEGER,
vip_type VARCHAR(20),
vip_expire DATETIME,
vip_daily_quota INTEGER,
vip_quota_reset_date DATE,
total_check_in_days INTEGER,
consecutive_check_in INTEGER,
last_check_in_date DATE,
PRIMARY KEY (id),
FOREIGN KEY(group_id) REFERENCES plugin_groups (id)
);
CREATE TABLE user_sessions (
id INTEGER NOT NULL AUTO_INCREMENT,
user_id INTEGER NOT NULL,
device_id VARCHAR(128) NOT NULL,
active BOOL NOT NULL,
expires_at DATETIME,
created_at DATETIME NOT NULL DEFAULT now(),
login_at DATETIME,
logout_at DATETIME,
duration_seconds INTEGER,
last_seen_at DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(user_id) REFERENCES users (id)
);
-- 3. Insert Initial Data
-- Default User Group
INSERT INTO plugin_groups (name, comment) VALUES ('default', 'Default User Group');
-- VIP Config
INSERT INTO vip_config (vip_type, name, price, daily_quota, points_multiplier) VALUES ('vip', 'VIP会员', 30.0, 20, 1.5);
INSERT INTO vip_config (vip_type, name, price, daily_quota, points_multiplier) VALUES ('svip', 'SVIP会员', 88.0, -1, 2.0);
-- Check-in Config
INSERT INTO checkin_config (consecutive_days, base_points, bonus_points, total_points) VALUES (1, 10, 0, 10);
INSERT INTO checkin_config (consecutive_days, base_points, bonus_points, total_points) VALUES (3, 10, 5, 15);
INSERT INTO checkin_config (consecutive_days, base_points, bonus_points, total_points) VALUES (7, 10, 20, 30);
-- Feature Config
INSERT INTO feature_configs (feature_key, feature_name, points_cost, category) VALUES ('ai_remove_bg', '智能抠图', 10, 'ai');
-- 4. Create Admin User (admin / password123)
INSERT INTO users (
username, hashed_password, email, is_verified, permissions,
group_id, nickname, level, vip_type, vip_expire,
created_at, points, total_check_in_days, consecutive_check_in, vip_daily_quota
) VALUES (
'admin',
'$2b$12$UsFjs3Jwn5BG7u/RJ1efNuTF4zIsjT.pSm1mQEBXGWKR.3Kakhpmq',
'admin@example.com',
1,
'admin,vip,svip',
(SELECT id FROM plugin_groups WHERE name = 'default' LIMIT 1),
'Administrator',
999,
'svip',
'2099-12-31 23:59:59',
NOW(),
0, 0, 0, 0
);