diff --git a/app/db/types.ts b/app/db/types.ts index 8b975a3c9..5e8d92282 100644 --- a/app/db/types.ts +++ b/app/db/types.ts @@ -51,3 +51,18 @@ export interface PlusTier { userId: number; tier: number; } + +export interface Badge { + code: string; + displayName: string; +} + +export interface BadgeOwner { + code: string; + userId: number; +} + +export interface BadgeManager { + code: string; + userId: number; +} diff --git a/migrations/001-badges.js b/migrations/001-badges.js new file mode 100644 index 000000000..d9f663630 --- /dev/null +++ b/migrations/001-badges.js @@ -0,0 +1,190 @@ +module.exports.up = function (db) { + db.prepare( + ` + create table "Badge" ( + "code" text not null primary key, + "displayName" text not null + ) strict + ` + ).run(); + + for (const badge of initialBadgesForDb()) { + db.prepare( + `insert into "Badge" ("code", "displayName") values ($code, $displayName)` + ).run(badge); + } + + db.prepare( + ` + create table "BadgeOwner" ( + "code" text not null, + "userId" integer not null + ) strict + ` + ).run(); + + db.prepare( + ` + create table "BadgeManager" ( + "code" text not null, + "userId" integer not null, + unique("code", "userId") on conflict rollback + ) strict + ` + ).run(); +}; + +module.exports.down = function (db) { + db.prepare(`drop table "Badge"`).run(); + db.prepare(`drop table "BadgeOwner"`).run(); + db.prepare(`drop table "BadgeManager"`).run(); +}; + +function initialBadgesForDb() { + return [ + { + code: "sundae", + displayName: "4v4 Sundaes", + }, + { + code: "zones", + displayName: "Dapple SZ Speedladder", + }, + { + code: "ebtv", + displayName: "EBTV League", + }, + { + code: "girls", + displayName: "Girls Duo Cup", + }, + { + code: "idtga", + displayName: "It's Dangerous to go Alone", + }, + { + code: "beta_top1", + displayName: "Beta's Events", + }, + { + code: "beta_top2", + displayName: "Launch Day", + }, + { + code: "beta_top3", + displayName: "Launch Day", + }, + { + code: "pair", + displayName: "League Rush (Pair)", + }, + { + code: "quad", + displayName: "League Rush (Quad)", + }, + { + code: "lobster", + displayName: "Lobster Crossfire", + }, + { + code: "monday", + displayName: "Monday Afterparty", + }, + { + code: "pool1", + displayName: "Paddling Pool Weekly", + }, + { + code: "snapshot_gold", + displayName: "Snapshot (Alpha)", + }, + { + code: "snapshot_silver", + displayName: "Snapshot (Beta)", + }, + { + code: "snapshot_bronze", + displayName: "Snapshot (Gamma)", + }, + { + code: "superjump_alpha", + displayName: "Superjump", + }, + { + code: "superjump_beta", + displayName: "Superjump (Beta bracket)", + }, + { + code: "superjump_gamma", + displayName: "Superjump (Gamma bracket)", + }, + { + code: "toni_kensa", + displayName: "Toni Kensa Cup", + }, + { + code: "pool2", + displayName: "Golden Paddling Pool Event", + }, + { + code: "lutipink", + displayName: "LUTI Season 12 (Div X)", + }, + { + code: "lutired", + displayName: "LUTI Season 12 (Div 1)", + }, + { + code: "lutiorange", + displayName: "LUTI Season 12 (Div 2)", + }, + { + code: "lutiyellow", + displayName: "LUTI Season 12 (Div 3)", + }, + { + code: "lutilimegreen", + displayName: "LUTI Season 12 (Div 4)", + }, + { + code: "lutigreen", + displayName: "LUTI Season 12 (Div 5)", + }, + { + code: "lutiblue", + displayName: "LUTI Season 12 (Div 6)", + }, + { + code: "lutipurple", + displayName: "LUTI Season 12 (Div 7)", + }, + { + code: "lutitan", + displayName: "LUTI Season 12 (Div 8)", + }, + { + code: "lutitan2", + displayName: "LUTI Season 12 (Div 9)", + }, + { + code: "tidal_tuesdays", + displayName: "Tidal Tuesdays", + }, + { + code: "squid_junction", + displayName: "Squid Junction", + }, + { + code: "triton", + displayName: "Triton-Cup", + }, + { + code: "cake", + displayName: "Yay's SUPER AWESOME Birthday Bash!", + }, + { + code: "20xx", + displayName: "a 20XX Series tournament", + }, + ]; +} diff --git a/scripts/badges.mjs b/scripts/badges.mjs new file mode 100644 index 000000000..f4d2fc2a7 --- /dev/null +++ b/scripts/badges.mjs @@ -0,0 +1,229 @@ +// meant to be used in browser console + +const regularTournamentBadges = [ + { + badgeName: "sundae", + name: "4v4 Sundaes", + winnerDiscordIds: + "147036636608331779,97804913941172224,260602342309756940,891048899626795078,105390854063034368,109804061900992512,151192098962407424,99673720477474816,304382991331753987,164748705713356800,199763761026826241,105390854063034368,260602342309756940,97804913941172224,107263003031764992,94823756299505664,753593759492472844,753593759492472844,357960147399606295,330599850049798146,249257371182956544,358597619972440065,92909500100513792,92909500100513792,265816182374924298,265816182374924298,99931397451419648,99931397451419648,94211878636486656,109804061900992512,397208511848644619,491067479452549143,338530058572660737,209732307324633098,203704363141562368,720884483431202857,383774228937179136,186543007850299393,117677626012860421,448493571419537428,140911330059091969,431923570063441922,396849768799797259,186624589218971649,226484699537735683,109804061900992512,220344765240180738,79237403620945920,81154649993785344,265816182374924298,249466317554450432,122759401613426689,109804061900992512,147036636608331779,266716798945067010,151192098962407424,97804913941172224,397097842411569152,265816182374924298,92909500100513792,97804913941172224,397097842411569152,92909500100513792,265816182374924298,97804913941172224,147036636608331779,260602342309756940,107263003031764992,114889120379043843,266716798945067010,431923570063441922,358780871375060993", + }, + { + badgeName: "zones", + name: "Dapple SZ Speedladder", + altNames: ["Dapple SZ Ladder"], + winnerDiscordIds: + "393411373289177098,300073469503340546,554124226915860507,417489824589676548,403345464138661888,343375632819814400,726389792237027370,570288931321413653,716227192060641281,381129695980290050,448493571419537428,207150814735761408,339041223736164354,335275129552502794,266716798945067010,244246880442122250,431923570063441922,358780871375060993", + }, + { + badgeName: "ebtv", + name: "EBTV League", + winnerDiscordIds: + "141945784600887296,110023598911008768,128928922837450753,132189238744711168,133616977968103424,117677626012860421,117677626012860421,117677626012860421,117677626012860421,789651293756457010,789651293756457010,789651293756457010,789651293756457010,789651293756457010,789651293756457010,789651293756457010,789651293756457010,789651293756457010,789651293756457010,94941539632943104,94941539632943104,94941539632943104,94941539632943104,94941539632943104,396418169012617219,396418169012617219,396418169012617219,396418169012617219,396418169012617219,396418169012617219,396418169012617219,396418169012617219,138034502692765696,135674881869086721,144123041876672512,136989307780071424,245195310593212417,245195310593212417,245195310593212417,245195310593212417,92909500100513792,92909500100513792,92909500100513792,92909500100513792,92909500100513792,92909500100513792,265816182374924298,265816182374924298,265816182374924298,249466317554450432,323496682920738817,353199183345352704,164734950686326784,133616977968103424,322388077157023754", + hueRotateAngle: -76, + }, + { + badgeName: "girls", + name: "Girls Duo Cup", + winnerDiscordIds: + "266716798945067010,277576057912033281,315610730294411264,222416939291639808,266716798945067010,277576057912033281,315610730294411264,222416939291639808,114889120379043843,315610730294411264,266716798945067010,266716798945067010,315610730294411264,114889120379043843,852624076391448646,266716798945067010,315610730294411264,114889120379043843,852624076391448646", + }, + { + badgeName: "idtga", + name: "It's Dangerous to go Alone", + winnerDiscordIds: + "273188925189914628,87607171906293760,141632285643505665,526165570404483084,434714136379785216,273966766072266753,530157083094548490,310410531397828608,115256973347389447,370674066002280448,789220558583758888,302988264611119116,432693772837584897,326532846959329280,195958768972857344,587579961334824971,662037721002410004,293724135157399553,607499166620450828,910669150056222741,783482525121118209,339429839318810635,167654092901056513,676674552394416138,455134785048674325,683727216906862713,111300887023980544,195958768972857344", + }, + { + badgeName: "beta_top1", + name: "Beta's Events", + winnerDiscordIds: + "173365902035779584,105390854063034368,97804913941172224,147036636608331779,115572122482507782", + description: "Awarded for placing first in one of Beta's Events", + }, + { + badgeName: "beta_top2", + name: "Launch Day", + winnerDiscordIds: + "97804913941172224,147036636608331779,260602342309756940,107263003031764992,114889120379043843,431923570063441922,266716798945067010,244246880442122250,358780871375060993", + description: "Awarded for placing second in one of Beta's Events", + }, + { + badgeName: "beta_top3", + name: "Launch Day", + winnerDiscordIds: + "151192098962407424,105390854063034368,115572122482507782,109804061900992512,207150814735761408,245195310593212417,338470854339854346", + description: "Awarded for placing third in one of Beta's Events", + }, + { + badgeName: "pair", + name: "League Rush (Pair)", + altNames: ["League Rush!!"], + winnerDiscordIds: + "453753483427053568,398818695608270849,776911543216111648,393908122525368331,498710435915104266,397208511848644619,675299701117157377,416992682381148160,403345464138661888,394214426754154497,434714136379785216,460742410876485633,158163424004538369,397208511848644619,532672071055179786,448493571419537428,397208511848644619", + }, + { + badgeName: "quad", + name: "League Rush (Quad)", + altNames: ["League Rush!!"], + winnerDiscordIds: + "105390854063034368,151192098962407424,147036636608331779,260602342309756940,115572122482507782,109804061900992512,169184589200359424,339041223736164354,388778540545474570,219877773605470211,448493571419537428,397208511848644619,209732307324633098,338530058572660737,186543007850299393,133616977968103424,433708069654888448,219877773605470211,448493571419537428,105390854063034368,105390854063034368,105390854063034368,151192098962407424,151192098962407424,151192098962407424,115572122482507782,115572122482507782,460742410876485633,413801409025146900,434714136379785216,325891192636047361,866691404424413224,453360556762595328,213761245734502400,397208511848644619,397208511848644619,158163424004538369,244246880442122250,133774291358449664,672584711289307149,443616724085112842,310622799683256321,264591659776344064", + }, + { + badgeName: "lobster", + name: "Lobster Crossfire", + winnerDiscordIds: + "105390854063034368,109804061900992512,151192098962407424,260602342309756940,266716798945067010,244246880442122250,431923570063441922,114889120379043843,99673720477474816,109962465965559808,97804913941172224,107263003031764992,115572122482507782,670112561068507136,105390854063034368,151192098962407424,260602342309756940,109804061900992512,244246880442122250,358780871375060993,431923570063441922,383774228937179136,114889120379043843,266716798945067010,244246880442122250,383774228937179136,358780871375060993", + }, + { + badgeName: "monday", + name: "Monday Afterparty", + winnerDiscordIds: + "189021480527331328,397097842411569152,274245305363464192,245195310593212417,427319047785545759,186543007850299393,125301875863060480,328641373655924739,274245305363464192,143918846535925761,147036636608331779,260602342309756940,105390854063034368,189125119937871872,516036546370207764,164734950686326784,133616977968103424,323496682920738817,353199183345352704,207150814735761408,273503438124613632,381129695980290050,344096615033995266,265816182374924298,427221050330316814,724313854536056862,161173517163954176,441232639358402560,108951379095072768,160778600834924544,377510502139691018,338470854339854346,182892865695907840,331170488602591242,310359084387794946,331170488602591242,164734950686326784,133616977968103424,353199183345352704,323496682920738817,675752882682724352,403598012888252426,250689440056475648,410342922253500416,164748705713356800,619566583970529314,448493571419537428,250689440056475648,784695580920119297,393411373289177098,350225756082798593,274693882221166597,436528474807730176,108951379095072768,441232639358402560,477555922026102818,412203683024076800,92909500100513792,99931397451419648,81154649993785344,439066642920505344,388778540545474570,379381005989052427,322793789532143618,365669143413915648,239803554569650177,184415457078411265,334452189185572875,177206374260932609,319245965498384387,547411365921423361,320297534759370752,205640541579247616,206476405201043458,411621214994432000,79237403620945920,81154649993785344,92909500100513792,79894491800014848,397208511848644619,158163424004538369,448493571419537428,266716798945067010,212673938474401796,114889120379043843,266716798945067010,244246880442122250,108951379095072768,441232639358402560,195346111387533312,505266229548810250,397208511848644619,448493571419537428,358597619972440065,228340094308712449,206476405201043458,205640541579247616,547411365921423361,320297534759370752,904831443069448273,658636974952939530,881033716644872244,225610988576047105", + }, + { + badgeName: "pool1", + name: "Paddling Pool Weekly", + winnerDiscordIds: + "205640541579247616,205640541579247616,206476405201043458,320297534759370752,547411365921423361,206476405201043458,108951379095072768,448493571419537428,158163424004538369,388079291356807187,619566583970529314,299974788427022336,305453601474609153,400325796386045953,672584711289307149,388778540545474570,357960147399606295,477555922026102818,428618743153688576,291263309762789376,304382991331753987,226462670298152960,528043224124620802,436528474807730176,453753483427053568,226462670298152960,528043224124620802,436528474807730176,453753483427053568,409713830701170689,639208208233136141,274429786456326144,605333997106495499,732054863189508206,561954805384478730,275462618414841856,294326973558423552,200066011616116737,173238005761441802,673240733691412490,457473830022152212,737999569597497365,398237251894509568,302851443184893952,694691665008394312,340498680110907404,149504203654430720,392316684381323265,403962004739588096,304337232808902668,406517090938388492,310359084387794946,453753483427053568,672584711289307149,621119972873207840,699754496745799781,530584907680841742,672584711289307149,732054863189508206,650447994839105576,732054863189508206,275462618414841856,601332262046531588,732054863189508206,288002715085307906,650447994839105576,275462618414841856,275462618414841856,732054863189508206,392780007350730764,323223258159906818,306139598721908738,273418210051751936,158163424004538369,330044344738381834,414435389198041089,90117027854823424,239803554569650177,159037817320636417,207480800210452481,322793789532143618,304337232808902668,406517090938388492,241892796066299905,403962004739588096,412203683024076800,207150814735761408,164734950686326784,353199183345352704,323496682920738817,282291151707439104,412203683024076800,236913830276497408,529148867267264533,164734950686326784,182892865695907840,381129695980290050,347855082185949184,217807481508724747,275462618414841856,217807481508724747,453360556762595328,396849768799797259,228235320854970369,431923570063441922,368979690523852800,344096615033995266,149513048816615424,140911330059091969,273503438124613632,344096615033995266,114889120379043843,140092601263980544,212673938474401796,254468316695887872,477555922026102818,414435389198041089,396849768799797259,265548501826535426,158163424004538369,247024165436129281,526883393485406208,340583035542175744,330044344738381834,181366773306753024,235819592851652608,161173670729875456,529148867267264533,140092601263980544,114889120379043843,427221050330316814,186543007850299393,140092601263980544,368979690523852800,251943117622738944,144252821288517632,358306343679033359,140092601263980544,368979690523852800,251943117622738944,144252821288517632,171819164594470922,95586191725826048,228235320854970369,135135051275829249,259526563324755968,307260321247264778,379381005989052427,383774228937179136,203704363141562368,397208511848644619,338530058572660737,396876576446218273,215697775814246401,151192098962407424,110449827258589184,394762516221132811,448924033204092928,274429786456326144,605333997106495499,353558861589774337,344654362938834944,439066642920505344,283610717217619968,394889445968576522,377510502139691018,313407177236807680,290623306997039105,331104768204341258,212673938474401796,547281071448915991,266716798945067010,397208511848644619,338530058572660737,396876576446218273,516036546370207764,194700153553289216,154775194198736898,260602342309756940,151192098962407424,127989645521715200,79237403620945920,438794820287463425,356199654721060876,244246880442122250,547281071448915991,203704363141562368,601212946420334635,427319047785545759,110023598911008768,438794820287463425,209858231584030721,260602342309756940,209858231584030721,390997871886991365,169294854453460992,241892796066299905,110023598911008768,132189238744711168,403962004739588096,377510502139691018,154775194198736898,177206374260932609,352835824976658432,209858231584030721,340732701109911552,244295477917515776,390997871886991365,388778540545474570,219877773605470211,414435389198041089,225272786904416256,254943418755710976,162277584384557057,103017450437632000,266649942926426112,150650309541101568,323223258159906818,358780871375060993,273418210051751936,186543007850299393,456602429903994892,232451114593812480,448924033204092928,353558861589774337,182892865695907840,275213752025088000,159037817320636417,160747727154577408,273846298090799105,371979303665270786,247024165436129281,211476740512546828,211476740512546828,340583035542175744,323223258159906818,273418210051751936,396403521601404930,376284430521860107,161173517163954176,275213752025088000,160747727154577408,273846298090799105,398485979226177546,388778540545474570,414435389198041089,110427482854830080,273846298090799105,398485979226177546,275213752025088000,160747727154577408,150650309541101568,265449198239875072,310359084387794946,274245305363464192,371979303665270786,178489224192851969,178489224192851969,274245305363464192,274245305363464192,154775194198736898,154775194198736898,212673938474401796,212673938474401796,169294854453460992,150650309541101568,232197030087360512,110427482854830080,162277584384557057,178489224192851969,169294854453460992,150650309541101568,169294854453460992,265449198239875072,150650309541101568,361089198742175745,374572920594235392,338470854339854346,169294854453460992,153544537824821248,254943418755710976,150650309541101568,374572920594235392,265449198239875072,265449198239875072,338470854339854346,265449198239875072,283610717217619968,207480800210452481,338470854339854346,403161067389452288,127835267129147392,165280702177345537,401744323156115457,335465485942652933,254254783710363648,165280702177345537,264452174552104980,343758521663225859,212673938474401796,165280702177345537,526883393485406208,247024165436129281,799622791014907924,441232639358402560,240879045359828993,304382991331753987,339041223736164354,207150814735761408,199763761026826241,361742382963621889,304382991331753987,250689440056475648,273503438124613632,403598012888252426,304382991331753987,477555922026102818,273503438124613632,403598012888252426,249257371182956544,207150814735761408,360986777147670529,413497313626030110,285411952338141185,397208511848644619,453753483427053568,360986777147670529,199558778381795330,477555922026102818,357960147399606295,455076155679178782,433708069654888448,619566583970529314,411621214994432000,497147537526882327,243834840615616513,358623826721898496,199558778381795330,881033716644872244,866691404424413224,381955826375458818,212673938474401796,272500470453370882,228235320854970369,335275129552502794,448493571419537428,282291151707439104,658636974952939530,273503438124613632,226462670298152960,482984260131749889,528043224124620802,420714470801670145,477555922026102818,299974788427022336,273846298090799105,283645464572723201,433708069654888448,236913830276497408,205640541579247616,547411365921423361,320297534759370752,206476405201043458,411621214994432000,619566583970529314,412203683024076800,601122578085707787,881033716644872244,661328509712728066,409713830701170689,273503438124613632,658636974952939530,601122578085707787,205640541579247616,206476405201043458,320297534759370752,547411365921423361,533942356978827265,482984260131749889,453753483427053568,591724536110514186,295283215462170624,420714470801670145,661328509712728066,409713830701170689,533942356978827265,658636974952939530,724802588838723654,881033716644872244,265548501826535426,866691404424413224,881033716644872244,358780871375060993,448493571419537428,601122578085707787,304382991331753987,282291151707439104,658636974952939530,205640541579247616,320297534759370752,206476405201043458,406517090938388492,304382991331753987,591724536110514186,504969820530278401,866691404424413224,205640541579247616,547411365921423361,406517090938388492,206476405201043458,320297534759370752,299974788427022336,866691404424413224,482984260131749889,300073469503340546,482984260131749889,435985822165106717,530584907680841742,866691404424413224,433708069654888448,142363033832914944,601122578085707787,282291151707439104,402888557309460500,416992682381148160,426430600287879189,675299701117157377,412203683024076800,205640541579247616,206476405201043458,320297534759370752,547411365921423361,533261013139718165,726389792237027370,206476405201043458,436528474807730176,409713830701170689,661328509712728066,724802588838723654,404640285612834817,319135856403283969,866691404424413224,591724536110514186,412203683024076800,852624076391448646,619566583970529314,299974788427022336,945541708794454057,494560762920960001,661328509712728066,409713830701170689,320297534759370752,273503438124613632,601122578085707787,482984260131749889,505266229548810250,528043224124620802,207150814735761408,323496682920738817,353199183345352704,152796728247058433,701896681549070448,811971184315990037,409713830701170689,601122578085707787,661328509712728066,357960147399606295,433708069654888448,219877773605470211,477555922026102818,619566583970529314,412203683024076800,299974788427022336,236913830276497408,283645464572723201,339041223736164354,265548501826535426,377510502139691018,403598012888252426,205640541579247616,439066642920505344,896871061830897684", + }, + { + badgeName: "snapshot_gold", + name: "Snapshot (Alpha)", + winnerDiscordIds: + "239803554569650177,290623306997039105,322793789532143618,118075064070438916", + }, + { + badgeName: "snapshot_silver", + name: "Snapshot (Beta)", + winnerDiscordIds: + "412203683024076800,403598012888252426,250689440056475648,273503438124613632,304382991331753987", + }, + { + badgeName: "snapshot_bronze", + name: "Snapshot (Gamma)", + winnerDiscordIds: + "453094947298476032,275399433083158528,216707292274360333,151144919136862210,393247913003712523,205925854654627840", + }, + { + badgeName: "superjump_alpha", + name: "Superjump", + winnerDiscordIds: + "173365902035779584,394127497824043010,502174185154674688", + }, + { + badgeName: "superjump_beta", + name: "Superjump (Beta bracket)", + winnerDiscordIds: + "448493571419537428,505266229548810250,118304894619877380,195346111387533312,699754496745799781", + }, + { + badgeName: "superjump_gamma", + name: "Superjump (Gamma bracket)", + winnerDiscordIds: + "485270979686432769,317203945363734528,412754879933841409", + }, + { + badgeName: "toni_kensa", + name: "Toni Kensa Cup", + winnerDiscordIds: + "500104986584416266,758751963860303884,603283828802453556,331239483423064065,681661133584859186,603283828802453556,500104986584416266,349606301527048213,349743471457992714,758751963860303884", + }, + { + badgeName: "pool2", + name: "Golden Paddling Pool Event", + winnerDiscordIds: + "92909500100513792,568115745314045953,712759282902499339,791431129928302672,381129695980290050,804048986469957633,79237403620945920,601212946420334635,209858231584030721,165280702177345537,269304206588903424,211476740512546828,526081844043579393,125702580490731521,171819164594470922,172166054217383936,390997871886991365,241892796066299905,406517090938388492,282291151707439104,304337232808902668,266716798945067010,114889120379043843,212673938474401796,413497313626030110,343375632819814400,619566583970529314,661328509712728066,726389792237027370,570288931321413653,212673938474401796,360986777147670529,266716798945067010,114889120379043843,133616977968103424,207150814735761408,265816182374924298,412203683024076800,148765153788297216", + }, + { + badgeName: "lutipink", + name: "LUTI Season 12 (Div X)", + winnerDiscordIds: + "105390854063034368,147036636608331779,260602342309756940", + }, + { + badgeName: "lutired", + name: "LUTI Season 12 (Div 1)", + winnerDiscordIds: + "443616724085112842,975195560724275240,290623306997039105,228235320854970369,280029594327711754", + }, + { + badgeName: "lutiorange", + name: "LUTI Season 12 (Div 2)", + winnerDiscordIds: "", + }, + { + badgeName: "lutiyellow", + name: "LUTI Season 12 (Div 3)", + winnerDiscordIds: + "97393875760451584,396483494018154496,454478346667950083,144680177354539008", + }, + { + badgeName: "lutilimegreen", + name: "LUTI Season 12 (Div 4)", + winnerDiscordIds: + "287561416267923456,236782011753299968,717991398137135114,417040760194465803", + }, + { + badgeName: "lutigreen", + name: "LUTI Season 12 (Div 5)", + winnerDiscordIds: + "158733178713014273,283480526336163840,315362169422348299,404846047353896960,454390267072479265", + }, + { + badgeName: "lutiblue", + name: "LUTI Season 12 (Div 6)", + winnerDiscordIds: + "334948440557617153,229065870939389952,294968857582501898,601108041097674752,159881946443284480", + }, + { + badgeName: "lutipurple", + name: "LUTI Season 12 (Div 7)", + winnerDiscordIds: + "320832625985978369,419484141105709066,376757227522097153,562637304057823235", + }, + { + badgeName: "lutitan", + name: "LUTI Season 12 (Div 8)", + winnerDiscordIds: + "283557982078369792,743970109261086822,783425500739010621,589789457272799233,432990721495138304,327811945707339776", + }, + { + badgeName: "lutitan2", + name: "LUTI Season 12 (Div 9)", + winnerDiscordIds: "", + }, + { + badgeName: "tidal_tuesdays", + name: "Tidal Tuesdays", + winnerDiscordIds: + "226462670298152960,453753483427053568,214972552387231744,420714470801670145,347036855453220865,319245965498384387,452100472656887848,779963298564276224,226462670298152960,482984260131749889,453753483427053568,477555922026102818,360986777147670529,779963298564276224,482984260131749889,445086598107889684,388778540545474570,379381005989052427,239803554569650177,322793789532143618,295283215462170624,295283215462170624,477555922026102818,304382991331753987,273503438124613632,453753483427053568", + }, + { + badgeName: "squid_junction", + name: "Squid Junction", + winnerDiscordIds: + "322793789532143618,388778540545474570,332893262966685696,239803554569650177,462785588194443266,445086598107889684,452100472656887848,718532507909357598,367391033035849729,313407177236807680,448493571419537428,257318683423014913,441376533077164043,249257371182956544,342838558564024322,357960147399606295,259526563324755968,437687489340112926,445086598107889684,600886777129205770,600886777129205770,482984260131749889,528043224124620802,453753483427053568,185903638034644992,392780007350730764,502660658953846795,709458397237477387,465254297521881098,396849768799797259,672934395891417098,397208511848644619,328319613140074507,467876387122970635,435985822165106717,480391723948965912,866691404424413224,482984260131749889,420714470801670145,453753483427053568,226462670298152960,212673938474401796,718532507909357598,383774228937179136,244246880442122250,480391723948965912,435985822165106717,591724536110514186,866691404424413224,300073469503340546,420714470801670145,453753483427053568,482984260131749889,226462670298152960,295283215462170624,273846298090799105,412203683024076800,339041223736164354,236913830276497408,186624589218971649,304382991331753987,401870080855506947,300073469503340546,448493571419537428,138866309655035904,184791233972011008,454478346667950083,398588322068299787,454478346667950083,97393875760451584,283726112540983309,719693199681126442,316256970254581771,738580607071944775,173238005761441802,673240733691412490,138866309655035904,184791233972011008,398588322068299787,274298949039292416,138866309655035904,184791233972011008,398588322068299787,274298949039292416,454478346667950083,852624076391448646,945541708794454057,397208511848644619,285411952338141185,333058884950294528,601332262046531588,568189471955222559,247818300187213834,397208511848644619,158163424004538369,448493571419537428,266716798945067010,482984260131749889", + }, + { + badgeName: "triton", + name: "Triton-Cup", + winnerDiscordIds: + "277760673436401664,317021572470669312,347127232839417856,149504203654430720,207150814735761408,304337232808902668,403962004739588096,381129695980290050,158163424004538369,330044344738381834,526883393485406208,340583035542175744,105390854063034368,151192098962407424,109804061900992512,115572122482507782,377510502139691018,265816182374924298,323496682920738817,182892865695907840,241892796066299905,304337232808902668,406517090938388492,403962004739588096,114889120379043843,173365902035779584,186543007850299393,266716798945067010,114889120379043843,212673938474401796,266716798945067010,244246880442122250,448493571419537428,358597619972440065,505266229548810250,619566583970529314,477555922026102818,433708069654888448,368979690523852800,358597619972440065,177206374260932609,358597619972440065,158163424004538369,448493571419537428,397208511848644619,658636974952939530,339041223736164354,273846298090799105,619566583970529314,497147537526882327,283645464572723201,249257371182956544,881033716644872244,528043224124620802,396849768799797259,125301875863060480,412203683024076800,619566583970529314,328641373655924739,672584711289307149,144680177354539008,621119972873207840,474303503813050378,601122578085707787,273503438124613632,866691404424413224,300073469503340546,601122578085707787,412203683024076800,392780007350730764,282291151707439104,320297534759370752,206476405201043458,547411365921423361,406517090938388492,205640541579247616,404640285612834817,601122578085707787,282291151707439104,265816182374924298,448493571419537428,282291151707439104,526429851922726914,601122578085707787,265816182374924298,92909500100513792,81154649993785344,619566583970529314,494560762920960001,533261013139718165,206476405201043458,619566583970529314,601122578085707787,448493571419537428,81154649993785344,300073469503340546,661328509712728066,265816182374924298,207150814735761408,304337232808902668,601122578085707787,630418528981221396,133616977968103424,323496682920738817,152796728247058433,353199183345352704,433708069654888448,219877773605470211,945541708794454057,357960147399606295", + }, + { + badgeName: "cake", + name: "Yay's SUPER AWESOME Birthday Bash!", + winnerDiscordIds: + "260602342309756940,105390854063034368,97804913941172224,107263003031764992", + }, + { + badgeName: "20xx", + name: "a 20XX Series tournament", + winnerDiscordIds: "173365902035779584", + }, +]; + +const badgeDbEntries = regularTournamentBadges.map((b) => ({ + code: b.badgeName, + displayName: b.name, +}));