- server: Go 单二进制骨架,embed 内嵌前端,配置/迁移/HTTP 路由 - store: system.db + event.db 两套迁移,业务表 + 种子数据 - domain: 积分引擎(并列三口径/计分通道/流水/排名/破纪录)+ 68 个测试 - web: Vite + Vue 三入口骨架 + shared 层(类型/API/WebSocket 客户端) - console: Electron 宿主骨架(选屏/防熄屏/进程守护/托盘)
46 lines
1.8 KiB
SQL
46 lines
1.8 KiB
SQL
-- 默认积分模板:个人 10/8/6/3/2/1,团体 15/10/8/4/2/1(见 02-积分与排名规则 第 2.1 节)。
|
|
INSERT OR IGNORE INTO scoring_profiles (code, name, tie_mode, record_bonus_mode, award_ranks, last_place_zero)
|
|
VALUES ('individual_top6', '个人项目前六名', 'skip', 'max', 6, 0),
|
|
('team_top6', '团体项目前六名', 'skip', 'max', 6, 0);
|
|
|
|
INSERT OR IGNORE INTO scoring_profile_rules (profile_id, rank, points)
|
|
SELECT p.id, r.rank, r.points
|
|
FROM scoring_profiles p
|
|
JOIN (SELECT 1 AS rank, 10.0 AS points UNION ALL
|
|
SELECT 2, 8.0 UNION ALL
|
|
SELECT 3, 6.0 UNION ALL
|
|
SELECT 4, 3.0 UNION ALL
|
|
SELECT 5, 2.0 UNION ALL
|
|
SELECT 6, 1.0) r
|
|
WHERE p.code = 'individual_top6';
|
|
|
|
INSERT OR IGNORE INTO scoring_profile_rules (profile_id, rank, points)
|
|
SELECT p.id, r.rank, r.points
|
|
FROM scoring_profiles p
|
|
JOIN (SELECT 1 AS rank, 15.0 AS points UNION ALL
|
|
SELECT 2, 10.0 UNION ALL
|
|
SELECT 3, 8.0 UNION ALL
|
|
SELECT 4, 4.0 UNION ALL
|
|
SELECT 5, 2.0 UNION ALL
|
|
SELECT 6, 1.0) r
|
|
WHERE p.code = 'team_top6';
|
|
|
|
-- 赛事级默认配置;键名沿用 04-数据模型 的 event.name / display.rotate_seconds 风格。
|
|
INSERT OR IGNORE INTO settings (key, value) VALUES
|
|
('event.name', '未命名赛事'),
|
|
('event.subtitle', ''),
|
|
('event.organizer', ''),
|
|
('event.logo_path', ''),
|
|
('display.theme_color', '#1E88E5'),
|
|
('display.rotate_seconds', '15'),
|
|
('standings.mode', 'points'),
|
|
('standings.individual_to_team_weight', '1'),
|
|
('standings.show_individual_medals', 'true'),
|
|
('standings.medal_counts_team_events', 'true'),
|
|
('scoring.default_profile', 'individual_top6'),
|
|
('results.review_required', 'false'),
|
|
('record_bonus.enabled', 'false'),
|
|
('record_bonus.mode', 'max'),
|
|
('manual_adjustment.enabled', 'false'),
|
|
('manual_adjustment.reason_required', 'true');
|