Calendar tables migration

This commit is contained in:
Kalle 2022-07-21 21:27:21 +03:00
parent 12c86ff15e
commit bf291cc5a0
2 changed files with 91 additions and 0 deletions

View File

@ -76,3 +76,31 @@ export interface BadgeManager {
badgeId: number;
userId: number;
}
export interface CalendarEvent {
id: number;
name: string;
authorId: number;
description: string | null;
discordUrl: string | null;
bracketUrl: string | null;
participantCount: number | null;
}
export interface CalendarEventDate {
eventId: number;
startTime: number;
}
export interface CalendarEventWinner {
eventId: number;
teamName: string;
placement: number;
userId: number | null;
name: string | null;
}
export interface CalendarEventBadge {
eventId: number;
badgeId: number;
}

View File

@ -0,0 +1,63 @@
module.exports.up = function (db) {
db.prepare(
`
create table "CalendarEvent" (
"id" integer primary key,
"name" text not null,
"authorId" integer not null,
"description" text,
"discordUrl" text,
"bracketUrl" text,
"participantCount" integer,
foreign key ("authorId") references "User"("id") on delete restrict
) strict
`
).run();
db.prepare(
`
create table "CalendarEventDate" (
"eventId" integer primary key,
"startTime" integer not null,
foreign key ("eventId") references "CalendarEvent"("id") on delete cascade
) strict
`
).run();
db.prepare(
`
create table "CalendarEventWinner" (
"eventId" integer primary key,
"teamName" text not null,
"placement" integer not null,
"userId" integer,
"name" text,
foreign key ("eventId") references "CalendarEvent"("id") on delete cascade,
foreign key ("userId") references "User"("id") on delete cascade
) strict
`
).run();
db.prepare(
`
create table "CalendarEventBadge" (
"eventId" integer primary key,
"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();
};
module.exports.down = function (db) {
for (const table of [
"CalendarEventDate",
"CalendarEventWinner",
"CalendarEventBadge",
"CalendarEvent",
]) {
db.prepare(`drop table "${table}"`).run();
}
};