sendou.ink/migrations/006-calendar.js
Kalle fd48bced91
Migrate Prettier/Eslint/Stylelint setup to Biome (#1772)
* Initial

* CSS lint

* Test CI

* Add 1v1, 2v2, and 3v3 Tags (#1771)

* Initial

* CSS lint

* Test CI

* Rename step

---------

Co-authored-by: xi <104683822+ximk@users.noreply.github.com>
2024-06-24 13:07:17 +03:00

78 lines
2.0 KiB
JavaScript

export function up(db) {
db.prepare(
`
create table "CalendarEvent" (
"id" integer primary key,
"name" text not null,
"authorId" integer not null,
"bracketUrl" text not null,
"description" text,
"discordInviteCode" text,
"discordUrl" text generated always as ('https://discord.gg/' || "discordInviteCode") virtual,
"participantCount" integer,
"tags" text,
foreign key ("authorId") references "User"("id") on delete restrict
) strict
`,
).run();
db.prepare(
`
create table "CalendarEventDate" (
"id" integer primary key,
"eventId" integer not null,
"startTime" integer not null,
foreign key ("eventId") references "CalendarEvent"("id") on delete cascade
) strict
`,
).run();
db.prepare(
`
create table "CalendarEventResultTeam" (
"id" integer primary key,
"eventId" integer not null,
"name" text not null,
"placement" integer not null,
foreign key ("eventId") references "CalendarEvent"("id") on delete cascade
) strict
`,
).run();
db.prepare(
`
create table "CalendarEventResultPlayer" (
"teamId" integer not null,
"userId" integer,
"name" text,
foreign key ("teamId") references "CalendarEventResultTeam"("id") on delete cascade,
foreign key ("userId") references "User"("id") on delete restrict
) strict
`,
).run();
db.prepare(
`
create table "CalendarEventBadge" (
"eventId" integer not null,
"badgeId" integer not null,
foreign key ("eventId") references "CalendarEvent"("id") on delete cascade,
foreign key ("badgeId") references "Badge"("id") on delete restrict,
unique("eventId", "badgeId") on conflict rollback
) strict
`,
).run();
}
export function down(db) {
for (const table of [
"CalendarEventDate",
"CalendarEventResultPlayer",
"CalendarEventResultTeam",
"CalendarEventBadge",
"CalendarEvent",
]) {
db.prepare(`drop table "${table}"`).run();
}
}