diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 000000000..2cca7dc9e --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,5 @@ +{ + "enabledPlugins": { + "code-review@claude-plugins-official": true + } +} diff --git a/app/components/Draggable.tsx b/app/components/Draggable.tsx deleted file mode 100644 index 6cf427563..000000000 --- a/app/components/Draggable.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { useSortable } from "@dnd-kit/sortable"; -import { CSS } from "@dnd-kit/utilities"; -import type * as React from "react"; - -export function Draggable({ - id, - disabled, - liClassName, - children, - testId, -}: { - id: number; - disabled: boolean; - liClassName: string; - children: React.ReactNode; - testId?: string; -}) { - const { attributes, listeners, setNodeRef, transform, transition } = - useSortable({ id, disabled }); - - const style = { - transform: CSS.Transform.toString(transform), - transition, - }; - - return ( -
  • - {children} -
  • - ); -} diff --git a/app/db/seed/index.ts b/app/db/seed/index.ts index fc76be34a..04571cc7d 100644 --- a/app/db/seed/index.ts +++ b/app/db/seed/index.ts @@ -180,6 +180,7 @@ const basicSeeds = (variation?: SeedVariation | null) => [ userProfiles, userMapModePreferences, userQWeaponPool, + seedingSkills, lastMonthsVoting, syncPlusTiers, lastMonthSuggestions, @@ -298,6 +299,7 @@ function wipeDB() { "TournamentBadgeOwner", "BadgeManager", "TournamentOrganization", + "SeedingSkill", ]; for (const table of tablesToDelete) { @@ -545,6 +547,38 @@ async function userQWeaponPool() { } } +function seedingSkills() { + const users = sql.prepare('SELECT id FROM "User" LIMIT 500').all() as { + id: number; + }[]; + + for (const { id: userId } of users) { + if (faker.number.float() < 0.7) { + const mu = faker.number.float({ min: 22, max: 45 }); + const sigma = faker.number.float({ min: 4, max: 8 }); + const ordinal = mu - 3 * sigma; + + sql + .prepare( + `INSERT INTO "SeedingSkill" ("userId", "type", "mu", "sigma", "ordinal") VALUES (?, 'RANKED', ?, ?, ?)`, + ) + .run(userId, mu, sigma, ordinal); + } + + if (faker.number.float() < 0.5) { + const mu = faker.number.float({ min: 22, max: 42 }); + const sigma = faker.number.float({ min: 4, max: 8 }); + const ordinal = mu - 3 * sigma; + + sql + .prepare( + `INSERT INTO "SeedingSkill" ("userId", "type", "mu", "sigma", "ordinal") VALUES (?, 'UNRANKED', ?, ?, ?)`, + ) + .run(userId, mu, sigma, ordinal); + } + } +} + function fakeUser(usedNames: Set) { return () => ({ discordAvatar: null, @@ -1349,13 +1383,15 @@ function calendarEventWithToToolsTeams( "name", "createdAt", "tournamentId", - "inviteCode" + "inviteCode", + "seed" ) values ( $id, $name, $createdAt, $tournamentId, - $inviteCode + $inviteCode, + $seed ) `, ) @@ -1365,6 +1401,7 @@ function calendarEventWithToToolsTeams( createdAt: dateToDatabaseTimestamp(new Date()), tournamentId, inviteCode: shortNanoid(), + seed: id, }); // in PICNIC & PP Chimera is not checked in + in LUTI no check-ins at all diff --git a/app/db/tables.ts b/app/db/tables.ts index aa15ae605..93ef8c395 100644 --- a/app/db/tables.ts +++ b/app/db/tables.ts @@ -493,6 +493,16 @@ export interface Tournament { parentTournamentId: number | null; /** Is the tournament finalized meaning all the matches are played and TO has locked it making it read-only */ isFinalized: Generated; + /** Snapshot of teams and rosters when seeds were last saved. Used to detect NEW teams/players. */ + seedingSnapshot: JSONColumnTypeNullable; +} + +export interface SeedingSnapshot { + savedAt: number; + teams: Array<{ + teamId: number; + members: Array<{ userId: number; username: string }>; + }>; } export interface PreparedMaps { diff --git a/app/features/map-planner/components/Planner.tsx b/app/features/map-planner/components/Planner.tsx index 006429561..c10f462f0 100644 --- a/app/features/map-planner/components/Planner.tsx +++ b/app/features/map-planner/components/Planner.tsx @@ -3,6 +3,7 @@ import { DndContext, DragOverlay, PointerSensor, + TouchSensor, useDraggable, useSensor, useSensors, @@ -62,7 +63,15 @@ export default function Planner() { previewPath: string; } | null>(null); - const sensors = useSensors(useSensor(PointerSensor)); + const sensors = useSensors( + useSensor(PointerSensor), + useSensor(TouchSensor, { + activationConstraint: { + delay: 200, + tolerance: 5, + }, + }), + ); const handleMount = React.useCallback( (mountedEditor: Editor) => { diff --git a/app/features/map-planner/plans.css b/app/features/map-planner/plans.css index 0ecf4df73..1ea32cb87 100644 --- a/app/features/map-planner/plans.css +++ b/app/features/map-planner/plans.css @@ -189,6 +189,8 @@ img[src$="?outline=red"] { background: transparent; cursor: grab; touch-action: none; + user-select: none; + -webkit-user-select: none; } .plans__draggable-button:hover { diff --git a/app/features/tier-list-maker/components/DraggableItem.module.css b/app/features/tier-list-maker/components/DraggableItem.module.css index 8effea744..63c88faa1 100644 --- a/app/features/tier-list-maker/components/DraggableItem.module.css +++ b/app/features/tier-list-maker/components/DraggableItem.module.css @@ -1,4 +1,6 @@ .item { cursor: move; touch-action: none; + user-select: none; + -webkit-user-select: none; } diff --git a/app/features/tier-list-maker/routes/tier-list-maker.tsx b/app/features/tier-list-maker/routes/tier-list-maker.tsx index 6dbdcc31d..d85796c94 100644 --- a/app/features/tier-list-maker/routes/tier-list-maker.tsx +++ b/app/features/tier-list-maker/routes/tier-list-maker.tsx @@ -4,6 +4,7 @@ import { KeyboardSensor, PointerSensor, pointerWithin, + TouchSensor, useSensor, useSensors, } from "@dnd-kit/core"; @@ -114,6 +115,12 @@ function TierListMakerContent() { const sensors = useSensors( useSensor(PointerSensor), + useSensor(TouchSensor, { + activationConstraint: { + delay: 200, + tolerance: 5, + }, + }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates, }), diff --git a/app/features/tournament-bracket/actions/to.$id.brackets.server.ts b/app/features/tournament-bracket/actions/to.$id.brackets.server.ts index 7556e9fde..85dc1f6b4 100644 --- a/app/features/tournament-bracket/actions/to.$id.brackets.server.ts +++ b/app/features/tournament-bracket/actions/to.$id.brackets.server.ts @@ -18,7 +18,6 @@ import { import { assertUnreachable } from "~/utils/types"; import { idObject } from "~/utils/zod"; import type { PreparedMaps } from "../../../db/tables"; -import { updateTeamSeeds } from "../../tournament/queries/updateTeamSeeds.server"; import { getServerTournamentManager } from "../core/brackets-manager/manager.server"; import { roundMapsFromInput } from "../core/mapList.server"; import * as Swiss from "../core/Swiss"; @@ -113,19 +112,26 @@ export const action: ActionFunction = async ({ params, request }) => { bracket, }), ); - - // ensures autoseeding is disabled - const isAllSeedsPersisted = tournament.ctx.teams.every( - (team) => typeof team.seed === "number", - ); - if (!isAllSeedsPersisted) { - updateTeamSeeds({ - tournamentId: tournament.ctx.id, - teamIds: tournament.ctx.teams.map((team) => team.id), - }); - } })(); + // ensures autoseeding is disabled + const isAllSeedsPersisted = tournament.ctx.teams.every( + (team) => typeof team.seed === "number", + ); + if (!isAllSeedsPersisted) { + await TournamentRepository.updateTeamSeeds({ + tournamentId: tournament.ctx.id, + teamIds: tournament.ctx.teams.map((team) => team.id), + teamsWithMembers: tournament.ctx.teams.map((team) => ({ + teamId: team.id, + members: team.members.map((m) => ({ + userId: m.userId, + username: m.username, + })), + })), + }); + } + if (!tournament.isTest) { notify({ userIds: seeding.flatMap((tournamentTeamId) => diff --git a/app/features/tournament-bracket/core/Tournament.ts b/app/features/tournament-bracket/core/Tournament.ts index 2876c3475..6c12d2c4c 100644 --- a/app/features/tournament-bracket/core/Tournament.ts +++ b/app/features/tournament-bracket/core/Tournament.ts @@ -9,6 +9,7 @@ import { } from "~/features/tournament/tournament-constants"; import { modesIncluded, + sortTeamsBySeeding, tournamentIsRanked, } from "~/features/tournament/tournament-utils"; import type * as Progression from "~/features/tournament-bracket/core/Progression"; @@ -53,30 +54,10 @@ export class Tournament { simulateBrackets?: boolean; }) { const hasStarted = data.stage.length > 0; + const minMembersPerTeam = ctx.settings.minMembersPerTeam ?? 4; - const teamsInSeedOrder = ctx.teams.sort((a, b) => { - if (a.startingBracketIdx !== b.startingBracketIdx) { - return (a.startingBracketIdx ?? 0) - (b.startingBracketIdx ?? 0); - } + const teamsInSeedOrder = sortTeamsBySeeding(ctx.teams, minMembersPerTeam); - if (a.seed && b.seed) { - return a.seed - b.seed; - } - - if (a.seed && !b.seed) { - return -1; - } - - if (!a.seed && b.seed) { - return 1; - } - - return this.compareUnseededTeams( - a, - b, - ctx.settings.minMembersPerTeam ?? 4, - ); - }); this.simulateBrackets = simulateBrackets; this.ctx = { ...ctx, @@ -90,37 +71,6 @@ export class Tournament { this.initBrackets(data); } - private compareUnseededTeams( - a: TournamentData["ctx"]["teams"][number], - b: TournamentData["ctx"]["teams"][number], - minMembersPerTeam: number, - ) { - const aIsFull = a.members.length >= minMembersPerTeam; - const bIsFull = b.members.length >= minMembersPerTeam; - - if (aIsFull && !bIsFull) { - return -1; - } - - if (!aIsFull && bIsFull) { - return 1; - } - - if (a.avgSeedingSkillOrdinal && b.avgSeedingSkillOrdinal) { - return b.avgSeedingSkillOrdinal - a.avgSeedingSkillOrdinal; - } - - if (a.avgSeedingSkillOrdinal && !b.avgSeedingSkillOrdinal) { - return -1; - } - - if (!a.avgSeedingSkillOrdinal && b.avgSeedingSkillOrdinal) { - return 1; - } - - return a.createdAt - b.createdAt; - } - private initBrackets(data: TournamentManagerDataSet) { for (const [ bracketIdx, diff --git a/app/features/tournament-bracket/core/tests/mocks-li.ts b/app/features/tournament-bracket/core/tests/mocks-li.ts index 24cc0c777..a05e6f5c5 100644 --- a/app/features/tournament-bracket/core/tests/mocks-li.ts +++ b/app/features/tournament-bracket/core/tests/mocks-li.ts @@ -6911,6 +6911,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ ], lockedMatches: [], }, + seedingSnapshot: null, mapPickingStyle: "TO", rules: "# Important Notices\n\nEach team's captain must be in the Inking Performance Labs Discord. Before registering, join the discord here, and then get the Low Ink role using the Channels & Roles feature.\n\nRegistration for Low Ink closes 17 hours prior to the event starting which is 8 PM ET (day before) (5 PM PT (day before), 1 AM GMT/UTC (day of), 2 AM CET (day of)).\n\nBy registering for the tournament, you agree to and consent to follow all rules in Low Ink, and promise to read all announcements leading up to the event. In compliance with Nintendo tournament guidelines, you also consent that by registering for this tournament, Inkling Performance Labs may use videos, still images, etc. of me and my teammates' gameplay from Inkling Performance Labs events for monetization.\n\nNintendo is not a sponsor of or affiliated with this tournament.\nTerms for participating in and viewing Community Tournaments using Nintendo Games can be found at the following URL: https://en-americas-support.nintendo.com/app/answers/detail/a_id/63454\n\n# Full Rules\n\nLow Ink's full ruleset (which is too large to include here) can be found in our [rules document](https://docs.google.com/document/d/1sMUOeRe8isLuu4Koco_qRvwMa2oV1_1LQZ0Vt3_IBt4/pub). **By registering, you and your team agree to follow all rules in the rules document.**", @@ -7301,6 +7302,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733157607, inGameName: "Zyler òへó#1344", + plusTier: null, }, { userId: 27529, @@ -7313,6 +7315,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157609, inGameName: "Axo òへó#2731", + plusTier: null, }, { userId: 25875, @@ -7325,6 +7328,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157610, inGameName: "Kiko òへó#2701", + plusTier: null, }, { userId: 21063, @@ -7337,6 +7341,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157611, inGameName: "koooo òへó#2940", + plusTier: null, }, { userId: 31597, @@ -7349,6 +7354,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157612, inGameName: "Tetra òへó#1074", + plusTier: null, }, ], checkIns: [ @@ -7390,6 +7396,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733157629, inGameName: "JŁΞ nomad#1998", + plusTier: null, }, { userId: 27260, @@ -7402,6 +7409,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157711, inGameName: "JŁΞ Kσru#2146", + plusTier: null, }, { userId: 42704, @@ -7414,6 +7422,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157712, inGameName: "ROARRRRRRR#1111", + plusTier: null, }, { userId: 6211, @@ -7426,6 +7435,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157713, inGameName: "JŁ≡ Nobe_1#1045", + plusTier: null, }, { userId: 9379, @@ -7438,6 +7448,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157714, inGameName: "JŁΞ SHeLi#2425", + plusTier: null, }, ], checkIns: [ @@ -7479,6 +7490,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733161494, inGameName: "「F」Mik#3010", + plusTier: null, }, { userId: 31195, @@ -7491,6 +7503,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733161497, inGameName: "「F」Cotni#3521", + plusTier: null, }, { userId: 31395, @@ -7503,6 +7516,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733161500, inGameName: "In 「F」iniTy#1007", + plusTier: null, }, { userId: 41682, @@ -7515,6 +7529,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733161502, inGameName: "「F」Slush#9876", + plusTier: null, }, { userId: 26103, @@ -7527,6 +7542,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733161505, inGameName: "「F」sawyer #7539", + plusTier: null, }, ], checkIns: [ @@ -7568,6 +7584,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733166918, inGameName: "⦾яStαrιiτε#3209", + plusTier: null, }, { userId: 44033, @@ -7580,6 +7597,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733166921, inGameName: "⦾я .0#2825", + plusTier: null, }, { userId: 19717, @@ -7592,6 +7610,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733166925, inGameName: "⦾я Neo✩#3314", + plusTier: null, }, { userId: 9404, @@ -7604,6 +7623,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733166928, inGameName: "⦾я Organic#2160", + plusTier: null, }, ], checkIns: [ @@ -7645,6 +7665,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733166213, inGameName: "TheChosen1#2899", + plusTier: null, }, { userId: 29267, @@ -7657,6 +7678,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733178388, inGameName: "Silverlime#4895", + plusTier: null, }, { userId: 25591, @@ -7669,6 +7691,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733426117, inGameName: "Dev#7857", + plusTier: null, }, { userId: 36962, @@ -7681,6 +7704,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733458896, inGameName: "PencilGlzr#8668", + plusTier: null, }, { userId: 37749, @@ -7693,6 +7717,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734193950, inGameName: "кя lyric!#2989", + plusTier: null, }, ], checkIns: [ @@ -7729,6 +7754,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733189945, inGameName: "«я.peachz♪#1561", + plusTier: null, }, { userId: 34355, @@ -7741,6 +7767,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733189950, inGameName: "«я.Omega#1182", + plusTier: null, }, { userId: 2319, @@ -7753,6 +7780,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733189952, inGameName: "《Я.ttrarat#2320", + plusTier: null, }, { userId: 39480, @@ -7765,6 +7793,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733189954, inGameName: "«я.Reze★#3081", + plusTier: null, }, { userId: 7430, @@ -7777,6 +7806,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733189965, inGameName: "«я.zedro#2287", + plusTier: null, }, ], checkIns: [ @@ -7818,6 +7848,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733244862, inGameName: "½ Jxvito★#2083", + plusTier: null, }, { userId: 31524, @@ -7830,6 +7861,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733244865, inGameName: "½ chaervee#2718", + plusTier: null, }, { userId: 35674, @@ -7842,6 +7874,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733244867, inGameName: "½ kosame#2647", + plusTier: null, }, { userId: 7126, @@ -7854,6 +7887,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733244868, inGameName: "½ YAGI#2632", + plusTier: null, }, { userId: 26285, @@ -7866,6 +7900,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734054948, inGameName: "≣↑Lefish☆#3115", + plusTier: null, }, ], checkIns: [ @@ -7907,6 +7942,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733282085, inGameName: "o7 PieMan#9992", + plusTier: null, }, { userId: 5708, @@ -7919,6 +7955,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733282088, inGameName: "o7 Halø#2414", + plusTier: null, }, { userId: 1661, @@ -7931,6 +7968,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733282090, inGameName: "o7 Tau#3126", + plusTier: null, }, { userId: 27292, @@ -7943,6 +7981,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733282091, inGameName: "o7 Warrior #4277", + plusTier: null, }, { userId: 21588, @@ -7955,6 +7994,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733282092, inGameName: "o7 Brandon#1002", + plusTier: null, }, { userId: 6309, @@ -7967,6 +8007,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733282098, inGameName: "Nathan#3382", + plusTier: null, }, ], checkIns: [ @@ -8008,6 +8049,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733291438, inGameName: "★Alohα★#1372", + plusTier: null, }, { userId: 23974, @@ -8020,6 +8062,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733291442, inGameName: "↑Lex↑#2224", + plusTier: null, }, { userId: 24459, @@ -8032,6 +8075,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733291444, inGameName: "Gogeta SSB#1514", + plusTier: null, }, { userId: 40851, @@ -8044,6 +8088,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733291446, inGameName: "zoeee♪#5119", + plusTier: null, }, { userId: 18090, @@ -8056,6 +8101,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733783382, inGameName: "oomf#2618", + plusTier: null, }, { userId: 42350, @@ -8068,6 +8114,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734131443, inGameName: "Kp Mario#3126", + plusTier: null, }, ], checkIns: [ @@ -8109,6 +8156,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733439755, inGameName: "{ミ} Reyn#3321", + plusTier: null, }, { userId: 37000, @@ -8121,6 +8169,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733439758, inGameName: "{ミ} Bobong#1958", + plusTier: null, }, { userId: 37835, @@ -8133,6 +8182,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733439760, inGameName: "{ミ} Kody#7210", + plusTier: null, }, { userId: 26807, @@ -8145,6 +8195,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733439761, inGameName: "{ミ} Lumi#8318", + plusTier: null, }, ], checkIns: [ @@ -8186,6 +8237,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733485884, inGameName: "LosTheresa#3238", + plusTier: null, }, { userId: 30686, @@ -8198,6 +8250,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733485886, inGameName: "Los Equals#2851", + plusTier: null, }, { userId: 22396, @@ -8210,6 +8263,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733485888, inGameName: "Los Hammy#4656", + plusTier: null, }, { userId: 1961, @@ -8222,6 +8276,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733485889, inGameName: "Los SeaSlug#2211", + plusTier: null, }, { userId: 46305, @@ -8234,6 +8289,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733961214, inGameName: "Dr.Meowser#8095", + plusTier: null, }, { userId: 18698, @@ -8246,6 +8302,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733961708, inGameName: "Ameowzing☆#1396", + plusTier: null, }, ], checkIns: [ @@ -8287,6 +8344,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733937993, inGameName: "☆§ darkz!#1022", + plusTier: null, }, { userId: 30411, @@ -8299,6 +8357,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733938000, inGameName: "☆§ Ace!#1627", + plusTier: null, }, { userId: 24275, @@ -8311,6 +8370,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733938003, inGameName: "☆§ Googol! #7149", + plusTier: null, }, { userId: 30263, @@ -8323,6 +8383,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733938006, inGameName: "Rowieeeeee#3332", + plusTier: null, }, { userId: 5861, @@ -8335,6 +8396,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733938008, inGameName: "☆§ Solar!#1396", + plusTier: null, }, { userId: 30870, @@ -8347,6 +8409,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734118113, inGameName: "QC. Phrog#1240", + plusTier: null, }, ], checkIns: [ @@ -8388,6 +8451,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733166818, inGameName: "Sylyx#1095", + plusTier: null, }, { userId: 38046, @@ -8400,6 +8464,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733166823, inGameName: "Brownies!!#2517", + plusTier: null, }, { userId: 42638, @@ -8412,6 +8477,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733166825, inGameName: "Rosa_#1667", + plusTier: null, }, { userId: 34589, @@ -8424,6 +8490,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733166826, inGameName: "SειëηΣ?#6908", + plusTier: null, }, { userId: 44378, @@ -8436,6 +8503,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733594006, inGameName: "Mirage#2515", + plusTier: null, }, ], checkIns: [ @@ -8477,6 +8545,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733167616, inGameName: " ({ isOwner: 0, createdAt: 1733167619, inGameName: " ({ isOwner: 0, createdAt: 1733167620, inGameName: " ({ isOwner: 0, createdAt: 1733167621, inGameName: " ({ isOwner: 0, createdAt: 1734026204, inGameName: "nene#1459", + plusTier: null, }, ], checkIns: [ @@ -8566,6 +8639,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733201503, inGameName: "SplaTea TV#9482", + plusTier: null, }, { userId: 35282, @@ -8578,6 +8652,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733201506, inGameName: "Apisto#9327", + plusTier: null, }, { userId: 20774, @@ -8590,6 +8665,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733201506, inGameName: "βαjα#1704", + plusTier: null, }, { userId: 33373, @@ -8602,6 +8678,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733201507, inGameName: "Comrade#1334", + plusTier: null, }, { userId: 42703, @@ -8614,6 +8691,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733201508, inGameName: "gameing#2389", + plusTier: null, }, { userId: 31556, @@ -8626,6 +8704,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733201509, inGameName: "Klem'ntine#3028", + plusTier: null, }, ], checkIns: [ @@ -8667,6 +8746,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733218069, inGameName: "Lutzi#9570", + plusTier: null, }, { userId: 7690, @@ -8679,6 +8759,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733218071, inGameName: "Low#7104", + plusTier: null, }, { userId: 7959, @@ -8691,6 +8772,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733218072, inGameName: "Sual#1049", + plusTier: null, }, { userId: 26509, @@ -8703,6 +8785,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733218073, inGameName: "Vi#1325", + plusTier: null, }, { userId: 7102, @@ -8715,6 +8798,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733916151, inGameName: "Jødek#3186", + plusTier: null, }, ], checkIns: [ @@ -8756,6 +8840,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733319202, inGameName: "ƒ²←Tbob#2063", + plusTier: null, }, { userId: 21685, @@ -8768,6 +8853,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733319223, inGameName: "ƒ²←Toad#2397", + plusTier: null, }, { userId: 34842, @@ -8780,6 +8866,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733319226, inGameName: "f²←Glitchy#2181", + plusTier: null, }, { userId: 10714, @@ -8792,6 +8879,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733319227, inGameName: "ƒ²←Golonka#7170", + plusTier: null, }, { userId: 10028, @@ -8804,6 +8892,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733319230, inGameName: "ƒ²←kcatt#3290", + plusTier: null, }, { userId: 8840, @@ -8816,6 +8905,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733319232, inGameName: "ƒ²←Shii#2267", + plusTier: null, }, ], checkIns: [ @@ -8857,6 +8947,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733471556, inGameName: "USS Moody#5225", + plusTier: null, }, { userId: 36007, @@ -8869,6 +8960,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733948167, inGameName: "アリッサ#5565", + plusTier: null, }, { userId: 38896, @@ -8881,6 +8973,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733948266, inGameName: "Cringe#5602", + plusTier: null, }, { userId: 30204, @@ -8893,6 +8986,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733950474, inGameName: "m#31926", + plusTier: null, }, { userId: 41285, @@ -8905,6 +8999,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733951107, inGameName: "◯=ブライセソ=◯#5387", + plusTier: null, }, ], checkIns: [ @@ -8946,6 +9041,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733501938, inGameName: "ミゼリ エース★#1349", + plusTier: null, }, { userId: 43073, @@ -8958,6 +9054,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733501942, inGameName: "ミゼリ Cronix#2518", + plusTier: null, }, { userId: 30495, @@ -8970,6 +9067,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733501944, inGameName: "ミゼリ。Mεgυ°✩#2219", + plusTier: null, }, { userId: 30488, @@ -8982,6 +9080,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733501946, inGameName: "ミゼリ Sk#5210", + plusTier: null, }, { userId: 45295, @@ -8994,6 +9093,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733517920, inGameName: "ミゼリ V-Trux#1581", + plusTier: null, }, ], checkIns: [ @@ -9035,6 +9135,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733622364, inGameName: "σ*°yoshido#3235", + plusTier: null, }, { userId: 30612, @@ -9047,6 +9148,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733622368, inGameName: "σ*°Crazy!?#2260", + plusTier: null, }, { userId: 13671, @@ -9059,6 +9161,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733622369, inGameName: "σ*°Nutella#7762", + plusTier: null, }, { userId: 36898, @@ -9071,6 +9174,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733622371, inGameName: "σ*°Town#1561", + plusTier: null, }, ], checkIns: [], @@ -9106,6 +9210,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733635706, inGameName: "DΔ Ark#1872", + plusTier: null, }, { userId: 30466, @@ -9118,6 +9223,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733635709, inGameName: "♭ born#9799", + plusTier: null, }, { userId: 26162, @@ -9130,6 +9236,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733635711, inGameName: "e#5440", + plusTier: null, }, { userId: 24013, @@ -9142,6 +9249,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733635715, inGameName: "[R]yo!#9363", + plusTier: null, }, ], checkIns: [ @@ -9183,6 +9291,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733671856, inGameName: "nerfkuro#1333", + plusTier: null, }, { userId: 29433, @@ -9195,6 +9304,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733674190, inGameName: "Bandito#4064", + plusTier: null, }, { userId: 21181, @@ -9207,6 +9317,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733689602, inGameName: "▼hαeωon<3▼#2645", + plusTier: null, }, { userId: 32002, @@ -9219,6 +9330,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734136081, inGameName: "◎ 'Anon'#1493", + plusTier: null, }, ], checkIns: [ @@ -9255,6 +9367,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733810204, inGameName: "Goat Child#2734", + plusTier: null, }, { userId: 5906, @@ -9267,6 +9380,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733810212, inGameName: "Blaster#8303", + plusTier: null, }, { userId: 17352, @@ -9279,6 +9393,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733810376, inGameName: "h* Frosty!#3019", + plusTier: null, }, { userId: 22403, @@ -9291,6 +9406,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733822106, inGameName: "ΞOceanOpal#9923", + plusTier: null, }, { userId: 33954, @@ -9303,6 +9419,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733865466, inGameName: "Nerdy♪Adam#1169", + plusTier: null, }, ], checkIns: [ @@ -9339,6 +9456,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733889961, inGameName: "arkham#4865", + plusTier: null, }, { userId: 32107, @@ -9351,6 +9469,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733890089, inGameName: "【Hayley】#7816", + plusTier: null, }, { userId: 33402, @@ -9363,6 +9482,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733947966, inGameName: "*~*flyNn#2174", + plusTier: null, }, { userId: 30619, @@ -9375,6 +9495,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733962086, inGameName: "Vhappy#1640", + plusTier: null, }, { userId: 35133, @@ -9387,6 +9508,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733962703, inGameName: "#1225", + plusTier: null, }, ], checkIns: [ @@ -9423,6 +9545,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733892132, inGameName: "TIF Kale#1773", + plusTier: null, }, { userId: 8993, @@ -9435,6 +9558,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733892135, inGameName: "amisyka#3037", + plusTier: null, }, { userId: 8395, @@ -9447,6 +9571,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733892138, inGameName: "TIF J+αm#1827", + plusTier: null, }, { userId: 3566, @@ -9459,6 +9584,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733892143, inGameName: "⇛Pampers✰#1671", + plusTier: null, }, { userId: 46637, @@ -9471,6 +9597,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734198005, inGameName: ".leaflet.#1292", + plusTier: null, }, ], checkIns: [ @@ -9512,6 +9639,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734035170, inGameName: "\tƒ(01)Avīci#3228", + plusTier: null, }, { userId: 31143, @@ -9524,6 +9652,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734035173, inGameName: "ƒMαrιιτιmε#6053", + plusTier: null, }, { userId: 10670, @@ -9536,6 +9665,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734035178, inGameName: "ƒallHole#8602", + plusTier: null, }, { userId: 5261, @@ -9548,6 +9678,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734035182, inGameName: "ƒ¿¡Koda!?#1726", + plusTier: null, }, { userId: 22577, @@ -9560,6 +9691,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734136323, inGameName: "ghostreni#2563", + plusTier: null, }, ], checkIns: [ @@ -9601,6 +9733,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734107844, inGameName: "Eon#2450", + plusTier: null, }, { userId: 14309, @@ -9613,6 +9746,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734130617, inGameName: "Goxu#6562", + plusTier: null, }, { userId: 23164, @@ -9625,6 +9759,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734131862, inGameName: "fish#3039", + plusTier: null, }, { userId: 17310, @@ -9637,6 +9772,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734150871, inGameName: "Θ© OhkoXar#1431", + plusTier: null, }, { userId: 2199, @@ -9649,6 +9785,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734216771, inGameName: "Nof24#1856", + plusTier: null, }, ], checkIns: [ @@ -9690,6 +9827,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734132225, inGameName: "ΞTessaract#7242", + plusTier: null, }, { userId: 16387, @@ -9702,6 +9840,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734132269, inGameName: "Bubble.mp4#3578", + plusTier: null, }, { userId: 31154, @@ -9714,6 +9853,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734132358, inGameName: "Renzo™#3392", + plusTier: null, }, { userId: 6051, @@ -9726,6 +9866,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734132433, inGameName: "ACECT.mp4#2681", + plusTier: null, }, ], checkIns: [ @@ -9762,6 +9903,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733194304, inGameName: "LN TheGish#6533", + plusTier: null, }, { userId: 29011, @@ -9774,6 +9916,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733194307, inGameName: "ln Arsynn#5022", + plusTier: null, }, { userId: 23082, @@ -9786,6 +9929,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733194308, inGameName: "ln Blubrry#2022", + plusTier: null, }, { userId: 21549, @@ -9798,6 +9942,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733194314, inGameName: "LN✰Melo#1231", + plusTier: null, }, { userId: 45036, @@ -9810,6 +9955,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733605136, inGameName: "LN Frankie #1631", + plusTier: null, }, ], checkIns: [ @@ -9851,6 +9997,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733195091, inGameName: "R↑ Static#1144", + plusTier: null, }, { userId: 26820, @@ -9863,6 +10010,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733195093, inGameName: "R↑ Steorra#1628", + plusTier: null, }, { userId: 3513, @@ -9875,6 +10023,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733195093, inGameName: "R↑ Zebra#1631", + plusTier: null, }, { userId: 10297, @@ -9887,6 +10036,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733195094, inGameName: "YRN#1115", + plusTier: null, }, ], checkIns: [ @@ -9928,6 +10078,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733364647, inGameName: "<↑ Espi!#2714", + plusTier: null, }, { userId: 8953, @@ -9940,6 +10091,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733364648, inGameName: "<↑ h#2774", + plusTier: null, }, { userId: 27747, @@ -9952,6 +10104,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733364650, inGameName: "<↑ Kattail#2820", + plusTier: null, }, { userId: 31150, @@ -9964,6 +10117,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733364733, inGameName: "<↑ DemoLaw#3133", + plusTier: null, }, { userId: 35354, @@ -9976,6 +10130,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733702069, inGameName: "<↑ ™toma#2584", + plusTier: null, }, ], checkIns: [ @@ -10017,6 +10172,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733374295, inGameName: "εᴠₒ Sniper#5010", + plusTier: null, }, { userId: 38686, @@ -10029,6 +10185,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733374297, inGameName: "εᴠₒGalaxyK#2711", + plusTier: null, }, { userId: 12005, @@ -10041,6 +10198,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733374299, inGameName: "εᴠₒWaffle#3295", + plusTier: null, }, { userId: 31295, @@ -10053,6 +10211,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733697589, inGameName: "εᴠ Velvet#6554", + plusTier: null, }, ], checkIns: [ @@ -10094,6 +10253,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733433864, inGameName: "〒 Polon™#1827", + plusTier: null, }, { userId: 40636, @@ -10106,6 +10266,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733433867, inGameName: "〒 999.Revo#1281", + plusTier: null, }, { userId: 44489, @@ -10118,6 +10279,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733433868, inGameName: "Fischi.jr☆TSA#1331", + plusTier: null, }, { userId: 34314, @@ -10130,6 +10292,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733433870, inGameName: "〒 Gabbro#1991", + plusTier: null, }, { userId: 28247, @@ -10142,6 +10305,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733433871, inGameName: "〒 №POGnatr#2144", + plusTier: null, }, { userId: 41628, @@ -10154,6 +10318,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733438268, inGameName: "〒$illyCat.#1689", + plusTier: null, }, ], checkIns: [], @@ -10189,6 +10354,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733513814, inGameName: "ヨ。Illusion#3461", + plusTier: null, }, { userId: 26321, @@ -10201,6 +10367,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733513817, inGameName: "ヨ。Ella :3#1250", + plusTier: null, }, { userId: 22324, @@ -10213,6 +10380,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733513820, inGameName: "ヨ。Swaashy#6189", + plusTier: null, }, { userId: 11088, @@ -10225,6 +10393,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733513821, inGameName: "ヨ。twinbe#6647", + plusTier: null, }, ], checkIns: [ @@ -10266,6 +10435,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733602400, inGameName: "T☆squishy#1382", + plusTier: null, }, { userId: 20419, @@ -10278,6 +10448,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733602403, inGameName: "combo#2339", + plusTier: null, }, { userId: 4248, @@ -10290,6 +10461,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733602406, inGameName: "T☆κοiκοi!#2065", + plusTier: null, }, { userId: 10826, @@ -10302,6 +10474,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733602409, inGameName: "Tachi Ko#2736", + plusTier: null, }, { userId: 28504, @@ -10314,6 +10487,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734030318, inGameName: "T☆Drewski#1157", + plusTier: null, }, ], checkIns: [ @@ -10355,6 +10529,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733753214, inGameName: "404 アキラ!#2667", + plusTier: null, }, { userId: 28446, @@ -10367,6 +10542,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733753221, inGameName: "404 PGP¹º²#2268", + plusTier: null, }, { userId: 30728, @@ -10379,6 +10555,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733753226, inGameName: "404 snip#2287", + plusTier: null, }, { userId: 32158, @@ -10391,6 +10568,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733753244, inGameName: "404 Floke#1914", + plusTier: null, }, { userId: 34634, @@ -10403,6 +10581,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733854036, inGameName: "404 Stick#3636", + plusTier: null, }, ], checkIns: [ @@ -10444,6 +10623,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733914001, inGameName: "メи Rεиzø#1066", + plusTier: null, }, { userId: 31189, @@ -10456,6 +10636,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733914005, inGameName: "Fx>>Saturn#1259", + plusTier: null, }, { userId: 10190, @@ -10468,6 +10649,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733914010, inGameName: "メи J-SON#1634", + plusTier: null, }, { userId: 37959, @@ -10480,6 +10662,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733914024, inGameName: "Ж «Лили» Ж#1963", + plusTier: null, }, { userId: 40304, @@ -10492,6 +10675,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733914036, inGameName: "Ж Ryro Ж#3336", + plusTier: null, }, { userId: 35922, @@ -10504,6 +10688,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733914100, inGameName: "Rocko_spl#1058", + plusTier: null, }, ], checkIns: [ @@ -10545,6 +10730,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733966548, inGameName: "[BW] Tommy #2195", + plusTier: null, }, { userId: 35617, @@ -10557,6 +10743,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733966558, inGameName: "[BW] Nep#6339", + plusTier: null, }, { userId: 37669, @@ -10569,6 +10756,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733966563, inGameName: "[BW]☆⌢NB⌢☆#1633", + plusTier: null, }, { userId: 37436, @@ -10581,6 +10769,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733966565, inGameName: "Reg112#1956", + plusTier: null, }, { userId: 35811, @@ -10593,6 +10782,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733970531, inGameName: "Parxe [BW]#2048", + plusTier: null, }, ], checkIns: [ @@ -10634,6 +10824,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734032213, inGameName: "τァ Jupex#9503", + plusTier: null, }, { userId: 1925, @@ -10646,6 +10837,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734032217, inGameName: "τァ Luigeon#2301", + plusTier: null, }, { userId: 11391, @@ -10658,6 +10850,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734032220, inGameName: "τァ Italics#3341", + plusTier: null, }, { userId: 27355, @@ -10670,6 +10863,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734032222, inGameName: "τァ Plαnσ#1055", + plusTier: null, }, ], checkIns: [ @@ -10711,6 +10905,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734106606, inGameName: "アこ•ζκγ˜#1943", + plusTier: null, }, { userId: 43269, @@ -10723,6 +10918,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734106608, inGameName: "-2#1564", + plusTier: null, }, { userId: 37173, @@ -10735,6 +10931,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734106610, inGameName: "アこ•Elias#2365", + plusTier: null, }, { userId: 34448, @@ -10747,6 +10944,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734194642, inGameName: "V³Aпgel»#2225", + plusTier: null, }, { userId: 16054, @@ -10759,6 +10957,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734199465, inGameName: "Autumnal!?#1691", + plusTier: null, }, ], checkIns: [ @@ -10800,6 +10999,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734116765, inGameName: "Puddleduck#9028", + plusTier: null, }, { userId: 10378, @@ -10812,6 +11012,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734116829, inGameName: "ctrlaltdog#3572", + plusTier: null, }, { userId: 46771, @@ -10824,6 +11025,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734117640, inGameName: "Polaris#6130", + plusTier: null, }, { userId: 5350, @@ -10836,6 +11038,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734129026, inGameName: "RKO*Bomb#2206", + plusTier: null, }, { userId: 12609, @@ -10848,6 +11051,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734134255, inGameName: "revlushaun#3043", + plusTier: null, }, { userId: 26044, @@ -10860,6 +11064,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734134731, inGameName: "zamuraı#9996", + plusTier: null, }, ], checkIns: [ @@ -10901,6 +11106,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734125312, inGameName: "KUST#2446", + plusTier: null, }, { userId: 43060, @@ -10913,6 +11119,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734125320, inGameName: "☆Tuna#9794", + plusTier: null, }, { userId: 22622, @@ -10925,6 +11132,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734125324, inGameName: "Heartble#4140", + plusTier: null, }, { userId: 22968, @@ -10937,6 +11145,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734125402, inGameName: "grubhub#8941", + plusTier: null, }, ], checkIns: [ @@ -10978,6 +11187,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734134382, inGameName: "S1MPLE#1222", + plusTier: null, }, { userId: 42164, @@ -10990,6 +11200,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734134394, inGameName: "✩Bubu✩#3042", + plusTier: null, }, { userId: 25689, @@ -11002,6 +11213,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734134419, inGameName: "モウセンゴケ#3613", + plusTier: null, }, { userId: 43524, @@ -11014,6 +11226,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734135118, inGameName: "「łw」JΔRΞD#2421", + plusTier: null, }, { userId: 26758, @@ -11026,6 +11239,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734267010, inGameName: "Lianzi#3090", + plusTier: null, }, ], checkIns: [ @@ -11062,6 +11276,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733156802, inGameName: "Thoma...#7962", + plusTier: null, }, { userId: 9112, @@ -11074,6 +11289,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733156805, inGameName: "Albedo...#3246", + plusTier: null, }, { userId: 3738, @@ -11086,6 +11302,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733156806, inGameName: "Firecorgi…#2846", + plusTier: null, }, { userId: 7434, @@ -11098,6 +11315,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733156808, inGameName: "droproller#6887", + plusTier: null, }, { userId: 9036, @@ -11110,6 +11328,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733156810, inGameName: "sulli...#2942", + plusTier: null, }, ], checkIns: [ @@ -11151,6 +11370,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733157391, inGameName: "wobblynuts#2103", + plusTier: null, }, { userId: 38204, @@ -11163,6 +11383,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157395, inGameName: "ima div5?!#1610", + plusTier: null, }, { userId: 35506, @@ -11175,6 +11396,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157398, inGameName: "ヨ。Goro.UA#1965", + plusTier: null, }, { userId: 3741, @@ -11187,6 +11409,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157407, inGameName: "Sun#2327", + plusTier: null, }, { userId: 31728, @@ -11199,6 +11422,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733157410, inGameName: "‘ב)Srblue#2726", + plusTier: null, }, { userId: 8080, @@ -11211,6 +11435,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733865047, inGameName: "M■OmaZen#2168", + plusTier: null, }, ], checkIns: [ @@ -11252,6 +11477,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733162274, inGameName: "¡ κrακhεαδ#6781", + plusTier: null, }, { userId: 42975, @@ -11264,6 +11490,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733162328, inGameName: "¡ Tangy#2745", + plusTier: null, }, { userId: 20319, @@ -11276,6 +11503,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733167848, inGameName: "*Starcole#1814", + plusTier: null, }, { userId: 28054, @@ -11288,6 +11516,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733594188, inGameName: "¡ C-53#1362", + plusTier: null, }, ], checkIns: [ @@ -11329,6 +11558,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733367806, inGameName: "pen°®»#2456", + plusTier: null, }, { userId: 46586, @@ -11341,6 +11571,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733718486, inGameName: "ring°®»#3381", + plusTier: null, }, { userId: 33790, @@ -11353,6 +11584,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734040847, inGameName: "★AkiSweeti#3326", + plusTier: null, }, { userId: 18632, @@ -11365,6 +11597,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734116368, inGameName: "hina°®»#3244", + plusTier: null, }, ], checkIns: [ @@ -11406,6 +11639,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733456080, inGameName: "SBz☆ Peace#2232", + plusTier: null, }, { userId: 10386, @@ -11418,6 +11652,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733456082, inGameName: "S☆Damage#8219", + plusTier: null, }, { userId: 22942, @@ -11430,6 +11665,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733456084, inGameName: "SBz☆Mikey#3048", + plusTier: null, }, { userId: 33369, @@ -11442,6 +11678,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733456085, inGameName: "SBz☆surimi#6144", + plusTier: null, }, { userId: 29617, @@ -11454,6 +11691,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733456249, inGameName: "SBz☆ Matt#3415", + plusTier: null, }, ], checkIns: [ @@ -11495,6 +11733,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733579092, inGameName: "∴イルカ∵#2729", + plusTier: null, }, { userId: 14170, @@ -11507,6 +11746,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733579098, inGameName: "∴ナナ∵#1150", + plusTier: null, }, { userId: 25419, @@ -11519,6 +11759,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733579112, inGameName: "∴ShiroZVM∵#1929", + plusTier: null, }, { userId: 14413, @@ -11531,6 +11772,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733608177, inGameName: "becky#3225", + plusTier: null, }, ], checkIns: [], @@ -11566,6 +11808,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733769667, inGameName: "8𝄞Rosellei#9315", + plusTier: null, }, { userId: 38022, @@ -11578,6 +11821,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733769672, inGameName: "8♪Lightboy#3126", + plusTier: null, }, { userId: 41269, @@ -11590,6 +11834,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733769675, inGameName: "「sneakee」#4337", + plusTier: null, }, { userId: 7935, @@ -11602,6 +11847,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733786868, inGameName: "samy☆#1800", + plusTier: null, }, { userId: 43856, @@ -11614,6 +11860,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733787437, inGameName: "CiaB∞♪#1282", + plusTier: null, }, { userId: 43551, @@ -11626,6 +11873,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733871853, inGameName: "8🎵Mr.pig #3891", + plusTier: null, }, ], checkIns: [ @@ -11667,6 +11915,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733794148, inGameName: "⁀Juancho、#7824", + plusTier: null, }, { userId: 27036, @@ -11679,6 +11928,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733794151, inGameName: "⁀Ace Astro#2380", + plusTier: null, }, { userId: 22820, @@ -11691,6 +11941,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733794153, inGameName: "⌒jay、#2743", + plusTier: null, }, { userId: 28021, @@ -11703,6 +11954,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733794154, inGameName: "⁀rascal、#1280", + plusTier: null, }, { userId: 1890, @@ -11715,6 +11967,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733794165, inGameName: "StarShower#1551", + plusTier: null, }, { userId: 29636, @@ -11727,6 +11980,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733794167, inGameName: "⁀Terra、#1345", + plusTier: null, }, ], checkIns: [ @@ -11768,6 +12022,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733820540, inGameName: "χ。 Yuyu#2869", + plusTier: null, }, { userId: 21989, @@ -11780,6 +12035,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733820548, inGameName: "K#1858a", + plusTier: null, }, { userId: 25242, @@ -11792,6 +12048,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733820554, inGameName: "Sigma727#2127", + plusTier: null, }, { userId: 43081, @@ -11804,6 +12061,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734119153, inGameName: "f(x)Eli#1434", + plusTier: null, }, ], checkIns: [ @@ -11840,6 +12098,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733825084, inGameName: "240 ˚ Roxy #2267", + plusTier: null, }, { userId: 24252, @@ -11852,6 +12111,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733825092, inGameName: "puddi#1261", + plusTier: null, }, { userId: 32444, @@ -11864,6 +12124,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733825098, inGameName: "320°nelus#2340", + plusTier: null, }, { userId: 36113, @@ -11876,6 +12137,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733825102, inGameName: "106*Nova#6620", + plusTier: null, }, ], checkIns: [ @@ -11917,6 +12179,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733865890, inGameName: "★ŁPρīᴋα₵нʊ#4923", + plusTier: null, }, { userId: 27828, @@ -11929,6 +12192,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733865934, inGameName: "mş◇Nao◇#1197", + plusTier: null, }, { userId: 41975, @@ -11941,6 +12205,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733866368, inGameName: "mş◇noswet#3230", + plusTier: null, }, { userId: 28938, @@ -11953,6 +12218,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733866415, inGameName: "mş◇Femboy#2761", + plusTier: null, }, { userId: 8587, @@ -11965,6 +12231,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734198266, inGameName: "ミ》Vγτãłîç#3075", + plusTier: null, }, ], checkIns: [ @@ -12006,6 +12273,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733873149, inGameName: "⁰³ Smolie#2959", + plusTier: null, }, { userId: 7115, @@ -12018,6 +12286,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733873154, inGameName: "°³Xyюfonia#2523", + plusTier: null, }, { userId: 29674, @@ -12030,6 +12299,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733873160, inGameName: "°³Crescent#2342", + plusTier: null, }, { userId: 39569, @@ -12042,6 +12312,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733873164, inGameName: "°³ Joryu#2761", + plusTier: null, }, { userId: 30031, @@ -12054,6 +12325,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734059096, inGameName: "°³Hudsonic#1758", + plusTier: null, }, { userId: 28866, @@ -12066,6 +12338,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734059098, inGameName: "heathcliff#2173", + plusTier: null, }, ], checkIns: [ @@ -12107,6 +12380,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733875608, inGameName: "ЯГ DHVF#2103", + plusTier: null, }, { userId: 33824, @@ -12119,6 +12393,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733875614, inGameName: "ЯГdemONdaz#1133", + plusTier: null, }, { userId: 35608, @@ -12131,6 +12406,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733875621, inGameName: "ЯГ^catboy^#2774", + plusTier: null, }, { userId: 22677, @@ -12143,6 +12419,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733875625, inGameName: "ЯГ Enoki#6301", + plusTier: null, }, ], checkIns: [ @@ -12184,6 +12461,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733888417, inGameName: "C ☆VOID#1573", + plusTier: null, }, { userId: 30030, @@ -12196,6 +12474,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733888595, inGameName: "Blixout #2868", + plusTier: null, }, { userId: 21454, @@ -12208,6 +12487,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733924130, inGameName: "C☆Mizuyu#1106", + plusTier: null, }, { userId: 42483, @@ -12220,6 +12500,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733932409, inGameName: "C☆ ᗴnzo#2034", + plusTier: null, }, ], checkIns: [ @@ -12256,6 +12537,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734008857, inGameName: "ØĐ Tipo#2728", + plusTier: null, }, { userId: 37341, @@ -12268,6 +12550,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734008860, inGameName: "ØÐ Bees#7729", + plusTier: null, }, { userId: 22699, @@ -12280,6 +12563,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734008861, inGameName: "ØÐ Giraffe#1937", + plusTier: null, }, { userId: 28145, @@ -12292,6 +12576,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734008862, inGameName: "ØĐ Madman#1438", + plusTier: null, }, { userId: 39363, @@ -12304,6 +12589,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734008862, inGameName: "SMGalactic#2705", + plusTier: null, }, ], checkIns: [ @@ -12345,6 +12631,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734018352, inGameName: ">つ Gray#2584", + plusTier: null, }, { userId: 20990, @@ -12357,6 +12644,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734018468, inGameName: "peepeepoop#1111", + plusTier: null, }, { userId: 22469, @@ -12369,6 +12657,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734018744, inGameName: ">つ ari#6831", + plusTier: null, }, { userId: 41594, @@ -12381,6 +12670,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734018745, inGameName: "Aris!#3219", + plusTier: null, }, ], checkIns: [ @@ -12422,6 +12712,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734019701, inGameName: "1κ DERLEON#2716", + plusTier: null, }, { userId: 35421, @@ -12434,6 +12725,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734019708, inGameName: "∴FATcat∵#9026", + plusTier: null, }, { userId: 33524, @@ -12446,6 +12738,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734019712, inGameName: "∴Wunini∵#3998", + plusTier: null, }, { userId: 22500, @@ -12458,6 +12751,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734021864, inGameName: "N#2648", + plusTier: null, }, { userId: 42081, @@ -12470,6 +12764,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734105680, inGameName: "∴JuliDuli∵#1274", + plusTier: null, }, { userId: 20063, @@ -12482,6 +12777,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734105830, inGameName: "moo Froody#2483", + plusTier: null, }, ], checkIns: [ @@ -12518,6 +12814,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734023441, inGameName: "κs/Milk#1291", + plusTier: null, }, { userId: 2898, @@ -12530,6 +12827,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734023445, inGameName: "κs/Camo#7584", + plusTier: null, }, { userId: 25763, @@ -12542,6 +12840,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734023449, inGameName: "κs/mart#8857", + plusTier: null, }, { userId: 3466, @@ -12554,6 +12853,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734023452, inGameName: "κs/Nova#1858", + plusTier: null, }, { userId: 34662, @@ -12566,6 +12866,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734023471, inGameName: "ks×Arlo#3183", + plusTier: null, }, ], checkIns: [ @@ -12607,6 +12908,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734099744, inGameName: "DblCookies#1157", + plusTier: null, }, { userId: 7461, @@ -12619,6 +12921,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734099747, inGameName: "FFA Asri#1196", + plusTier: null, }, { userId: 39098, @@ -12631,6 +12934,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734099748, inGameName: "MLG VESNA#1357", + plusTier: null, }, { userId: 22624, @@ -12643,6 +12947,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734099751, inGameName: "Хлебушек#2205", + plusTier: null, }, { userId: 28137, @@ -12655,6 +12960,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734099753, inGameName: "⭐Pitoy#1990", + plusTier: null, }, ], checkIns: [ @@ -12696,6 +13002,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734109256, inGameName: "Mαrc ★#2004", + plusTier: null, }, { userId: 29661, @@ -12708,6 +13015,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734109262, inGameName: "Oydα!★#2446", + plusTier: null, }, { userId: 10333, @@ -12720,6 +13028,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734109264, inGameName: "Shogunyan★#1907", + plusTier: null, }, { userId: 35067, @@ -12732,6 +13041,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734115341, inGameName: "メи αlεχvιç#9786", + plusTier: null, }, { userId: 31655, @@ -12744,6 +13054,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734118067, inGameName: "α▽Nite! ツ#1126", + plusTier: null, }, { userId: 40743, @@ -12756,6 +13067,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734118251, inGameName: "Bkl#3359", + plusTier: null, }, ], checkIns: [ @@ -12792,6 +13104,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734125682, inGameName: "zм Painter#1599", + plusTier: null, }, { userId: 32430, @@ -12804,6 +13117,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734125687, inGameName: "zм fan★アハト#9121", + plusTier: null, }, { userId: 26701, @@ -12816,6 +13130,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734125692, inGameName: "zм★Cinna#3115", + plusTier: null, }, { userId: 30584, @@ -12828,6 +13143,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734125694, inGameName: "zм eggs♪#2417", + plusTier: null, }, { userId: 24290, @@ -12840,6 +13156,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734125695, inGameName: "zмKensa™#3419", + plusTier: null, }, { userId: 36575, @@ -12852,6 +13169,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734125696, inGameName: "zм lumi★#2628", + plusTier: null, }, ], checkIns: [ @@ -12893,6 +13211,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733515005, inGameName: "[L]ucky☆#2554", + plusTier: null, }, { userId: 36921, @@ -12905,6 +13224,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733515009, inGameName: "melon musk#2999", + plusTier: null, }, { userId: 37563, @@ -12917,6 +13237,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733515013, inGameName: "Oβιiνiση★※#9105", + plusTier: null, }, { userId: 37665, @@ -12929,6 +13250,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733515016, inGameName: "SteveRoger#6300", + plusTier: null, }, ], checkIns: [ @@ -12970,6 +13292,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733521735, inGameName: "ζ☆Pre#2676", + plusTier: null, }, { userId: 38912, @@ -12982,6 +13305,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733521737, inGameName: "cyanide☆#1025", + plusTier: null, }, { userId: 23357, @@ -12994,6 +13318,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733521742, inGameName: "ζ☆Shiber#1520", + plusTier: null, }, { userId: 36853, @@ -13006,6 +13331,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733521744, inGameName: "ζ☆Turtle#3399", + plusTier: null, }, { userId: 42599, @@ -13018,6 +13344,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734062084, inGameName: "し-Scruffy#2981", + plusTier: null, }, ], checkIns: [ @@ -13059,6 +13386,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733525617, inGameName: "«!» Silver#3048", + plusTier: null, }, { userId: 21818, @@ -13071,6 +13399,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733525636, inGameName: "«!» jamer#2432", + plusTier: null, }, { userId: 22991, @@ -13083,6 +13412,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733525638, inGameName: "«!» oxii#1863", + plusTier: null, }, { userId: 2266, @@ -13095,6 +13425,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733550589, inGameName: "«!» Show-#3347", + plusTier: null, }, ], checkIns: [ @@ -13136,6 +13467,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733847805, inGameName: "|+| Gyrum?#1429", + plusTier: null, }, { userId: 32015, @@ -13148,6 +13480,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733847808, inGameName: "|+| goldie#1823", + plusTier: null, }, { userId: 30663, @@ -13160,6 +13493,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733847813, inGameName: "l+lRegret#9365", + plusTier: null, }, { userId: 45778, @@ -13172,6 +13506,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733847820, inGameName: "|+| KO#7634", + plusTier: null, }, { userId: 32970, @@ -13184,6 +13519,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733847825, inGameName: "hi lol#1052", + plusTier: null, }, ], checkIns: [ @@ -13225,6 +13561,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733858126, inGameName: "☐ JoshI#3168", + plusTier: null, }, { userId: 35567, @@ -13237,6 +13574,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733858131, inGameName: "☐ Koyomi#8668", + plusTier: null, }, { userId: 41108, @@ -13249,6 +13587,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733858133, inGameName: "☐ √VVu#1515", + plusTier: null, }, { userId: 34545, @@ -13261,6 +13600,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733858134, inGameName: "☐ Womkel#1682", + plusTier: null, }, { userId: 26564, @@ -13273,6 +13613,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733858136, inGameName: "☐Jelly...#3387", + plusTier: null, }, ], checkIns: [ @@ -13314,6 +13655,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733966096, inGameName: "§ LimnL#1167", + plusTier: null, }, { userId: 25741, @@ -13326,6 +13668,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733966173, inGameName: "Toast!#9282", + plusTier: null, }, { userId: 42874, @@ -13338,6 +13681,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733966255, inGameName: "QS§ shade#8976", + plusTier: null, }, { userId: 39470, @@ -13350,6 +13694,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733995042, inGameName: "Vi♪#2860", + plusTier: null, }, { userId: 32878, @@ -13362,6 +13707,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734008017, inGameName: "§ rzor#3175", + plusTier: null, }, ], checkIns: [ @@ -13403,6 +13749,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734021147, inGameName: "⊂²⊃Lynx#2645", + plusTier: null, }, { userId: 45174, @@ -13415,6 +13762,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734021215, inGameName: "⊂²⊃Bisc#2044", + plusTier: null, }, { userId: 10222, @@ -13427,6 +13775,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734021280, inGameName: "⊂²⊃Despair#2742", + plusTier: null, }, { userId: 6976, @@ -13439,6 +13788,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734031699, inGameName: "⊂²⊃Camexrn#9414", + plusTier: null, }, { userId: 46504, @@ -13451,6 +13801,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734032940, inGameName: "⊂²⊃ J#1795", + plusTier: null, }, ], checkIns: [ @@ -13492,6 +13843,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734040772, inGameName: "$2 kαye#1141", + plusTier: null, }, { userId: 43753, @@ -13504,6 +13856,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734040792, inGameName: "$2 Henk#3060", + plusTier: null, }, { userId: 45806, @@ -13516,6 +13869,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734040795, inGameName: "Bodi#1083", + plusTier: null, }, { userId: 46648, @@ -13528,6 +13882,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734041012, inGameName: "$2 Boros#1605", + plusTier: null, }, ], checkIns: [ @@ -13569,6 +13924,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734033803, inGameName: "CH◆tariq#2613", + plusTier: null, }, { userId: 44328, @@ -13581,6 +13937,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734033808, inGameName: "CH✦(Splat)#1396", + plusTier: null, }, { userId: 12235, @@ -13593,6 +13950,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734033810, inGameName: "★W⦶⦶b⦵⦵b★#1331", + plusTier: null, }, { userId: 29531, @@ -13605,6 +13963,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734124051, inGameName: "とづ 8#1129", + plusTier: null, }, { userId: 30044, @@ -13617,6 +13976,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734198626, inGameName: "Addy!#2572", + plusTier: null, }, ], checkIns: [ @@ -13658,6 +14018,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734099612, inGameName: "nx★Juan★#2469", + plusTier: null, }, { userId: 37641, @@ -13670,6 +14031,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734105791, inGameName: "Veater_27#7110", + plusTier: null, }, { userId: 33913, @@ -13682,6 +14044,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734106106, inGameName: "Pablitodmd#1039", + plusTier: null, }, { userId: 42597, @@ -13694,6 +14057,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734130054, inGameName: "marco#8993", + plusTier: null, }, { userId: 24572, @@ -13706,6 +14070,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734130213, inGameName: "kira#1088", + plusTier: null, }, ], checkIns: [ @@ -13742,6 +14107,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734113463, inGameName: "DumbKnight#2534", + plusTier: null, }, { userId: 33276, @@ -13754,6 +14120,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734119726, inGameName: "Bronze!#5994", + plusTier: null, }, { userId: 41038, @@ -13766,6 +14133,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734119729, inGameName: "SnC Jammy#1610", + plusTier: null, }, { userId: 11198, @@ -13778,6 +14146,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734119850, inGameName: "Tomatty#1655", + plusTier: null, }, ], checkIns: [ @@ -13819,6 +14188,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734118202, inGameName: "AI thds#1117", + plusTier: null, }, { userId: 14927, @@ -13831,6 +14201,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734118214, inGameName: "AI Alphi#3562", + plusTier: null, }, { userId: 1236, @@ -13843,6 +14214,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734118218, inGameName: "Melvo#8510", + plusTier: null, }, { userId: 27069, @@ -13855,6 +14227,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734118221, inGameName: "Wither :3#1655", + plusTier: null, }, ], checkIns: [], @@ -13890,6 +14263,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734134334, inGameName: "6pk hype#2205", + plusTier: null, }, { userId: 25952, @@ -13902,6 +14276,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734134336, inGameName: "6pk coneco#3350", + plusTier: null, }, { userId: 27611, @@ -13914,6 +14289,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734134344, inGameName: "6pk vowels#1832", + plusTier: null, }, { userId: 11186, @@ -13926,6 +14302,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734134349, inGameName: "6pSomesing#8428", + plusTier: null, }, { userId: 23481, @@ -13938,6 +14315,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734136034, inGameName: "Squidoku#3096", + plusTier: null, }, ], checkIns: [ @@ -13979,6 +14357,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733169181, inGameName: "SR★MB20YT#1798", + plusTier: null, }, { userId: 38610, @@ -13991,6 +14370,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733169320, inGameName: "SR★Phil#1761", + plusTier: null, }, { userId: 40713, @@ -14003,6 +14383,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733169508, inGameName: "SR★Loha#3062", + plusTier: null, }, { userId: 40766, @@ -14015,6 +14396,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733191023, inGameName: "SR★Goggles#9276", + plusTier: null, }, ], checkIns: [ @@ -14056,6 +14438,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733247691, inGameName: "Yolo#4117", + plusTier: null, }, { userId: 46538, @@ -14068,6 +14451,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733248120, inGameName: "REDACTED™#2445", + plusTier: null, }, { userId: 46523, @@ -14080,6 +14464,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733254364, inGameName: "яєαℓм#2823", + plusTier: null, }, { userId: 46501, @@ -14092,6 +14477,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733255832, inGameName: "ira#5400", + plusTier: null, }, ], checkIns: [ @@ -14133,6 +14519,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733452618, inGameName: "lavie♪#1025", + plusTier: null, }, { userId: 17049, @@ -14145,6 +14532,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733452664, inGameName: "♪Sunshine♪#1855", + plusTier: null, }, { userId: 36888, @@ -14157,6 +14545,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733452675, inGameName: "LoftKnight#2145", + plusTier: null, }, { userId: 46546, @@ -14169,6 +14558,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733727932, inGameName: "Squiggly#1806", + plusTier: null, }, { userId: 42172, @@ -14181,6 +14571,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733782852, inGameName: "Verchi#2950", + plusTier: null, }, ], checkIns: [], @@ -14211,6 +14602,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733481710, inGameName: "★*мvstang#2813", + plusTier: null, }, { userId: 40912, @@ -14223,6 +14615,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733481731, inGameName: "★*Neven#5092", + plusTier: null, }, { userId: 30455, @@ -14235,6 +14628,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733481736, inGameName: "★*Miles#2639", + plusTier: null, }, { userId: 27649, @@ -14247,6 +14641,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733481739, inGameName: "★*Pulfis#2895", + plusTier: null, }, { userId: 43703, @@ -14259,6 +14654,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733502639, inGameName: "Φ; Spud ★#3135", + plusTier: null, }, ], checkIns: [], @@ -14294,6 +14690,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733508949, inGameName: "skgrizz#8819", + plusTier: null, }, { userId: 46451, @@ -14306,6 +14703,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733525710, inGameName: "Pestilence#4777", + plusTier: null, }, { userId: 44412, @@ -14318,6 +14716,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733527279, inGameName: "folly#5759", + plusTier: null, }, { userId: 45194, @@ -14330,6 +14729,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733528514, inGameName: "Crumbs#1223", + plusTier: null, }, ], checkIns: [ @@ -14371,6 +14771,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733611261, inGameName: "lepton#2586", + plusTier: null, }, { userId: 21755, @@ -14383,6 +14784,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733801424, inGameName: "borbo =3#1160", + plusTier: null, }, { userId: 27984, @@ -14395,6 +14797,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733805620, inGameName: "Orange_ =3#1571", + plusTier: null, }, { userId: 27990, @@ -14407,6 +14810,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733806448, inGameName: "chip =3#3160", + plusTier: null, }, ], checkIns: [ @@ -14443,6 +14847,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733841846, inGameName: "★S→MILENKO#1628", + plusTier: null, }, { userId: 41943, @@ -14455,6 +14860,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733841861, inGameName: "Ashes360#2691", + plusTier: null, }, { userId: 45290, @@ -14467,6 +14873,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733841865, inGameName: "Charli#3401", + plusTier: null, }, { userId: 46394, @@ -14479,6 +14886,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733841867, inGameName: "Leshy#7700", + plusTier: null, }, { userId: 46400, @@ -14491,6 +14899,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733841868, inGameName: "⭐S->Salvo#2510", + plusTier: null, }, ], checkIns: [ @@ -14532,6 +14941,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1733878153, inGameName: "chicken#3343", + plusTier: null, }, { userId: 38960, @@ -14544,6 +14954,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733878225, inGameName: "caustic#7812", + plusTier: null, }, { userId: 32199, @@ -14556,6 +14967,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1733931535, inGameName: "Ducky/DC#9919", + plusTier: null, }, { userId: 40126, @@ -14568,6 +14980,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734124484, inGameName: "[∞B]Mochi#4755", + plusTier: null, }, ], checkIns: [ @@ -14609,6 +15022,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 1, createdAt: 1734135144, inGameName: "Perijove#1632", + plusTier: null, }, { userId: 44866, @@ -14621,6 +15035,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734135149, inGameName: "Dr. Ness#3373", + plusTier: null, }, { userId: 44642, @@ -14633,6 +15048,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734135638, inGameName: "Endee#4738", + plusTier: null, }, { userId: 45391, @@ -14645,6 +15061,7 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isOwner: 0, createdAt: 1734136833, inGameName: "Cledesol#0674", + plusTier: null, }, ], checkIns: [ diff --git a/app/features/tournament-bracket/core/tests/mocks-sos.ts b/app/features/tournament-bracket/core/tests/mocks-sos.ts index 470f2842b..7103fe95e 100644 --- a/app/features/tournament-bracket/core/tests/mocks-sos.ts +++ b/app/features/tournament-bracket/core/tests/mocks-sos.ts @@ -2014,6 +2014,7 @@ export const SWIM_OR_SINK_167 = ( ], lockedMatches: [], }, + seedingSnapshot: null, mapPickingStyle: "TO", rules: "Here are our rules in a Google Doc!\n\nhttps://docs.google.com/document/d/1Q92U2lKmm337Xi0RpHSFS3RYdSw9Ivn8BC-Be0-J3r8/", @@ -2422,6 +2423,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730771673, inGameName: "dx mocher#3333", + plusTier: null, }, { userId: 9403, @@ -2434,6 +2436,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730771744, inGameName: "R <3#1254", + plusTier: null, }, { userId: 31868, @@ -2446,6 +2449,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730771772, inGameName: "Addict#4811", + plusTier: null, }, { userId: 13562, @@ -2458,6 +2462,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730790990, inGameName: null, + plusTier: null, }, { userId: 34724, @@ -2470,6 +2475,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730848243, inGameName: "( >‿< ) #1925", + plusTier: null, }, { userId: 27222, @@ -2482,6 +2488,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730941117, inGameName: null, + plusTier: null, }, ], checkIns: [ @@ -2538,6 +2545,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730931681, inGameName: "(?)#1719", + plusTier: null, }, { userId: 331, @@ -2550,6 +2558,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730931818, inGameName: "kera#1797", + plusTier: null, }, { userId: 44, @@ -2562,6 +2571,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730932211, inGameName: "dM_rshell1#2568", + plusTier: null, }, { userId: 65, @@ -2574,6 +2584,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730936191, inGameName: "dM_vexen#1559", + plusTier: null, }, ], checkIns: [ @@ -2630,6 +2641,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730864603, inGameName: "コントロール <3#1605", + plusTier: null, }, { userId: 10200, @@ -2642,6 +2654,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730864607, inGameName: "Woomy#1265", + plusTier: null, }, { userId: 1038, @@ -2654,6 +2667,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730864614, inGameName: "Kabi#5484", + plusTier: null, }, { userId: 1059, @@ -2666,6 +2680,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730864617, inGameName: "Taro#2443", + plusTier: null, }, { userId: 267, @@ -2678,6 +2693,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730939914, inGameName: "Hiyah#3200", + plusTier: null, }, ], checkIns: [ @@ -2734,6 +2750,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730932511, inGameName: "titan#1102", + plusTier: null, }, { userId: 9034, @@ -2746,6 +2763,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730932518, inGameName: "zephyr#2292", + plusTier: null, }, { userId: 590, @@ -2758,6 +2776,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730932538, inGameName: "closure#2716", + plusTier: null, }, { userId: 29643, @@ -2770,6 +2789,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730933208, inGameName: "《ƒr》к∀†§#8079", + plusTier: null, }, ], checkIns: [ @@ -2826,6 +2846,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730922495, inGameName: "7 nova#2185", + plusTier: null, }, { userId: 5368, @@ -2838,6 +2859,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730922504, inGameName: "Bl!Dismaqe#2590", + plusTier: null, }, { userId: 373, @@ -2850,6 +2872,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730922735, inGameName: "Niightmare#3052", + plusTier: null, }, { userId: 37677, @@ -2862,6 +2885,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730925935, inGameName: "M∀LISS :)#2207", + plusTier: null, }, ], checkIns: [ @@ -2918,6 +2942,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730788095, inGameName: "КraкenMare#2266", + plusTier: null, }, { userId: 11143, @@ -2930,6 +2955,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730788096, inGameName: "DRF#2937", + plusTier: null, }, { userId: 20311, @@ -2942,6 +2968,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730788097, inGameName: "Mewtwo :)#2309", + plusTier: null, }, { userId: 11815, @@ -2954,6 +2981,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730788098, inGameName: "Pepé#1340", + plusTier: null, }, { userId: 5001, @@ -2966,6 +2994,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730788099, inGameName: "Smork#1828", + plusTier: null, }, { userId: 7216, @@ -2978,6 +3007,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730788099, inGameName: "v4p0я#3011", + plusTier: null, }, ], checkIns: [ @@ -3039,6 +3069,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730774561, inGameName: "⦾ ▽Scribys#7872", + plusTier: null, }, { userId: 20026, @@ -3051,6 +3082,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730774563, inGameName: "⦾▽Mecog#1866", + plusTier: null, }, { userId: 5227, @@ -3063,6 +3095,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730774565, inGameName: "⦾▽Neea!#4244", + plusTier: null, }, { userId: 25622, @@ -3075,6 +3108,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730774567, inGameName: "⦾▽rice:3#5034", + plusTier: null, }, { userId: 25053, @@ -3087,6 +3121,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730774568, inGameName: "⦾▽SlimeSer#3009", + plusTier: null, }, ], checkIns: [ @@ -3148,6 +3183,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730935243, inGameName: "Soveliss#2381", + plusTier: null, }, { userId: 5947, @@ -3160,6 +3196,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730935247, inGameName: "an_Arbiter#4805", + plusTier: null, }, { userId: 8760, @@ -3172,6 +3209,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730935248, inGameName: "Kaiser#2891", + plusTier: null, }, { userId: 1548, @@ -3184,6 +3222,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730935250, inGameName: "ashura!#9386", + plusTier: null, }, { userId: 163, @@ -3196,6 +3235,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730935251, inGameName: "Zon#1975", + plusTier: null, }, ], checkIns: [ @@ -3257,6 +3297,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730851309, inGameName: "<<∀>> Trece°#2886", + plusTier: null, }, { userId: 2670, @@ -3269,6 +3310,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730851310, inGameName: "Horshio #9328", + plusTier: null, }, { userId: 36265, @@ -3281,6 +3323,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730851312, inGameName: "Seiðr#1805", + plusTier: null, }, { userId: 23505, @@ -3293,6 +3336,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730908087, inGameName: "Hnm?#hnmm", + plusTier: null, }, ], checkIns: [ @@ -3354,6 +3398,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730870818, inGameName: "~JJaeigh~#1248", + plusTier: null, }, { userId: 11244, @@ -3366,6 +3411,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730870821, inGameName: "Blu?#2930", + plusTier: null, }, { userId: 3181, @@ -3378,6 +3424,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730870823, inGameName: "~Cakes~#2092", + plusTier: null, }, { userId: 11495, @@ -3390,6 +3437,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730870825, inGameName: "~Parx~#1833", + plusTier: null, }, { userId: 31073, @@ -3402,6 +3450,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730870827, inGameName: "~Shinds~#2929", + plusTier: null, }, ], checkIns: [ @@ -3458,6 +3507,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730872875, inGameName: "BIG.Mini#6901", + plusTier: null, }, { userId: 21487, @@ -3470,6 +3520,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730872878, inGameName: "Nep2ne#2294", + plusTier: null, }, { userId: 28391, @@ -3482,6 +3533,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730872879, inGameName: "SylphLux#1917", + plusTier: null, }, { userId: 23292, @@ -3494,6 +3546,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730872880, inGameName: "BIG Toto⭐️#1933", + plusTier: null, }, { userId: 27438, @@ -3506,6 +3559,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730927365, inGameName: "Coolo☆#3251", + plusTier: null, }, ], checkIns: [ @@ -3562,6 +3616,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730934390, inGameName: "takobon#6183", + plusTier: null, }, { userId: 4307, @@ -3574,6 +3629,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730934493, inGameName: "Ezio! ^#3340", + plusTier: null, }, { userId: 20731, @@ -3586,6 +3642,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730934504, inGameName: "MEL0MANIA★#1137", + plusTier: null, }, { userId: 22706, @@ -3598,6 +3655,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730934958, inGameName: "Tyflo#3737", + plusTier: null, }, ], checkIns: [ @@ -3654,6 +3712,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730925172, inGameName: "DeeZy#8797", + plusTier: null, }, { userId: 15278, @@ -3666,6 +3725,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730925174, inGameName: "teh-c#7843", + plusTier: null, }, { userId: 34414, @@ -3678,6 +3738,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730925178, inGameName: "★spritzu#1225", + plusTier: null, }, { userId: 863, @@ -3690,6 +3751,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730925182, inGameName: "kilokilo#2652", + plusTier: null, }, { userId: 31526, @@ -3702,6 +3764,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730939317, inGameName: "caravaggio#1994", + plusTier: null, }, ], checkIns: [ @@ -3763,6 +3826,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730526186, inGameName: "ξヨ Minty!↑#2932", + plusTier: null, }, { userId: 1736, @@ -3775,6 +3839,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730526191, inGameName: "Draconif#1259", + plusTier: null, }, { userId: 986, @@ -3787,6 +3852,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730526191, inGameName: "Latios#2323", + plusTier: null, }, { userId: 2300, @@ -3799,6 +3865,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730526191, inGameName: "osa?#9356", + plusTier: null, }, { userId: 25464, @@ -3811,6 +3878,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730526191, inGameName: "ξヨ IRRLUS#2192", + plusTier: null, }, { userId: 30204, @@ -3823,6 +3891,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730838396, inGameName: "m#31926", + plusTier: null, }, ], checkIns: [ @@ -3884,6 +3953,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730940438, inGameName: "PANDORA#1510", + plusTier: null, }, { userId: 11275, @@ -3896,6 +3966,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730940441, inGameName: "HOMUNCULUS#1638", + plusTier: null, }, { userId: 9718, @@ -3908,6 +3979,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730940948, inGameName: "GOODBYE!!!#5140", + plusTier: null, }, ], checkIns: [], @@ -3938,6 +4010,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730912708, inGameName: "Magyk♪ :•:#2624", + plusTier: null, }, { userId: 2088, @@ -3950,6 +4023,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730912712, inGameName: "Ichie.deco#1196", + plusTier: null, }, { userId: 9454, @@ -3962,6 +4036,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730920131, inGameName: "Pixel <3#1912", + plusTier: null, }, { userId: 2059, @@ -3974,6 +4049,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929082, inGameName: "Cactus#3214", + plusTier: null, }, ], checkIns: [ @@ -4030,6 +4106,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730936919, inGameName: "shawrk#4318", + plusTier: null, }, { userId: 25168, @@ -4042,6 +4119,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730936940, inGameName: "Drag?#1163", + plusTier: null, }, { userId: 27485, @@ -4054,6 +4132,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730936960, inGameName: "BigFish♪#2829", + plusTier: null, }, { userId: 14007, @@ -4066,6 +4145,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730937813, inGameName: "アロハ#2443", + plusTier: null, }, ], checkIns: [ @@ -4122,6 +4202,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730937337, inGameName: null, + plusTier: null, }, { userId: 1338, @@ -4134,6 +4215,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730937342, inGameName: "Cytrus#1239", + plusTier: null, }, { userId: 5679, @@ -4146,6 +4228,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730937348, inGameName: "after you…#2794", + plusTier: null, }, { userId: 241, @@ -4158,6 +4241,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730937354, inGameName: "mars#1311", + plusTier: null, }, ], checkIns: [ @@ -4214,6 +4298,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730769135, inGameName: "FREEEWIN#3363", + plusTier: null, }, { userId: 33116, @@ -4226,6 +4311,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730769143, inGameName: "Andric#3010", + plusTier: null, }, { userId: 34014, @@ -4238,6 +4324,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730769146, inGameName: "Jay★#1846", + plusTier: null, }, { userId: 44751, @@ -4250,6 +4337,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730769149, inGameName: "lc...Koki#3019", + plusTier: null, }, { userId: 44198, @@ -4262,6 +4350,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730772612, inGameName: "4K#2192", + plusTier: null, }, { userId: 22756, @@ -4274,6 +4363,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929021, inGameName: "↓ ceiling!#2229", + plusTier: null, }, ], checkIns: [ @@ -4335,6 +4425,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730836875, inGameName: "Vertigø_c#5295", + plusTier: null, }, { userId: 1487, @@ -4347,6 +4438,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730836878, inGameName: "BrΘck.c©m#1845", + plusTier: null, }, { userId: 17310, @@ -4359,6 +4451,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730836887, inGameName: "Θ© OhkoXar#1431", + plusTier: null, }, { userId: 34657, @@ -4371,6 +4464,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730836891, inGameName: "NateFH#1930", + plusTier: null, }, { userId: 22409, @@ -4383,6 +4477,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730938882, inGameName: "Pinot Noir#3156", + plusTier: null, }, ], checkIns: [ @@ -4444,6 +4539,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730844165, inGameName: "Ж∵Bebrop#8946", + plusTier: null, }, { userId: 2672, @@ -4456,6 +4552,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730844167, inGameName: "Ж∵ĄyJαe#1696", + plusTier: null, }, { userId: 4504, @@ -4468,6 +4565,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730844171, inGameName: "LordEspurr#2800", + plusTier: null, }, { userId: 25856, @@ -4480,6 +4578,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730844174, inGameName: "¤*°4Nishi#1810", + plusTier: null, }, ], checkIns: [ @@ -4541,6 +4640,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730926359, inGameName: "↑MONK£¥#3265", + plusTier: null, }, { userId: 34071, @@ -4553,6 +4653,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730926611, inGameName: "SBz☆ Peace#2232", + plusTier: null, }, { userId: 23946, @@ -4565,6 +4666,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730926770, inGameName: null, + plusTier: null, }, { userId: 21339, @@ -4577,6 +4679,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730927035, inGameName: "DogBoySoro#1928", + plusTier: null, }, ], checkIns: [ @@ -4633,6 +4736,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730928135, inGameName: "λ...flowerss#2664", + plusTier: null, }, { userId: 5261, @@ -4645,6 +4749,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730928142, inGameName: "ƒ¿¡Koda!?#1726", + plusTier: null, }, { userId: 190, @@ -4657,6 +4762,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730928155, inGameName: "λ...tart^#2174", + plusTier: null, }, { userId: 12585, @@ -4669,6 +4775,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730931277, inGameName: "Chaeri#3358", + plusTier: null, }, ], checkIns: [ @@ -4725,6 +4832,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730880730, inGameName: "Plussy#1291", + plusTier: null, }, { userId: 2731, @@ -4737,6 +4845,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730880736, inGameName: "VanNoah#1555", + plusTier: null, }, { userId: 31764, @@ -4749,6 +4858,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730880862, inGameName: "Bara Rider#1679", + plusTier: null, }, { userId: 25133, @@ -4761,6 +4871,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730894461, inGameName: "☆jinx☰∵#1970", + plusTier: null, }, { userId: 17855, @@ -4773,6 +4884,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730936268, inGameName: "paracelsus#2947", + plusTier: null, }, ], checkIns: [], @@ -4808,6 +4920,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730939363, inGameName: "Young⇔Bob#2564", + plusTier: null, }, { userId: 32885, @@ -4820,6 +4933,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730939368, inGameName: "Skippy⇔Tox#5504", + plusTier: null, }, { userId: 1953, @@ -4832,6 +4946,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730939370, inGameName: "Bored⇔asf#1000", + plusTier: null, }, { userId: 15188, @@ -4844,6 +4959,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730939376, inGameName: "91Yugo#1966", + plusTier: null, }, { userId: 2888, @@ -4856,6 +4972,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730939459, inGameName: null, + plusTier: null, }, ], checkIns: [ @@ -4917,6 +5034,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730838132, inGameName: "Sυκμη⍺´ω`#1959", + plusTier: null, }, { userId: 8297, @@ -4929,6 +5047,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730838136, inGameName: "Pizzasquid #1740", + plusTier: null, }, { userId: 8830, @@ -4941,6 +5060,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730838136, inGameName: "Yuta...#2764", + plusTier: null, }, { userId: 38176, @@ -4953,6 +5073,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730903083, inGameName: "BrushMommy#1405", + plusTier: null, }, ], checkIns: [ @@ -5014,6 +5135,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730917380, inGameName: "ψ Nero#1025", + plusTier: null, }, { userId: 36215, @@ -5026,6 +5148,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730917384, inGameName: "Heaven#1583", + plusTier: null, }, ], checkIns: [], @@ -5061,6 +5184,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730832667, inGameName: "Bubble.mp4#3578", + plusTier: null, }, { userId: 6051, @@ -5073,6 +5197,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730832669, inGameName: "ACECT.mp4#2681", + plusTier: null, }, { userId: 22903, @@ -5085,6 +5210,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730832670, inGameName: "NELL.mp4#6192", + plusTier: null, }, { userId: 23132, @@ -5097,6 +5223,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730832675, inGameName: "☆! soap c:#2845", + plusTier: null, }, ], checkIns: [ @@ -5153,6 +5280,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730853887, inGameName: "ミ》Auto#8936", + plusTier: null, }, { userId: 29120, @@ -5165,6 +5293,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730853889, inGameName: "ミ》AwesIce#4299", + plusTier: null, }, { userId: 35225, @@ -5177,6 +5306,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730853890, inGameName: "ミ》Kolos#1649", + plusTier: null, }, { userId: 8587, @@ -5189,6 +5319,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730853891, inGameName: "ミ》Vγτãłîç#3075", + plusTier: null, }, { userId: 23333, @@ -5201,6 +5332,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730927852, inGameName: "☆_★ rin#5714", + plusTier: null, }, ], checkIns: [ @@ -5262,6 +5394,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730928986, inGameName: "「F」sawyer #7539", + plusTier: null, }, { userId: 31395, @@ -5274,6 +5407,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929028, inGameName: "In 「F」iniTy#1007", + plusTier: null, }, { userId: 31195, @@ -5286,6 +5420,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929043, inGameName: "「F」Cotni#3521", + plusTier: null, }, { userId: 28700, @@ -5298,6 +5433,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929068, inGameName: "Kanga#2476", + plusTier: null, }, { userId: 33402, @@ -5310,6 +5446,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929154, inGameName: "*~*flyNn#2174", + plusTier: null, }, ], checkIns: [ @@ -5366,6 +5503,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730775625, inGameName: "LosTheresa#3238", + plusTier: null, }, { userId: 30686, @@ -5378,6 +5516,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730775627, inGameName: "Los Equals#2851", + plusTier: null, }, { userId: 22396, @@ -5390,6 +5529,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730775628, inGameName: "Los Hammy#4656", + plusTier: null, }, { userId: 1961, @@ -5402,6 +5542,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730775632, inGameName: "Los SeaSlug#2211", + plusTier: null, }, ], checkIns: [ @@ -5463,6 +5604,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730605037, inGameName: "н°Tusk#7435", + plusTier: null, }, { userId: 5187, @@ -5475,6 +5617,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730605040, inGameName: "н°Kahlium#1387", + plusTier: null, }, { userId: 10265, @@ -5487,6 +5630,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730605043, inGameName: "н°SodaChip#6437", + plusTier: null, }, { userId: 22744, @@ -5499,6 +5643,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730605046, inGameName: "н°Dυstt♪#4897", + plusTier: null, }, { userId: 29823, @@ -5511,6 +5656,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730936575, inGameName: "Doritos 4D#2929", + plusTier: null, }, ], checkIns: [ @@ -5572,6 +5718,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730862741, inGameName: "σ*°yoshido#3235", + plusTier: null, }, { userId: 13671, @@ -5584,6 +5731,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730862749, inGameName: "σ*°Nutella#7762", + plusTier: null, }, { userId: 30612, @@ -5596,6 +5744,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730862751, inGameName: "σ*°Crazy!?#2260", + plusTier: null, }, { userId: 36898, @@ -5608,6 +5757,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730862753, inGameName: "σ*°Town#1561", + plusTier: null, }, { userId: 31580, @@ -5620,6 +5770,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730862754, inGameName: "Saicadelic#2256", + plusTier: null, }, ], checkIns: [ @@ -5681,6 +5832,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730840221, inGameName: "はい [Masta]#2933", + plusTier: null, }, { userId: 31533, @@ -5693,6 +5845,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730840228, inGameName: "はいheheheha#1181", + plusTier: null, }, { userId: 29483, @@ -5705,6 +5858,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730840230, inGameName: "はい Mr.Miu#2064", + plusTier: null, }, { userId: 42118, @@ -5717,6 +5871,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730840247, inGameName: "ネオ :)#2395", + plusTier: null, }, { userId: 36800, @@ -5729,6 +5884,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730840250, inGameName: "ネオ【Shrimp】#2715", + plusTier: null, }, ], checkIns: [], @@ -5764,6 +5920,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730770163, inGameName: "R↑ Static#1144", + plusTier: null, }, { userId: 26820, @@ -5776,6 +5933,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730770166, inGameName: "R↑ Steorra#1628", + plusTier: null, }, { userId: 31154, @@ -5788,6 +5946,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730770170, inGameName: "Renzo™#3392", + plusTier: null, }, { userId: 10297, @@ -5800,6 +5959,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730770171, inGameName: "R↑ Yung#3273", + plusTier: null, }, { userId: 3513, @@ -5812,6 +5972,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730930402, inGameName: "R↑ Zebra#1631", + plusTier: null, }, { userId: 25469, @@ -5824,6 +5985,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730940399, inGameName: "Nэon#2724", + plusTier: null, }, ], checkIns: [ @@ -5885,6 +6047,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730753582, inGameName: "⌒★ Star#3354", + plusTier: null, }, { userId: 3635, @@ -5897,6 +6060,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730753589, inGameName: "⌒★ Jam#3645", + plusTier: null, }, { userId: 7433, @@ -5909,6 +6073,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730753592, inGameName: "soapsopa_#1192", + plusTier: null, }, { userId: 6647, @@ -5921,6 +6086,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730753597, inGameName: "Snivo ♪#1911", + plusTier: null, }, ], checkIns: [], @@ -5956,6 +6122,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730929508, inGameName: "βαjαβlαstr#1203", + plusTier: null, }, { userId: 20807, @@ -5968,6 +6135,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929511, inGameName: "SplaTea TV#9482", + plusTier: null, }, { userId: 42703, @@ -5980,6 +6148,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929514, inGameName: "gameing#2389", + plusTier: null, }, { userId: 42409, @@ -5992,6 +6161,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730929826, inGameName: "☆メンタリーイル☆#1319", + plusTier: null, }, ], checkIns: [ @@ -6053,6 +6223,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730918770, inGameName: "[шя] Eon#1465", + plusTier: null, }, { userId: 11941, @@ -6065,6 +6236,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730918777, inGameName: "Elysium#1821", + plusTier: null, }, { userId: 715, @@ -6077,6 +6249,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730918781, inGameName: "☆°Craft#1704", + plusTier: null, }, { userId: 11409, @@ -6089,6 +6262,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730918861, inGameName: "≡□> Sapphi#7100", + plusTier: null, }, ], checkIns: [], @@ -6119,6 +6293,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730851475, inGameName: "Neo☆PR#2944", + plusTier: null, }, { userId: 29182, @@ -6131,6 +6306,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730852187, inGameName: "macha/まちゃ#1856", + plusTier: null, }, { userId: 9235, @@ -6143,6 +6319,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730853415, inGameName: "「TK」Tyandj#2146", + plusTier: null, }, { userId: 30591, @@ -6155,6 +6332,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730855938, inGameName: "Fr0sta#1091", + plusTier: null, }, ], checkIns: [ @@ -6211,6 +6389,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730726309, inGameName: "DΔ Shumper#2224", + plusTier: null, }, { userId: 2279, @@ -6223,6 +6402,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730726312, inGameName: "DΔ Ark#1872", + plusTier: null, }, { userId: 26162, @@ -6235,6 +6415,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730726313, inGameName: "e#5440", + plusTier: null, }, { userId: 4334, @@ -6247,6 +6428,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730726315, inGameName: "240 ˚ Roxy #2267", + plusTier: null, }, { userId: 24013, @@ -6259,6 +6441,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730726317, inGameName: "[R]yosaan*#2427", + plusTier: null, }, ], checkIns: [], @@ -6294,6 +6477,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730840643, inGameName: "MF śþí4ł_dz#1260", + plusTier: null, }, { userId: 26801, @@ -6306,6 +6490,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730840650, inGameName: "MF Boneley#2386", + plusTier: null, }, { userId: 29855, @@ -6318,6 +6503,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730840695, inGameName: "v° Draco#2626", + plusTier: null, }, { userId: 34594, @@ -6330,6 +6516,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730846237, inGameName: "LordLouse#1726", + plusTier: null, }, { userId: 33825, @@ -6342,6 +6529,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730850473, inGameName: "Σ∞| 仝Rino #1305", + plusTier: null, }, ], checkIns: [ @@ -6398,6 +6586,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730827259, inGameName: "nme✰marlow#2474", + plusTier: null, }, { userId: 26988, @@ -6410,6 +6599,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730827265, inGameName: "nme☆tari#1818", + plusTier: null, }, { userId: 26989, @@ -6422,6 +6612,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730827270, inGameName: "nme✰6rew#3232", + plusTier: null, }, { userId: 12610, @@ -6434,6 +6625,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730827274, inGameName: "nme☆Pink#2363", + plusTier: null, }, { userId: 25755, @@ -6446,6 +6638,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730827431, inGameName: "→△GayShark#2051", + plusTier: null, }, ], checkIns: [ @@ -6507,6 +6700,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730863477, inGameName: "ØĐ Tipo#2728", + plusTier: null, }, { userId: 37341, @@ -6519,6 +6713,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730863535, inGameName: "ØÐ Bees#7729", + plusTier: null, }, { userId: 22699, @@ -6531,6 +6726,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730863538, inGameName: "ØÐ Giraffe#1937", + plusTier: null, }, { userId: 28145, @@ -6543,6 +6739,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730863540, inGameName: "ØĐ Madman#1438", + plusTier: null, }, { userId: 39363, @@ -6555,6 +6752,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730863556, inGameName: "SMGalactic#2705", + plusTier: null, }, { userId: 27113, @@ -6567,6 +6765,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730942622, inGameName: "Frenzy#1136", + plusTier: null, }, ], checkIns: [ @@ -6628,6 +6827,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730907528, inGameName: "カニ strings#3288", + plusTier: null, }, { userId: 29467, @@ -6640,6 +6840,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730907532, inGameName: "カニ glum#2981", + plusTier: null, }, { userId: 10611, @@ -6652,6 +6853,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730907537, inGameName: "nme☆ash#3048", + plusTier: null, }, { userId: 46099, @@ -6664,6 +6866,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730921252, inGameName: null, + plusTier: null, }, ], checkIns: [ @@ -6720,6 +6923,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730932702, inGameName: null, + plusTier: null, }, { userId: 45163, @@ -6732,6 +6936,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730932829, inGameName: "Siren#1425", + plusTier: null, }, { userId: 2620, @@ -6744,6 +6949,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730933977, inGameName: "Geeиie7#1390", + plusTier: null, }, { userId: 32203, @@ -6756,6 +6962,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730933999, inGameName: "MrHundread#2680", + plusTier: null, }, { userId: 46101, @@ -6768,6 +6975,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730936438, inGameName: null, + plusTier: null, }, ], checkIns: [ @@ -6824,6 +7032,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730832003, inGameName: "LN TheGish#6533", + plusTier: null, }, { userId: 29011, @@ -6836,6 +7045,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730832006, inGameName: "ln Arsynn#5022", + plusTier: null, }, { userId: 23082, @@ -6848,6 +7058,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730832007, inGameName: "ln Blubrry#2022", + plusTier: null, }, { userId: 33067, @@ -6860,6 +7071,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730832008, inGameName: "CT#1817", + plusTier: null, }, { userId: 21549, @@ -6872,6 +7084,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730832010, inGameName: "LN✰Melo#1231", + plusTier: null, }, ], checkIns: [ @@ -6933,6 +7146,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730938507, inGameName: "≡□>Müdkip#1794", + plusTier: null, }, { userId: 20240, @@ -6945,6 +7159,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730938539, inGameName: "V↑ edenn´-#1286", + plusTier: null, }, { userId: 28097, @@ -6957,6 +7172,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730939272, inGameName: "Redstcne#2930", + plusTier: null, }, { userId: 21249, @@ -6969,6 +7185,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730941112, inGameName: "Yippity#2111", + plusTier: null, }, ], checkIns: [ @@ -7025,6 +7242,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730739211, inGameName: "[Typh]#1136", + plusTier: null, }, { userId: 23712, @@ -7037,6 +7255,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730739214, inGameName: "【BlobRoss】#2126", + plusTier: null, }, { userId: 27474, @@ -7049,6 +7268,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730739215, inGameName: "[Hiro]#2533", + plusTier: null, }, { userId: 20990, @@ -7061,6 +7281,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730739216, inGameName: "peepeepoop#1111", + plusTier: null, }, { userId: 8080, @@ -7073,6 +7294,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730739217, inGameName: "【OmaZen】#3391", + plusTier: null, }, { userId: 28671, @@ -7085,6 +7307,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730739219, inGameName: "[Vyllie]#3297", + plusTier: null, }, ], checkIns: [ @@ -7141,6 +7364,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730857328, inGameName: "とづ 8#1129", + plusTier: null, }, { userId: 3275, @@ -7153,6 +7377,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730904348, inGameName: "とづMrSaturn#2189", + plusTier: null, }, { userId: 35169, @@ -7165,6 +7390,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730904355, inGameName: "とづ θιθ#1490", + plusTier: null, }, { userId: 7008, @@ -7177,6 +7403,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730904365, inGameName: "とづvalencia#1253", + plusTier: null, }, { userId: 40169, @@ -7189,6 +7416,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730904367, inGameName: "とづ《WorldG》#9475", + plusTier: null, }, ], checkIns: [ @@ -7250,6 +7478,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730591675, inGameName: "μ▽ Lila#4004", + plusTier: null, }, { userId: 23183, @@ -7262,6 +7491,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730591678, inGameName: "µ▽ Esmé!#3323", + plusTier: null, }, { userId: 7664, @@ -7274,6 +7504,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730591679, inGameName: "LOR ⭐•ß#2730", + plusTier: null, }, { userId: 30237, @@ -7286,6 +7517,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730591811, inGameName: "Erik#3177", + plusTier: null, }, ], checkIns: [], @@ -7321,6 +7553,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730859986, inGameName: "»☆ROX★STAR#2212", + plusTier: null, }, { userId: 8552, @@ -7333,6 +7566,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730859996, inGameName: "»☆Funky#3238", + plusTier: null, }, { userId: 29897, @@ -7345,6 +7579,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730877839, inGameName: "𝜁𝜄 Rilosaur#3053", + plusTier: null, }, { userId: 1894, @@ -7357,6 +7592,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730891774, inGameName: "∞Crowboy#8452", + plusTier: null, }, ], checkIns: [ @@ -7413,6 +7649,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 1, createdAt: 1730703689, inGameName: "[UK] NVL#2046", + plusTier: null, }, { userId: 43850, @@ -7425,6 +7662,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730703692, inGameName: "UKMrioMyhm#3296", + plusTier: null, }, { userId: 45635, @@ -7437,6 +7675,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730755609, inGameName: null, + plusTier: null, }, { userId: 46045, @@ -7449,6 +7688,7 @@ export const SWIM_OR_SINK_167 = ( isOwner: 0, createdAt: 1730760107, inGameName: null, + plusTier: null, }, ], checkIns: [ diff --git a/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts b/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts index f22b7ab1d..f60b6f396 100644 --- a/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts +++ b/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts @@ -317,6 +317,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ }, castTwitchAccounts: null, castedMatchesInfo: null, + seedingSnapshot: null, mapPickingStyle: "TO", rules: "For the complete and up to date rules see #rules and #announcements in the discord.\n\n**Tournament Proceedings**\nContact your opponent through tournament match page. If issues occur, a TO may direct you to a captain’s chat in the discord.\n\n**Map Counterpicks**\nThe loser of each match chooses the next map in the round. A team may not choose a map that has already been played in the set.\n\n**Disconnections**\nEach team can replay once per set when a disconnection occurs on their side if both of the following apply: \n- the disconnection occurs before 2:30 on the match timer.\n- the objective counter of the team without the disconnect is above 40.\nIf a disconnection occurs before 30 seconds into the match then a free replay is given. Please avoid replaying when these conditions aren’t met (i.e. gentlemen’s replay) so to keep the tournament running on time.\n\n**Other Rules**\n- Use of the private battle quit feature for malicious purposes will result in disqualification.\n- Penalties may be issued to teams that are not in the match lobby within 10 minutes of round start.\n\n**Player Restrictions**\nEach team is allowed up to 6 players. Players of the following group are not allowed to participate without specific exemption from Puma\n- Non-OCE players\n- Oceanink banned players\n\n-- Tournament Organisers reserve the right to make last minute changes to the rules —", @@ -410,6 +411,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 1, createdAt: 1734656039, inGameName: "Plussy#1291", + plusTier: null, }, { userId: 2899, @@ -422,6 +424,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734656044, inGameName: "CHIMERA#1263", + plusTier: null, }, { userId: 6114, @@ -434,6 +437,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734656047, inGameName: "CountMeOut#1985", + plusTier: null, }, { userId: 33963, @@ -446,6 +450,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734664082, inGameName: "BIDOOFGMAX#8251", + plusTier: null, }, { userId: 30176, @@ -458,6 +463,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734674285, inGameName: "Bugha 33#1316", + plusTier: null, }, ], checkIns: [ @@ -499,6 +505,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 1, createdAt: 1734423187, inGameName: "☆ SD-J ☆#2947", + plusTier: null, }, { userId: 21689, @@ -511,6 +518,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734424893, inGameName: "parasyka#2169", + plusTier: null, }, { userId: 3147, @@ -523,6 +531,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734426984, inGameName: "cookie♪#1006", + plusTier: null, }, { userId: 2072, @@ -535,6 +544,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734426986, inGameName: null, + plusTier: null, }, ], checkIns: [ @@ -571,6 +581,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 1, createdAt: 1734660846, inGameName: "Telethia#6611", + plusTier: null, }, { userId: 13370, @@ -583,6 +594,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734660856, inGameName: "Puma#2209", + plusTier: null, }, { userId: 45, @@ -595,6 +607,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734660882, inGameName: "ShockWavee#3003", + plusTier: null, }, { userId: 1843, @@ -607,6 +620,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734663143, inGameName: null, + plusTier: null, }, ], checkIns: [ @@ -643,6 +657,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 1, createdAt: 1734683349, inGameName: "mitsi#2589", + plusTier: null, }, { userId: 13590, @@ -655,6 +670,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734683352, inGameName: "☆ SD-N ☆#2936", + plusTier: null, }, { userId: 10757, @@ -667,6 +683,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734683356, inGameName: "Wilds ♪#6274", + plusTier: null, }, { userId: 33047, @@ -679,6 +696,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734683966, inGameName: "2F Law#1355", + plusTier: null, }, { userId: 41024, @@ -691,6 +709,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734685180, inGameName: "His Silly#2385", + plusTier: null, }, ], checkIns: [ @@ -732,6 +751,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 1, createdAt: 1734608907, inGameName: "H! Veems#3106", + plusTier: null, }, { userId: 29665, @@ -744,6 +764,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734608923, inGameName: "H!PwPwPew#2889", + plusTier: null, }, { userId: 46006, @@ -756,6 +777,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734608925, inGameName: "H!Ozzysqid#2558", + plusTier: null, }, { userId: 33483, @@ -768,6 +790,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734608931, inGameName: "DrkXWolf17#3326", + plusTier: null, }, { userId: 11780, @@ -780,6 +803,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734659216, inGameName: "Slanted#1646", + plusTier: null, }, { userId: 37901, @@ -792,6 +816,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734684084, inGameName: null, + plusTier: null, }, ], checkIns: [ @@ -828,6 +853,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 1, createdAt: 1734397954, inGameName: "Albonchap#9998", + plusTier: null, }, { userId: 43662, @@ -840,6 +866,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734397970, inGameName: "FoolLime#1864", + plusTier: null, }, { userId: 33491, @@ -852,6 +879,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734397973, inGameName: "snowy#2709", + plusTier: null, }, { userId: 46467, @@ -864,6 +892,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734398287, inGameName: "Veryneggy#1494", + plusTier: null, }, { userId: 46813, @@ -876,6 +905,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734398628, inGameName: "Mikil#2961", + plusTier: null, }, ], checkIns: [ @@ -917,6 +947,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 1, createdAt: 1734598652, inGameName: "ЯR Dit-toe#3315", + plusTier: null, }, { userId: 33611, @@ -929,6 +960,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734598655, inGameName: "ЯR Samkat #3138", + plusTier: null, }, { userId: 31148, @@ -941,6 +973,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734598656, inGameName: "ЯR smart!!#1424", + plusTier: null, }, { userId: 33578, @@ -953,6 +986,7 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isOwner: 0, createdAt: 1734612388, inGameName: "Mat#1561", + plusTier: null, }, ], checkIns: [ diff --git a/app/features/tournament-bracket/core/tests/mocks.ts b/app/features/tournament-bracket/core/tests/mocks.ts index a69572e48..264972d24 100644 --- a/app/features/tournament-bracket/core/tests/mocks.ts +++ b/app/features/tournament-bracket/core/tests/mocks.ts @@ -1451,6 +1451,7 @@ export const PADDLING_POOL_257 = () => ], lockedMatches: [], }, + seedingSnapshot: null, mapPickingStyle: "AUTO_ALL", name: "Paddling Pool 257", description: @@ -7429,6 +7430,7 @@ export const PADDLING_POOL_255 = () => ], lockedMatches: [], }, + seedingSnapshot: null, mapPickingStyle: "AUTO_ALL", name: "Paddling Pool 255", description: null, @@ -13715,6 +13717,7 @@ export const IN_THE_ZONE_32 = ({ discordUrl: null, castTwitchAccounts: ["dappleproductions", "kyochandxd"], castedMatchesInfo: null, + seedingSnapshot: null, mapPickingStyle: "AUTO_SZ", name: "In The Zone 32", description: "Part of sendou.ink ranked season 2", diff --git a/app/features/tournament-bracket/core/tests/test-utils.ts b/app/features/tournament-bracket/core/tests/test-utils.ts index c16f3efe3..693b55339 100644 --- a/app/features/tournament-bracket/core/tests/test-utils.ts +++ b/app/features/tournament-bracket/core/tests/test-utils.ts @@ -89,6 +89,7 @@ export const testTournament = ({ ], }, castedMatchesInfo: null, + seedingSnapshot: null, teams: nTeams(participant.length, Math.min(...participant)), author: { chatNameColor: null, diff --git a/app/features/tournament/TournamentRepository.server.ts b/app/features/tournament/TournamentRepository.server.ts index b8c699752..9f486a34f 100644 --- a/app/features/tournament/TournamentRepository.server.ts +++ b/app/features/tournament/TournamentRepository.server.ts @@ -55,6 +55,7 @@ export async function findById(id: number) { "CalendarEvent.description", "CalendarEventDate.startTime", "Tournament.isFinalized", + "Tournament.seedingSnapshot", jsonObjectFrom( eb .selectFrom("TournamentOrganization") @@ -175,6 +176,7 @@ export async function findById(id: number) { isSetAsRanked ? "RANKED" : "UNRANKED", ), ) + .leftJoin("PlusTier", "PlusTier.userId", "User.id") .select([ "User.id as userId", "User.username", @@ -184,6 +186,7 @@ export async function findById(id: number) { "User.country", "User.twitch", "SeedingSkill.ordinal", + "PlusTier.tier as plusTier", "TournamentTeamMember.isOwner", "TournamentTeamMember.createdAt", sql /*sql*/`coalesce( @@ -1175,3 +1178,42 @@ export async function searchByName({ return sqlQuery.execute(); } + +export function updateTeamSeeds({ + tournamentId, + teamIds, + teamsWithMembers, +}: { + tournamentId: number; + teamIds: number[]; + teamsWithMembers: Array<{ + teamId: number; + members: Array<{ userId: number; username: string }>; + }>; +}) { + return db.transaction().execute(async (trx) => { + await trx + .updateTable("TournamentTeam") + .set({ seed: null }) + .where("tournamentId", "=", tournamentId) + .execute(); + + for (const [i, teamId] of teamIds.entries()) { + await trx + .updateTable("TournamentTeam") + .set({ seed: i + 1 }) + .where("id", "=", teamId) + .execute(); + } + + const snapshot = JSON.stringify({ + savedAt: databaseTimestampNow(), + teams: teamsWithMembers, + }); + await trx + .updateTable("Tournament") + .set({ seedingSnapshot: snapshot }) + .where("id", "=", tournamentId) + .execute(); + }); +} diff --git a/app/features/tournament/actions/to.$id.seeds.server.ts b/app/features/tournament/actions/to.$id.seeds.server.ts index 8c6ebf578..d27501387 100644 --- a/app/features/tournament/actions/to.$id.seeds.server.ts +++ b/app/features/tournament/actions/to.$id.seeds.server.ts @@ -11,7 +11,7 @@ import { successToast, } from "~/utils/remix.server"; import { idObject } from "~/utils/zod"; -import { updateTeamSeeds } from "../queries/updateTeamSeeds.server"; +import * as TournamentRepository from "../TournamentRepository.server"; import * as TournamentTeamRepository from "../TournamentTeamRepository.server"; import { seedsActionSchema } from "../tournament-schemas.server"; @@ -32,7 +32,21 @@ export const action: ActionFunction = async ({ request, params }) => { switch (data._action) { case "UPDATE_SEEDS": { - updateTeamSeeds({ tournamentId, teamIds: data.seeds }); + const teamsWithMembers = tournament.ctx.teams + .filter((t) => data.seeds.includes(t.id)) + .map((team) => ({ + teamId: team.id, + members: team.members.map((m) => ({ + userId: m.userId, + username: m.username, + })), + })); + + await TournamentRepository.updateTeamSeeds({ + tournamentId, + teamIds: data.seeds, + teamsWithMembers, + }); clearTournamentDataCache(tournamentId); return successToast("Seeds saved successfully"); } diff --git a/app/features/tournament/queries/updateTeamSeeds.server.ts b/app/features/tournament/queries/updateTeamSeeds.server.ts deleted file mode 100644 index f9fb964b7..000000000 --- a/app/features/tournament/queries/updateTeamSeeds.server.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { sql } from "~/db/sql"; - -const resetSeeds = sql.prepare(/*sql*/ ` - update "TournamentTeam" - set "seed" = null - where "tournamentId" = @tournamentId -`); - -const updateSeedStm = sql.prepare(/*sql*/ ` - update "TournamentTeam" - set "seed" = @seed - where "id" = @teamId -`); - -export const updateTeamSeeds = sql.transaction( - ({ tournamentId, teamIds }: { tournamentId: number; teamIds: number[] }) => { - resetSeeds.run({ tournamentId }); - - for (const [i, teamId] of teamIds.entries()) { - updateSeedStm.run({ - teamId, - seed: i + 1, - }); - } - }, -); diff --git a/app/features/tournament/routes/to.$id.seeds.module.css b/app/features/tournament/routes/to.$id.seeds.module.css new file mode 100644 index 000000000..4a0eecdb2 --- /dev/null +++ b/app/features/tournament/routes/to.$id.seeds.module.css @@ -0,0 +1,216 @@ +.teamsList { + display: flex; + flex-direction: column; + gap: var(--s-2); + padding-left: 0; +} + +.headerRow { + display: none; + width: 100%; + align-items: center; + padding: var(--s-1-5) var(--s-3); + column-gap: var(--s-2); + font-size: var(--fonts-xs); + font-weight: var(--bold); + grid-template-columns: 2.5rem 2.25rem 2rem 1fr 3rem 1fr; +} + +.teamCard { + display: grid; + width: 100%; + align-items: center; + padding: var(--s-2) var(--s-3); + border-radius: var(--rounded); + border: 1px solid var(--border); + background-color: var(--bg-lighter); + column-gap: var(--s-2); + row-gap: var(--s-2); + font-size: var(--fonts-xs); + grid-template-columns: 2rem 2.25rem 2rem 1fr 3rem; + grid-template-areas: + "handle seed logo name sp" + "players players players players players"; + list-style: none; +} + +.handleArea { + grid-area: handle; +} + +.seedArea { + grid-area: seed; +} + +.logoArea { + grid-area: logo; +} + +.nameArea { + grid-area: name; +} + +.spArea { + grid-area: sp; +} + +.playersArea { + grid-area: players; +} + +@media screen and (min-width: 640px) { + .headerRow { + display: grid; + } + + .teamCard { + grid-template-columns: 2.5rem 2.25rem 2rem 1fr 3rem 1fr; + grid-template-areas: "handle seed logo name sp players"; + row-gap: 0; + } +} + +.teamCardDragging { + opacity: 0.5; +} + +.dragHandle { + display: flex; + align-items: center; + justify-content: center; + cursor: grab; + background: none; + border: none; + font-size: var(--fonts-lg); + color: var(--text-lighter); + padding: var(--s-1); + touch-action: none; + user-select: none; + -webkit-user-select: none; +} + +.dragHandle:hover { + color: var(--text); +} + +.dragHandle:active:not(:disabled) { + cursor: grabbing; +} + +.dragHandle:disabled { + cursor: not-allowed; + opacity: 0.5; +} + +.seedInput { + --input-width: 3rem; + text-align: center; + padding: var(--s-0-5); + border-radius: var(--rounded-sm); + border: 1px solid var(--border); + background-color: var(--bg-input); + font-size: var(--fonts-xs); +} + +.seedInput:focus { + outline: 2px solid var(--theme); + outline-offset: 1px; +} + +.teamNameContainer { + position: relative; + display: flex; + align-items: center; + gap: var(--s-1); +} + +.teamName { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.newBadge { + flex-shrink: 0; + background-color: var(--theme-secondary); + color: var(--button-text); + font-size: var(--fonts-xxxxs); + font-weight: var(--bold); + padding: 1px 4px; + border-radius: var(--rounded-xs); + text-transform: uppercase; +} + +.playersList { + display: flex; + flex-wrap: wrap; + gap: var(--s-1); +} + +.playerBadge { + display: flex; + align-items: center; + gap: var(--s-1); + background-color: var(--bg-darker); + border-radius: var(--rounded); + padding: var(--s-0-5) var(--s-2); + font-weight: var(--semi-bold); +} + +.playerNew { + position: relative; +} + +.playerNewBadge { + background-color: var(--theme-info); + color: white; + font-size: var(--fonts-xxxxs); + font-weight: var(--bold); + padding: 1px 3px; + border-radius: var(--rounded-xs); + text-transform: uppercase; + margin-left: var(--s-1); +} + +.plusTier { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 2px; + font-size: var(--fonts-xxxs); + color: var(--text-lighter); +} + +.playerRemoved { + text-decoration: line-through; + color: var(--text-lighter); + opacity: 0.6; +} + +.spValue { + font-variant-numeric: tabular-nums; +} + +.outOfOrder { + color: var(--theme-warning); +} + +.form { + width: 100%; + display: flex; + align-items: center; +} + +.orderButton { + margin-block-start: var(--s-2); + margin-inline-end: auto; +} + +.overlay { + background-color: var(--bg-lighter-solid); + border: 1px solid var(--border); + border-radius: var(--rounded); + padding: var(--s-2) var(--s-3); + box-shadow: var(--shadow-md); + opacity: 0.8; +} diff --git a/app/features/tournament/routes/to.$id.seeds.tsx b/app/features/tournament/routes/to.$id.seeds.tsx index 0dde414bd..4f814630d 100644 --- a/app/features/tournament/routes/to.$id.seeds.tsx +++ b/app/features/tournament/routes/to.$id.seeds.tsx @@ -4,6 +4,7 @@ import { DragOverlay, KeyboardSensor, PointerSensor, + TouchSensor, useSensor, useSensors, } from "@dnd-kit/core"; @@ -11,27 +12,31 @@ import { arrayMove, SortableContext, sortableKeyboardCoordinates, + useSortable, verticalListSortingStrategy, } from "@dnd-kit/sortable"; +import { CSS } from "@dnd-kit/utilities"; import clsx from "clsx"; import * as React from "react"; import { Link, useFetcher, useNavigation } from "react-router"; import { Alert } from "~/components/Alert"; +import { Avatar } from "~/components/Avatar"; import { Catcher } from "~/components/Catcher"; -import { Draggable } from "~/components/Draggable"; import { SendouButton } from "~/components/elements/Button"; import { SendouDialog } from "~/components/elements/Dialog"; +import { Image } from "~/components/Image"; +import { InfoPopover } from "~/components/InfoPopover"; import { SubmitButton } from "~/components/SubmitButton"; import { Table } from "~/components/Table"; +import type { SeedingSnapshot } from "~/db/tables"; import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; import invariant from "~/utils/invariant"; -import { userResultsPage } from "~/utils/urls"; -import { Avatar } from "../../../components/Avatar"; -import { InfoPopover } from "../../../components/InfoPopover"; +import { navIconUrl, userResultsPage } from "~/utils/urls"; import { ordinalToRoundedSp } from "../../mmr/mmr-utils"; import { action } from "../actions/to.$id.seeds.server"; import { loader } from "../loaders/to.$id.seeds.server"; import { useTournament } from "./to.$id"; +import styles from "./to.$id.seeds.module.css"; export { loader, action }; export default function TournamentSeedsPage() { @@ -49,11 +54,28 @@ export default function TournamentSeedsPage() { distance: 8, }, }), + useSensor(TouchSensor, { + activationConstraint: { + delay: 200, + tolerance: 5, + }, + }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates, }), ); + const seedingSnapshot = tournament.ctx.seedingSnapshot; + const newTeamIds = computeNewTeamIds(tournament.ctx.teams, seedingSnapshot); + const newPlayersByTeam = computeNewPlayers( + tournament.ctx.teams, + seedingSnapshot, + ); + const removedPlayersByTeam = computeRemovedPlayers( + tournament.ctx.teams, + seedingSnapshot, + ); + const teamsSorted = [...tournament.ctx.teams].sort( (a, b) => teamOrder.indexOf(a.id) - teamOrder.indexOf(b.id), ); @@ -78,6 +100,37 @@ export default function TournamentSeedsPage() { (team) => !team.seed, ); + const handleSeedChange = (teamId: number, newSeed: number) => { + if (newSeed < 1) return; + + const clampedSeed = Math.min(newSeed, teamOrder.length); + const currentIndex = teamOrder.indexOf(teamId); + const targetIndex = clampedSeed - 1; + + if (currentIndex === targetIndex) return; + + const newOrder = [...teamOrder]; + newOrder.splice(currentIndex, 1); + newOrder.splice(targetIndex, 0, teamId); + setTeamOrder(newOrder); + }; + + const sortAllBySp = () => { + const sortedTeams = [...tournament.ctx.teams].sort((a, b) => { + if ( + a.avgSeedingSkillOrdinal !== null && + b.avgSeedingSkillOrdinal !== null + ) { + return b.avgSeedingSkillOrdinal - a.avgSeedingSkillOrdinal; + } + if (a.avgSeedingSkillOrdinal !== null) return -1; + if (b.avgSeedingSkillOrdinal !== null) return 1; + return 0; + }); + + setTeamOrder(sortedTeams.map((t) => t.id)); + }; + return (
    @@ -90,23 +143,13 @@ export default function TournamentSeedsPage() {
    ) : ( { - setTeamOrder( - structuredClone(tournament.ctx.teams) - .sort( - (a, b) => - (b.avgSeedingSkillOrdinal ?? Number.NEGATIVE_INFINITY) - - (a.avgSeedingSkillOrdinal ?? Number.NEGATIVE_INFINITY), - ) - .map((t) => t.id), - ); - }} + onPress={sortAllBySp} > - Sort automatically + Sort all by SP )} @@ -117,12 +160,13 @@ export default function TournamentSeedsPage() { .join()} /> ) : null} -
      -
    • -
      -
      -
      Name
      -
      +
        +
      • +
        +
        Seed
        +
        +
        Name
        +
        SP Seeding point is a value that tracks players' head-to-head @@ -130,9 +174,7 @@ export default function TournamentSeedsPage() { different points.
        -
        - Players -
        +
        Players
      • {teamsSorted.map((team, i) => ( - handleSeedChange(team.id, newSeed)} /> - + ))} - {activeTeam && ( -
      • + {activeTeam ? ( +
      • +
        + +
        {}} />
      • - )} + ) : null}
      @@ -214,6 +260,60 @@ export default function TournamentSeedsPage() { ); } +function SeedingDraggable({ + id, + disabled, + children, + testId, + isActive, +}: { + id: number; + disabled: boolean; + children: React.ReactNode; + testId?: string; + isActive: boolean; +}) { + const { + attributes, + listeners, + setNodeRef, + transform, + transition, + isDragging, + } = useSortable({ id, disabled }); + + const style = { + transform: CSS.Transform.toString(transform), + transition, + }; + + return ( +
    • +
      + +
      + {children} +
    • + ); +} + function StartingBracketDialog() { const fetcher = useFetcher(); const tournament = useTournament(); @@ -338,7 +438,7 @@ function SeedAlert({ teamOrder }: { teamOrder: number[] }) { const teamOrderChanged = teamOrder.some((id, i) => id !== teamOrderInDb[i]); return ( - + @@ -366,6 +466,10 @@ function RowContents({ team, seed, teamSeedingSkill, + isNewTeam, + newPlayerIds, + removedPlayers, + onSeedChange, }: { team: TournamentDataTeam; seed?: number; @@ -373,37 +477,176 @@ function RowContents({ sp: number | null; outOfOrder: boolean; }; + isNewTeam?: boolean; + newPlayerIds?: Set; + removedPlayers?: Array<{ userId: number; username: string }>; + onSeedChange?: (newSeed: number) => void; }) { const tournament = useTournament(); + const [inputValue, setInputValue] = React.useState(String(seed ?? "")); + + React.useEffect(() => { + setInputValue(String(seed ?? "")); + }, [seed]); + + const handleInputBlur = () => { + const newSeed = Number.parseInt(inputValue, 10); + if (!Number.isNaN(newSeed) && onSeedChange) { + onSeedChange(newSeed); + } else { + setInputValue(String(seed ?? "")); + } + }; const logoUrl = tournament.tournamentTeamLogoSrc(team); return ( <> -
      {seed}
      -
      {logoUrl ? : null}
      -
      - {team.checkIns.length > 0 ? "✅ " : "❌ "} {team.name} +
      + {seed !== undefined && onSeedChange ? ( + setInputValue(e.target.value)} + onBlur={handleInputBlur} + onKeyDown={(e) => { + if (e.key === "Enter") { + e.currentTarget.blur(); + } + }} + /> + ) : ( +
      {seed}
      + )}
      -
      - {teamSeedingSkill.sp} +
      + {logoUrl ? : null}
      -
      - {team.members.map((member) => { - return ( -
      - - {member.username} - +
      +
      + + {team.checkIns.length > 0 ? "✅ " : "❌ "} {team.name} + + {isNewTeam ? NEW : null} +
      +
      +
      +
      + {teamSeedingSkill.sp} +
      +
      +
      +
      + {removedPlayers?.map((player) => ( +
      + {player.username}
      - ); - })} + ))} + {team.members.map((member) => { + const isNew = newPlayerIds?.has(member.userId); + return ( +
      + + {member.username} + + {member.plusTier ? ( + + + {member.plusTier} + + ) : null} + {isNew ? ( + NEW + ) : null} +
      + ); + })} +
      ); } +function computeNewTeamIds( + teams: TournamentDataTeam[], + snapshot: SeedingSnapshot | null, +): Set { + if (!snapshot) return new Set(); + const savedTeamIds = new Set(snapshot.teams.map((t) => t.teamId)); + return new Set(teams.filter((t) => !savedTeamIds.has(t.id)).map((t) => t.id)); +} + +function computeNewPlayers( + teams: TournamentDataTeam[], + snapshot: SeedingSnapshot | null, +): Map> { + const result = new Map>(); + if (!snapshot) return result; + + const savedTeamMap = new Map( + snapshot.teams.map((t) => [ + t.teamId, + new Set(t.members.map((m) => m.userId)), + ]), + ); + + for (const team of teams) { + const savedMembers = savedTeamMap.get(team.id); + if (!savedMembers) continue; + + const newPlayerIds = new Set( + team.members + .filter((m) => !savedMembers.has(m.userId)) + .map((m) => m.userId), + ); + if (newPlayerIds.size > 0) { + result.set(team.id, newPlayerIds); + } + } + return result; +} + +function computeRemovedPlayers( + teams: TournamentDataTeam[], + snapshot: SeedingSnapshot | null, +): Map> { + const result = new Map>(); + if (!snapshot) return result; + + const currentTeamMap = new Map( + teams.map((t) => [t.id, new Set(t.members.map((m) => m.userId))]), + ); + + for (const savedTeam of snapshot.teams) { + const currentMembers = currentTeamMap.get(savedTeam.teamId); + if (!currentMembers) continue; + + const removedMembers = savedTeam.members.filter( + (member) => !currentMembers.has(member.userId), + ); + if (removedMembers.length > 0) { + result.set(savedTeam.teamId, removedMembers); + } + } + return result; +} + export const ErrorBoundary = Catcher; diff --git a/app/features/tournament/tournament-utils.test.ts b/app/features/tournament/tournament-utils.test.ts index f933ba7e6..1d8a1f591 100644 --- a/app/features/tournament/tournament-utils.test.ts +++ b/app/features/tournament/tournament-utils.test.ts @@ -1,6 +1,330 @@ import { describe, expect, it } from "vitest"; import type { ParsedBracket } from "../tournament-bracket/core/Progression"; -import { getBracketProgressionLabel } from "./tournament-utils"; +import { + compareTeamsForOrdering, + findTeamInsertPosition, + getBracketProgressionLabel, + sortTeamsBySeeding, + type TeamForOrdering, +} from "./tournament-utils"; + +const createTeam = ( + id: number, + options: { + seed?: number | null; + members?: number; + avgSeedingSkillOrdinal?: number | null; + createdAt?: number; + startingBracketIdx?: number | null; + } = {}, +): TeamForOrdering => ({ + id, + seed: options.seed ?? null, + members: { length: options.members ?? 4 }, + avgSeedingSkillOrdinal: options.avgSeedingSkillOrdinal ?? 100, + createdAt: options.createdAt ?? id, + startingBracketIdx: options.startingBracketIdx ?? null, +}); + +const MIN_MEMBERS = 4; + +describe("compareTeamsForOrdering", () => { + describe("full teams priority", () => { + it("places full teams before not-full teams", () => { + const fullTeam = createTeam(1, { members: 4 }); + const notFullTeam = createTeam(2, { members: 3 }); + + const result = compareTeamsForOrdering( + fullTeam, + notFullTeam, + MIN_MEMBERS, + ); + + expect(result).toBeLessThan(0); + }); + + it("places not-full teams after full teams", () => { + const notFullTeam = createTeam(1, { members: 3 }); + const fullTeam = createTeam(2, { members: 4 }); + + const result = compareTeamsForOrdering( + notFullTeam, + fullTeam, + MIN_MEMBERS, + ); + + expect(result).toBeGreaterThan(0); + }); + }); + + describe("seed priority", () => { + it("orders by seed when both have seeds", () => { + const team1 = createTeam(1, { seed: 1 }); + const team2 = createTeam(2, { seed: 2 }); + + const result = compareTeamsForOrdering(team1, team2, MIN_MEMBERS); + + expect(result).toBeLessThan(0); + }); + + it("places seeded team before unseeded team when unseeded has no skill", () => { + const seededTeam = createTeam(1, { seed: 5 }); + const unseededTeam = createTeam(2); + + const result = compareTeamsForOrdering( + seededTeam, + unseededTeam, + MIN_MEMBERS, + ); + + expect(result).toBeLessThan(0); + }); + + it("compares by skill ordinal when both full teams have skill but only one has seed", () => { + const seededLowSkill = createTeam(1, { + seed: 5, + avgSeedingSkillOrdinal: 100, + }); + const unseededHighSkill = createTeam(2, { avgSeedingSkillOrdinal: 300 }); + + const result = compareTeamsForOrdering( + seededLowSkill, + unseededHighSkill, + MIN_MEMBERS, + ); + + expect(result).toBeGreaterThan(0); + }); + + it("places seeded team first when only seeded team has skill ordinal", () => { + const seededWithSkill = createTeam(1, { + seed: 5, + avgSeedingSkillOrdinal: 100, + }); + const unseededNoSkill = createTeam(2); + + const result = compareTeamsForOrdering( + seededWithSkill, + unseededNoSkill, + MIN_MEMBERS, + ); + + expect(result).toBeLessThan(0); + }); + + it("places seeded team first when not-full team has higher skill", () => { + const seededFull = createTeam(1, { + seed: 5, + avgSeedingSkillOrdinal: 100, + }); + const unseededNotFull = createTeam(2, { + members: 3, + avgSeedingSkillOrdinal: 500, + }); + + const result = compareTeamsForOrdering( + seededFull, + unseededNotFull, + MIN_MEMBERS, + ); + + expect(result).toBeLessThan(0); + }); + }); + + describe("skill ordinal priority", () => { + it("orders by skill ordinal when no seeds (higher skill first)", () => { + const highSkill = createTeam(1, { avgSeedingSkillOrdinal: 300 }); + const lowSkill = createTeam(2, { avgSeedingSkillOrdinal: 100 }); + + const result = compareTeamsForOrdering(highSkill, lowSkill, MIN_MEMBERS); + + expect(result).toBeLessThan(0); + }); + + it("places team with skill before team without skill", () => { + const withSkill = createTeam(1, { avgSeedingSkillOrdinal: 100 }); + const withoutSkill = createTeam(2); + + const result = compareTeamsForOrdering( + withSkill, + withoutSkill, + MIN_MEMBERS, + ); + + expect(result).toBeLessThan(0); + }); + }); + + describe("createdAt tiebreaker", () => { + it("orders by createdAt when all else is equal", () => { + const olderTeam = createTeam(1, { createdAt: 100 }); + const newerTeam = createTeam(2, { createdAt: 200 }); + + const result = compareTeamsForOrdering(olderTeam, newerTeam, MIN_MEMBERS); + + expect(result).toBeLessThan(0); + }); + }); +}); + +describe("sortTeamsBySeeding", () => { + it("sorts teams correctly with mixed properties", () => { + const teams = [ + createTeam(1, { members: 3, avgSeedingSkillOrdinal: 500 }), + createTeam(2, { seed: 2 }), + createTeam(3, { avgSeedingSkillOrdinal: 300 }), + createTeam(4, { seed: 1 }), + createTeam(5, { avgSeedingSkillOrdinal: 400 }), + createTeam(6, { members: 3 }), + ]; + + const sorted = sortTeamsBySeeding(teams, MIN_MEMBERS); + + expect(sorted.map((t) => t.id)).toEqual([5, 3, 4, 2, 1, 6]); + }); + + it("does not mutate original array", () => { + const teams = [ + createTeam(2, { avgSeedingSkillOrdinal: 100 }), + createTeam(1, { avgSeedingSkillOrdinal: 200 }), + ]; + + sortTeamsBySeeding(teams, MIN_MEMBERS); + + expect(teams[0].id).toBe(2); + }); +}); + +describe("findTeamInsertPosition", () => { + it("inserts at beginning when new team should be first", () => { + const team1 = createTeam(1, { avgSeedingSkillOrdinal: 100 }); + const team2 = createTeam(2, { avgSeedingSkillOrdinal: 200 }); + const teamMap = new Map([ + [1, team1], + [2, team2], + ]); + const existingOrder = [2, 1]; + const newTeam = createTeam(3, { avgSeedingSkillOrdinal: 300 }); + + const position = findTeamInsertPosition( + existingOrder, + newTeam, + teamMap, + MIN_MEMBERS, + ); + + expect(position).toBe(0); + }); + + it("inserts at end when new team should be last", () => { + const team1 = createTeam(1, { avgSeedingSkillOrdinal: 100 }); + const team2 = createTeam(2, { avgSeedingSkillOrdinal: 200 }); + const teamMap = new Map([ + [1, team1], + [2, team2], + ]); + const existingOrder = [2, 1]; + const newTeam = createTeam(3, { avgSeedingSkillOrdinal: 50 }); + + const position = findTeamInsertPosition( + existingOrder, + newTeam, + teamMap, + MIN_MEMBERS, + ); + + expect(position).toBe(2); + }); + + it("inserts in middle based on comparison", () => { + const team1 = createTeam(1, { avgSeedingSkillOrdinal: 100 }); + const team2 = createTeam(2, { avgSeedingSkillOrdinal: 300 }); + const team3 = createTeam(3, { avgSeedingSkillOrdinal: 200 }); + const teamMap = new Map([ + [1, team1], + [2, team2], + [3, team3], + ]); + const existingOrder = [2, 3, 1]; + const newTeam = createTeam(4, { avgSeedingSkillOrdinal: 150 }); + + const position = findTeamInsertPosition( + existingOrder, + newTeam, + teamMap, + MIN_MEMBERS, + ); + + expect(position).toBe(2); + }); + + it("handles empty existing order", () => { + const teamMap = new Map(); + const existingOrder: number[] = []; + const newTeam = createTeam(1, { avgSeedingSkillOrdinal: 100 }); + + const position = findTeamInsertPosition( + existingOrder, + newTeam, + teamMap, + MIN_MEMBERS, + ); + + expect(position).toBe(0); + }); + + it("skips missing teams in map", () => { + const team1 = createTeam(1, { avgSeedingSkillOrdinal: 100 }); + const teamMap = new Map([[1, team1]]); + const existingOrder = [2, 1]; + const newTeam = createTeam(3, { avgSeedingSkillOrdinal: 150 }); + + const position = findTeamInsertPosition( + existingOrder, + newTeam, + teamMap, + MIN_MEMBERS, + ); + + expect(position).toBe(1); + }); +}); + +describe("sortTeamsBySeeding with startingBracketIdx", () => { + it("orders by startingBracketIdx first", () => { + const teams = [ + createTeam(1, { + startingBracketIdx: 1, + avgSeedingSkillOrdinal: 500, + }), + createTeam(2, { + startingBracketIdx: 0, + avgSeedingSkillOrdinal: 100, + }), + createTeam(3, { + startingBracketIdx: 0, + avgSeedingSkillOrdinal: 200, + }), + ]; + + const sorted = sortTeamsBySeeding(teams, MIN_MEMBERS); + + expect(sorted.map((t) => t.id)).toEqual([3, 2, 1]); + }); + + it("uses seeds within same bracket", () => { + const teams = [ + createTeam(1, { seed: 2 }), + createTeam(2, { seed: 1 }), + createTeam(3, { avgSeedingSkillOrdinal: 500 }), + ]; + + const sorted = sortTeamsBySeeding(teams, MIN_MEMBERS); + + expect(sorted.map((t) => t.id)).toEqual([3, 2, 1]); + }); +}); const createBracket = (name: string): ParsedBracket => ({ name, diff --git a/app/features/tournament/tournament-utils.ts b/app/features/tournament/tournament-utils.ts index b381ebc80..49f0b730f 100644 --- a/app/features/tournament/tournament-utils.ts +++ b/app/features/tournament/tournament-utils.ts @@ -262,6 +262,75 @@ export function normalizedTeamCount({ return teamsCount * minMembersPerTeam; } +export type TeamForOrdering = { + id: number; + seed: number | null; + members: { length: number }; + avgSeedingSkillOrdinal: number | null; + createdAt: number; + startingBracketIdx: number | null; +}; + +export function compareTeamsForOrdering( + a: TeamForOrdering, + b: TeamForOrdering, + minMembersPerTeam: number, +): number { + if (a.startingBracketIdx !== b.startingBracketIdx) { + return (a.startingBracketIdx ?? 0) - (b.startingBracketIdx ?? 0); + } + + const aIsFull = a.members.length >= minMembersPerTeam; + const bIsFull = b.members.length >= minMembersPerTeam; + + if (aIsFull && !bIsFull) { + return -1; + } + if (!aIsFull && bIsFull) { + return 1; + } + + if (a.seed !== null && b.seed !== null) { + return a.seed - b.seed; + } + + if ( + a.avgSeedingSkillOrdinal !== b.avgSeedingSkillOrdinal && + a.avgSeedingSkillOrdinal !== null && + b.avgSeedingSkillOrdinal !== null + ) { + return b.avgSeedingSkillOrdinal - a.avgSeedingSkillOrdinal; + } + + return a.createdAt - b.createdAt; +} + +export function sortTeamsBySeeding( + teams: T[], + minMembersPerTeam: number, +): T[] { + return [...teams].sort((a, b) => + compareTeamsForOrdering(a, b, minMembersPerTeam), + ); +} + +export function findTeamInsertPosition( + existingOrder: number[], + newTeam: T, + teamMap: Map, + minMembersPerTeam: number, +): number { + for (let i = 0; i < existingOrder.length; i++) { + const existingTeam = teamMap.get(existingOrder[i]); + if (!existingTeam) continue; + + if (compareTeamsForOrdering(newTeam, existingTeam, minMembersPerTeam) < 0) { + return i; + } + } + return existingOrder.length; +} + export function getBracketProgressionLabel( startingBracketIdx: number, progression: ParsedBracket[], diff --git a/db-test.sqlite3 b/db-test.sqlite3 index c5305ecce..4218d7744 100644 Binary files a/db-test.sqlite3 and b/db-test.sqlite3 differ diff --git a/e2e/seeds/db-seed-DEFAULT.sqlite3 b/e2e/seeds/db-seed-DEFAULT.sqlite3 index 0367d9bd9..25a2acba7 100644 Binary files a/e2e/seeds/db-seed-DEFAULT.sqlite3 and b/e2e/seeds/db-seed-DEFAULT.sqlite3 differ diff --git a/e2e/seeds/db-seed-NO_SCRIMS.sqlite3 b/e2e/seeds/db-seed-NO_SCRIMS.sqlite3 index 2c0111c4a..31b15d581 100644 Binary files a/e2e/seeds/db-seed-NO_SCRIMS.sqlite3 and b/e2e/seeds/db-seed-NO_SCRIMS.sqlite3 differ diff --git a/e2e/seeds/db-seed-NO_SQ_GROUPS.sqlite3 b/e2e/seeds/db-seed-NO_SQ_GROUPS.sqlite3 index ef6f731c8..72a9bb566 100644 Binary files a/e2e/seeds/db-seed-NO_SQ_GROUPS.sqlite3 and b/e2e/seeds/db-seed-NO_SQ_GROUPS.sqlite3 differ diff --git a/e2e/seeds/db-seed-NO_TOURNAMENT_TEAMS.sqlite3 b/e2e/seeds/db-seed-NO_TOURNAMENT_TEAMS.sqlite3 index fb153a53e..28210be3e 100644 Binary files a/e2e/seeds/db-seed-NO_TOURNAMENT_TEAMS.sqlite3 and b/e2e/seeds/db-seed-NO_TOURNAMENT_TEAMS.sqlite3 differ diff --git a/e2e/seeds/db-seed-NZAP_IN_TEAM.sqlite3 b/e2e/seeds/db-seed-NZAP_IN_TEAM.sqlite3 index d2f61d7b0..6252d2928 100644 Binary files a/e2e/seeds/db-seed-NZAP_IN_TEAM.sqlite3 and b/e2e/seeds/db-seed-NZAP_IN_TEAM.sqlite3 differ diff --git a/e2e/seeds/db-seed-REG_OPEN.sqlite3 b/e2e/seeds/db-seed-REG_OPEN.sqlite3 index e80c78b4c..760a39904 100644 Binary files a/e2e/seeds/db-seed-REG_OPEN.sqlite3 and b/e2e/seeds/db-seed-REG_OPEN.sqlite3 differ diff --git a/e2e/seeds/db-seed-SMALL_SOS.sqlite3 b/e2e/seeds/db-seed-SMALL_SOS.sqlite3 index aa251a60d..b8c2fce4d 100644 Binary files a/e2e/seeds/db-seed-SMALL_SOS.sqlite3 and b/e2e/seeds/db-seed-SMALL_SOS.sqlite3 differ diff --git a/e2e/tournament-bracket.spec.ts b/e2e/tournament-bracket.spec.ts index bbb51f123..33a042588 100644 --- a/e2e/tournament-bracket.spec.ts +++ b/e2e/tournament-bracket.spec.ts @@ -33,13 +33,11 @@ const navigateToMatch = async (page: Page, matchId: number) => { const reportResult = async ({ page, amountOfMapsToReport, - sidesWithMoreThanFourPlayers = ["last"], winner = 1, points, }: { page: Page; amountOfMapsToReport: 1 | 2 | 3 | 4; - sidesWithMoreThanFourPlayers?: ("first" | "last")[]; winner?: 1 | 2; points?: [number, number]; }) => { @@ -53,9 +51,12 @@ const reportResult = async ({ await page.getByTestId("actions-tab").click(); + // Auto-detect and set rosters for teams with 5+ players + // Check if first team needs roster selection (checkbox exists and is not disabled) + const firstTeamCheckbox = page.getByTestId("player-checkbox-0").first(); if ( - sidesWithMoreThanFourPlayers.includes("first") && - !(await page.getByTestId("player-checkbox-0").first().isDisabled()) + (await firstTeamCheckbox.count()) > 0 && + !(await firstTeamCheckbox.isDisabled()) ) { await page.getByTestId("player-checkbox-0").first().click(); await page.getByTestId("player-checkbox-1").first().click(); @@ -67,9 +68,12 @@ const reportResult = async ({ // update went through await expect(page.getByTestId("player-checkbox-0").first()).toBeDisabled(); } + + // Check if second team needs roster selection + const lastTeamCheckbox = page.getByTestId("player-checkbox-0").last(); if ( - sidesWithMoreThanFourPlayers.includes("last") && - !(await page.getByTestId("player-checkbox-0").last().isDisabled()) + (await lastTeamCheckbox.count()) > 0 && + !(await lastTeamCheckbox.isDisabled()) ) { await page.getByTestId("player-checkbox-0").last().click(); await page.getByTestId("player-checkbox-1").last().click(); @@ -139,6 +143,8 @@ const expectScore = (page: Page, score: [number, number]) => test.describe("Tournament bracket", () => { test("sets active roster as regular member", async ({ page }) => { const tournamentId = 1; + // User 37 is owner of team 10 (seed 10) which has 5 players + // Team 10 vs Team 9 (seed 9) is match 2 in WB Round 1 const matchId = 2; await startBracket(page, tournamentId); @@ -147,10 +153,13 @@ test.describe("Tournament bracket", () => { page, url: tournamentMatchPage({ tournamentId, matchId }), }); + await expect(page.getByTestId("active-roster-needed-text")).toBeVisible(); await page.getByTestId("actions-tab").click(); + // Team 10 has 5 players; select first 4 for active roster + // Team 10 is team 2 (second team in the match), so use last() await page.getByTestId("player-checkbox-0").last().click(); await page.getByTestId("player-checkbox-1").last().click(); await page.getByTestId("player-checkbox-2").last().click(); @@ -163,6 +172,7 @@ test.describe("Tournament bracket", () => { page, url: tournamentMatchPage({ tournamentId, matchId }), }); + // Only team 10 needed to set roster (team 9 has 4 players) await isNotVisible(page.getByTestId("active-roster-needed-text")); await page.getByTestId("actions-tab").click(); @@ -214,7 +224,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 1, - sidesWithMoreThanFourPlayers: ["first", "last"], }); await backToBracket(page); @@ -246,7 +255,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["last"], winner: 2, }); await backToBracket(page); @@ -323,7 +331,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: [], }); await backToBracket(page); @@ -394,7 +401,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["first", "last"], points: [100, 0], }); await backToBracket(page); @@ -434,7 +440,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 3, - sidesWithMoreThanFourPlayers: ["first", "last"], }); await navigate({ @@ -448,7 +453,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 3, - sidesWithMoreThanFourPlayers: ["first", "last"], }); await backToBracket(page); @@ -511,7 +515,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: [], points: [100, 0], }); await backToBracket(page); @@ -635,7 +638,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["first"], points: [100, 0], }); @@ -699,7 +701,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["last"], points: [100, 0], }); await backToBracket(page); @@ -710,7 +711,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["first"], points: [100, 0], }); await backToBracket(page); @@ -719,7 +719,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["last"], points: [100, 0], }); await backToBracket(page); @@ -728,7 +727,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["last"], points: [100, 0], }); await backToBracket(page); @@ -739,7 +737,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["first"], points: [0, 100], winner: 2, }); @@ -770,7 +767,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["last"], points: [100, 0], }); await backToBracket(page); @@ -779,7 +775,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["first", "last"], points: [100, 0], }); await backToBracket(page); @@ -790,7 +785,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 1, - sidesWithMoreThanFourPlayers: ["last"], points: [100, 0], }); await backToBracket(page); @@ -843,7 +837,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["last"], }); await backToBracket(page); @@ -855,7 +848,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["last"], }); await backToBracket(page); @@ -890,7 +882,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: ["last"], }); await page.getByTestId("admin-tab").click(); @@ -962,7 +953,6 @@ test.describe("Tournament bracket", () => { page, amountOfMapsToReport: 3, points: [100, 0], - sidesWithMoreThanFourPlayers: ["last"], winner: 1, }); }); @@ -989,7 +979,6 @@ test.describe("Tournament bracket", () => { await reportResult({ page, amountOfMapsToReport: 2, - sidesWithMoreThanFourPlayers: id === 1 ? [] : ["last"], }); await backToBracket(page); } diff --git a/e2e/tournament.spec.ts b/e2e/tournament.spec.ts index 47939062d..1494c346e 100644 --- a/e2e/tournament.spec.ts +++ b/e2e/tournament.spec.ts @@ -255,7 +255,7 @@ test.describe("Tournament", () => { url: `${tournamentPage(1)}/seeds`, }); - await page.getByTestId("seed-team-1").hover(); + await page.getByTestId("seed-team-1-handle").hover(); await page.mouse.down(); // i think the drag & drop library might actually be a bit buggy // so we have to do it in steps like this to allow for testing diff --git a/migrations/111-seeding-snapshot.js b/migrations/111-seeding-snapshot.js new file mode 100644 index 000000000..020ff1b11 --- /dev/null +++ b/migrations/111-seeding-snapshot.js @@ -0,0 +1,7 @@ +export function up(db) { + db.transaction(() => { + db.prepare( + /* sql */ `alter table "Tournament" add "seedingSnapshot" text default null`, + ).run(); + })(); +}