mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-06-02 22:26:57 -05:00
* Set up tables * Initial * Frontend for finalize tournament * Enter summaries to DB * Handle changes on tournament page after tournament is finalized * Fix streams tab text not centered * Add translations * Results on user page * Highlight logic for tournament results * Leaderboard page initial * Team leaderboard * CSS tweaks * Add unit tests * Add some i18n * Add leaderboards page meta * Support tournaments of size 2 * Add E2E test * Add missing group by
115 lines
3.5 KiB
JavaScript
115 lines
3.5 KiB
JavaScript
module.exports.up = function (db) {
|
|
db.prepare(
|
|
`create index tournament_sub_user_id on "TournamentSub"("userId")`
|
|
).run();
|
|
db.prepare(
|
|
`create index tournament_sub_tournament_id on "TournamentSub"("tournamentId")`
|
|
).run();
|
|
|
|
db.prepare(
|
|
/*sql*/ `
|
|
create table "Skill" (
|
|
"id" integer primary key,
|
|
"mu" real not null,
|
|
"sigma" real not null,
|
|
"ordinal" real not null,
|
|
"userId" integer,
|
|
"identifier" text,
|
|
"matchesCount" integer not null,
|
|
"tournamentId" integer,
|
|
foreign key ("userId") references "User"("id") on delete cascade,
|
|
foreign key ("tournamentId") references "Tournament"("id") on delete restrict,
|
|
unique("userId", "tournamentId") on conflict rollback
|
|
) strict
|
|
`
|
|
).run();
|
|
|
|
db.prepare(`create index skill_user_id on "Skill"("userId")`).run();
|
|
db.prepare(
|
|
`create index skill_tournament_id on "Skill"("tournamentId")`
|
|
).run();
|
|
|
|
db.prepare(
|
|
/*sql*/ `
|
|
create table "SkillTeamUser" (
|
|
"userId" integer not null,
|
|
"skillId" integer not null,
|
|
foreign key ("userId") references "User"("id") on delete cascade,
|
|
foreign key ("skillId") references "Skill"("id") on delete cascade,
|
|
unique("userId", "skillId") on conflict rollback
|
|
) strict
|
|
`
|
|
).run();
|
|
|
|
db.prepare(
|
|
`create index skill_team_user_user_id on "SkillTeamUser"("userId")`
|
|
).run();
|
|
db.prepare(
|
|
`create index skill_team_user_skill_id on "SkillTeamUser"("skillId")`
|
|
).run();
|
|
|
|
db.prepare(
|
|
/*sql*/ `
|
|
create table "MapResult" (
|
|
"mode" text not null,
|
|
"stageId" integer not null,
|
|
"userId" integer not null,
|
|
"wins" integer not null,
|
|
"losses" integer not null,
|
|
foreign key ("userId") references "User"("id") on delete cascade,
|
|
unique("userId", "stageId", "mode") on conflict rollback
|
|
) strict
|
|
`
|
|
).run();
|
|
|
|
db.prepare(`create index map_result_user_id on "MapResult"("userId")`).run();
|
|
|
|
db.prepare(
|
|
/*sql*/ `
|
|
create table "PlayerResult" (
|
|
"ownerUserId" integer not null,
|
|
"otherUserId" integer not null,
|
|
"mapWins" integer not null,
|
|
"mapLosses" integer not null,
|
|
"setWins" integer not null,
|
|
"setLosses" integer not null,
|
|
"type" text not null,
|
|
foreign key ("ownerUserId") references "User"("id") on delete cascade,
|
|
foreign key ("otherUserId") references "User"("id") on delete cascade,
|
|
unique("ownerUserId", "otherUserId", "type") on conflict rollback
|
|
) strict
|
|
`
|
|
).run();
|
|
|
|
db.prepare(
|
|
`create index player_result_owner_user_id on "PlayerResult"("ownerUserId")`
|
|
).run();
|
|
db.prepare(
|
|
`create index player_result_other_user_id on "PlayerResult"("otherUserId")`
|
|
).run();
|
|
|
|
db.prepare(
|
|
/*sql*/ `
|
|
create table "TournamentResult" (
|
|
"tournamentId" integer not null,
|
|
"userId" integer not null,
|
|
"placement" integer not null,
|
|
"isHighlight" integer not null default 0,
|
|
"participantCount" integer not null,
|
|
"tournamentTeamId" integer not null,
|
|
foreign key ("userId") references "User"("id") on delete cascade,
|
|
foreign key ("tournamentId") references "Tournament"("id") on delete cascade,
|
|
foreign key ("tournamentTeamId") references "TournamentTeam"("id") on delete cascade,
|
|
unique("userId", "tournamentId") on conflict rollback
|
|
) strict
|
|
`
|
|
).run();
|
|
|
|
db.prepare(
|
|
`create index tournament_result_user_id on "TournamentResult"("userId")`
|
|
).run();
|
|
db.prepare(
|
|
`create index tournament_result_tournament_id on "TournamentResult"("tournamentId")`
|
|
).run();
|
|
};
|