sendou.ink/migrations/005-patrons.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

49 lines
1.4 KiB
JavaScript

export function up(db) {
db.prepare(`alter table "User" add column "patronTier" integer`).run();
db.prepare(`alter table "User" add column "patronSince" integer`).run();
db.prepare(
`insert into "Badge" ("code", "displayName") values ('patreon', 'Supporter')`,
).run();
db.prepare(
`insert into "Badge" ("code", "displayName") values ('patreon_plus', 'Supporter+')`,
).run();
db.prepare(`alter table "BadgeOwner" rename to "TournamentBadgeOwner"`).run();
const patreonBadgeId = db
.prepare(`select "id" from "Badge" where "code" = 'patreon'`)
.get().id;
const patreonPlusBadgeId = db
.prepare(`select "id" from "Badge" where "code" = 'patreon_plus'`)
.get().id;
db.prepare(
`
create view "BadgeOwner" as
select "userId", "badgeId" from "TournamentBadgeOwner"
union all
select
"id" as "userId",
case
when "patronTier" = 2 then ${patreonBadgeId}
else ${patreonPlusBadgeId}
end "badgeId"
from "User"
where "patronTier" > 1
`,
).run();
}
export function down(db) {
db.prepare(`drop view "BadgeOwner"`).run();
db.prepare(`alter table "User" drop column "patronTier"`).run();
db.prepare(`alter table "User" drop column "patronSince"`).run();
db.prepare(
`delete from "Badge" where "code" in ('patreon_plus', 'patreon')`,
).run();
db.prepare(`alter table "TournamentBadgeOwner" rename to "BadgeOwner"`).run();
}