Files
kefu/im/backend/migrations/007_system.sql
T
2026-08-27 14:04:28 +08:00

71 lines
3.1 KiB
SQL

CREATE TABLE IF NOT EXISTS system_configs (
config_key VARCHAR(100) NOT NULL,
config_value TEXT NOT NULL,
value_type VARCHAR(20) NOT NULL DEFAULT 'string',
description VARCHAR(255) NOT NULL DEFAULT '',
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
PRIMARY KEY (config_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS banners (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
image_url VARCHAR(500) NOT NULL,
link_url VARCHAR(500) NOT NULL DEFAULT '',
position VARCHAR(30) NOT NULL DEFAULT 'home',
status TINYINT UNSIGNED NOT NULL DEFAULT 1,
sort_order INT NOT NULL DEFAULT 0,
starts_at DATETIME(3) NULL,
ends_at DATETIME(3) NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS app_versions (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
platform VARCHAR(20) NOT NULL,
version VARCHAR(30) NOT NULL,
build_number INT UNSIGNED NOT NULL,
force_update TINYINT(1) NOT NULL DEFAULT 0,
download_url VARCHAR(500) NOT NULL DEFAULT '',
release_notes VARCHAR(2000) NOT NULL DEFAULT '',
status TINYINT UNSIGNED NOT NULL DEFAULT 1,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (id),
UNIQUE KEY uk_version_platform_build (platform, build_number)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS admin_audit_logs (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
admin_user_id BIGINT UNSIGNED NOT NULL,
action VARCHAR(100) NOT NULL,
target_type VARCHAR(50) NOT NULL DEFAULT '',
target_id BIGINT UNSIGNED NULL,
request_data JSON NULL,
ip VARCHAR(45) NOT NULL DEFAULT '',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (id),
KEY idx_audit_admin_created (admin_user_id, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO system_configs (config_key, config_value, value_type, description) VALUES
('im.recall_seconds', '120', 'number', '消息撤回时间窗口'),
('nearby.max_distance_km', '50', 'number', '附近的人最大距离'),
('stranger.daily_limit', '10', 'number', '普通用户每日主动聊天人数')
ON DUPLICATE KEY UPDATE description = VALUES(description);
INSERT INTO membership_plans (code, name, level, duration_days, price_cent, original_price_cent, status, sort_order) VALUES
('VIP_1M', 'VIP 1个月', 1, 30, 2800, 4000, 1, 10),
('VIP_3M', 'VIP 3个月', 1, 90, 6800, 9000, 1, 20),
('SVIP_12M', 'SVIP 12个月', 2, 365, 22800, 36000, 1, 30)
ON DUPLICATE KEY UPDATE name = VALUES(name), price_cent = VALUES(price_cent), original_price_cent = VALUES(original_price_cent);
INSERT INTO tags (category, name, icon, status, sort_order) VALUES
('personality', '天秤座', '', 1, 10),
('hobby', '摄影爱好者', '', 1, 20),
('hobby', '旅行达人', '', 1, 30),
('hobby', '电影', '', 1, 40),
('hobby', '音乐', '', 1, 50)
ON DUPLICATE KEY UPDATE status = VALUES(status);