mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-09 04:02:40 -05:00
* Add DB tables
* Toggle TO Tools in new calendar event page
* TO tools page initial
* Add counter pick map pool UI
* Save tie breaker map pool
* Save team name
* Layout initial
* Load users own team
* Make team name input required
* Rename team
* Divide to sections
* Submit team map pool
* New style for counter pick map pool section expand
* Fix tiebreaker map pool not saved when new event made
* Split to many forms
* According for team name
* Small UI consistency tweaks
* Add explanation to tie breaker maps
* Remove redundant prop
* Fix new calendar event todos
* Use required hidden input component in new build page
* Fix to tools page showing even when toToolsEnabled = 0
* Delete team
* Map list generation tests initial
* Add tournament map list generation tests
* First version of map list generation
* Add seeded RNG
* Rearrange files
* Generation with strats initial
* Default map pool + allow one team not to have any maps
* Implement map generation via backtracking
* Make order of stages irrelevant
* Add one more TODO
* Seed
* Fixes
* Tournament map list generator initial
* More functional maplist
* Fix any
* Persist in search params initial
* Add date to calendar seed
* Revert "Persist in search params initial"
This reverts commit f01a9e6982.
* Allow admin to start tournament
* Rate maplist instead of optimal / suboptimal
* Add fallback if map list generation errors out
* Hide TO Tools if not admin
* Submit team roster and delete members
* Teams page
* Give roster s p a c e
* Clear user combobox on sent + layout tweaks
* Gracefully handle updating after tournament has started
* Add title
* Persist map list in search params
* Add i18n
78 lines
2.8 KiB
JavaScript
78 lines
2.8 KiB
JavaScript
module.exports.up = function (db) {
|
|
db.prepare(`alter table "CalendarEvent" add "customUrl" text`).run();
|
|
db.prepare(
|
|
`alter table "CalendarEvent" add "toToolsEnabled" integer default 0`
|
|
).run();
|
|
db.prepare(
|
|
`alter table "CalendarEvent" add "isBeforeStart" integer default 1`
|
|
).run();
|
|
db.prepare(
|
|
`create unique index calendar_event_custom_url_unique on "CalendarEvent"("customUrl")`
|
|
).run();
|
|
|
|
// TODO: these should be FK's
|
|
db.prepare(`alter table "MapPoolMap" add "tournamentTeamId" integer`).run();
|
|
db.prepare(
|
|
`alter table "MapPoolMap" add "tieBreakerCalendarEventId" integer`
|
|
).run();
|
|
db.prepare(
|
|
`create index map_pool_map_tournament_team_id on "MapPoolMap"("tournamentTeamId")`
|
|
).run();
|
|
db.prepare(
|
|
`create index map_pool_map_tie_breaker_calendar_event_id on "MapPoolMap"("tieBreakerCalendarEventId")`
|
|
).run();
|
|
|
|
db.prepare(
|
|
`
|
|
create table "TournamentTeam" (
|
|
"id" integer primary key,
|
|
"name" text not null,
|
|
"createdAt" integer not null,
|
|
"seed" integer,
|
|
"calendarEventId" integer not null,
|
|
foreign key ("calendarEventId") references "CalendarEvent"("id") on delete cascade,
|
|
unique("calendarEventId", "name") on conflict rollback
|
|
) strict
|
|
`
|
|
).run();
|
|
db.prepare(
|
|
`create index tournament_team_calendar_event_id on "TournamentTeam"("calendarEventId")`
|
|
).run();
|
|
|
|
db.prepare(
|
|
`
|
|
create table "TournamentTeamMember" (
|
|
"tournamentTeamId" integer not null,
|
|
"userId" integer not null,
|
|
"isOwner" integer not null,
|
|
"createdAt" integer not null,
|
|
foreign key ("tournamentTeamId") references "TournamentTeam"("id") on delete cascade,
|
|
unique("tournamentTeamId", "userId") on conflict rollback
|
|
) strict
|
|
`
|
|
).run();
|
|
db.prepare(
|
|
`create index tournament_team_member_tournament_team_id on "TournamentTeamMember"("tournamentTeamId")`
|
|
).run();
|
|
};
|
|
|
|
module.exports.down = function (db) {
|
|
db.prepare(`drop index calendar_event_custom_url_unique`).run();
|
|
db.prepare(`drop index map_pool_map_tournament_team_id`).run();
|
|
db.prepare(`drop index map_pool_map_tie_breaker_calendar_event_id`).run();
|
|
|
|
db.prepare(`alter table "CalendarEvent" drop column "customUrl"`).run();
|
|
db.prepare(`alter table "CalendarEvent" drop column "toToolsEnabled"`).run();
|
|
db.prepare(`alter table "CalendarEvent" drop column "isBeforeStart"`).run();
|
|
db.prepare(`alter table "MapPoolMap" drop column "tournamentTeamId"`).run();
|
|
db.prepare(
|
|
`alter table "MapPoolMap" drop column "tieBreakerCalendarEventId"`
|
|
).run();
|
|
|
|
db.prepare(`drop index tournament_team_calendar_event_id`).run();
|
|
db.prepare(`drop index tournament_team_member_tournament_team_id`).run();
|
|
|
|
db.prepare(`drop table "TournamentTeam"`).run();
|
|
db.prepare(`drop table "TournamentTeamMember"`).run();
|
|
};
|