From b45ecde4ccacdf01ada67173140408b4705d3eef Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Tue, 4 Aug 2026 22:05:49 +0300 Subject: [PATCH] Refactor tournament data loading (#3298) --- app/db/seed/factories/TournamentFactory.ts | 22 +- .../api-public/routes/tournament-match.$id.ts | 7 +- ...tournament.$id.teams.$teamId.add-member.ts | 3 +- ...rnament.$id.teams.$teamId.remove-member.ts | 11 +- .../bracket-test/routes/bracket-test.tsx | 31 +- app/features/chat/ChatProvider.tsx | 5 +- app/features/chat/ChatSystemMessage.server.ts | 8 +- app/features/chat/chat-types.ts | 4 + app/features/chat/revalidation-scope.test.ts | 73 + app/features/chat/revalidation-scope.ts | 43 + app/features/friends/friends-utils.server.ts | 37 +- .../img-upload/actions/upload.admin.server.ts | 2 +- .../actions/to.$id.admin.index.server.ts | 9 +- .../to.$id.admin.registration.server.ts | 13 +- .../actions/to.$id.admin.seeds.server.ts | 11 - .../components/ExportDialog.test.ts | 12 +- .../components/ExportDialog.tsx | 30 +- .../loaders/to.$id.admin.index.server.ts | 24 + .../to.$id.admin.registration.$tid.server.ts | 35 + .../loaders/to.$id.admin.seeds.server.ts | 21 +- .../routes/to.$id.admin._index.tsx | 61 +- .../routes/to.$id.admin.audit.tsx | 2 +- .../routes/to.$id.admin.brackets.tsx | 4 +- .../routes/to.$id.admin.import-teams.ts | 15 +- ...d.admin.registration.$tid.browser.test.tsx | 15 +- ...ration.$tid.captain-label.browser.test.tsx | 10 +- .../routes/to.$id.admin.registration.$tid.tsx | 13 +- .../routes/to.$id.admin.seeds.tsx | 55 +- ...ament-admin-registration-schemas.server.ts | 7 +- .../TournamentMatchVodRepository.server.ts | 29 +- .../to.$id.brackets.finalize.server.ts | 6 +- .../actions/to.$id.brackets.server.ts | 12 +- .../Bracket/Bracket.browser.test.tsx | 7 +- .../components/Bracket/Elimination.tsx | 1 + .../components/Bracket/Match.tsx | 39 +- .../components/Bracket/PlacementsTable.tsx | 19 +- .../components/Bracket/RoundHeader.tsx | 17 +- .../components/Bracket/RoundRobin.tsx | 1 + .../components/Bracket/Swiss.tsx | 1 + .../components/TournamentTeamActions.tsx | 16 +- .../tournament-bracket/core/Bracket.test.ts | 4 - .../core/Bracket/Bracket.ts | 84 +- .../core/Bracket/DoubleEliminationBracket.ts | 2 +- .../core/Bracket/RoundRobinBracket.ts | 4 +- .../core/Bracket/SingleEliminationBracket.ts | 2 +- .../core/Bracket/SwissBracket.ts | 4 +- .../tournament-bracket/core/Bracket/index.ts | 6 +- .../tournament-bracket/core/PickBan.ts | 9 +- .../core/RunningTournaments.test.ts | 22 +- .../tournament-bracket/core/Swiss.test.ts | 1 - .../core/Tournament.server.ts | 430 +- .../core/Tournament.test.ts | 58 + .../tournament-bracket/core/Tournament.ts | 664 +- .../core/summarizer.server.ts | 8 +- .../core/summarizer.test.ts | 64 +- .../tournament-bracket/core/tests/mocks-li.ts | 8955 +---------- .../core/tests/mocks-sos.ts | 5113 +----- .../core/tests/mocks-zones-weekly.ts | 706 +- .../tournament-bracket/core/tests/mocks.ts | 13294 +--------------- .../core/tests/test-utils.ts | 15 +- .../to.$id.brackets.finalize.server.ts | 24 +- .../loaders/to.$id.brackets.server.ts | 69 + .../loaders/to.$id.divisions.server.ts | 9 +- .../routes/to.$id.brackets.tsx | 192 +- .../tournament-bracket-search-params.ts | 2 +- .../tournament-bracket-utils.ts | 10 +- .../actions/to.$id.looking.server.ts | 8 +- .../loaders/to.$id.looking.server.ts | 20 +- .../actions/to.$id.matches.$mid.server.ts | 54 +- .../TournamentMatchActionPickBanTab.tsx | 5 +- .../components/TournamentMatchActionTab.tsx | 28 +- .../components/TournamentMatchAdminTab.tsx | 24 +- .../components/TournamentMatchBanner.tsx | 16 +- .../components/TournamentMatchHeader.tsx | 6 +- .../components/TournamentMatchTabs.tsx | 42 +- .../core/executeRoll.server.ts | 3 +- .../tournament-match/core/mapList.server.ts | 7 +- .../loaders/to.$id.matches.$mid.server.ts | 66 +- .../tournament-match/match-page-context.tsx | 45 +- .../tournament/TournamentRepository.server.ts | 506 +- .../TournamentTeamRepository.server.ts | 33 +- .../tournament/actions/to.$id.join.server.ts | 2 +- .../actions/to.$id.register.server.ts | 12 +- .../tournament/components/TeamWithRoster.tsx | 8 +- .../tournament/components/TournamentNav.tsx | 12 +- .../components/TournamentStream.tsx | 12 +- app/features/tournament/core/Standings.ts | 68 + .../tournament/core/layout-payload.ts | 68 + .../tournament/loaders/to.$id.info.server.ts | 7 + .../loaders/to.$id.register.server.ts | 21 +- .../loaders/to.$id.results.server.ts | 76 + .../tournament/loaders/to.$id.rules.server.ts | 8 + .../tournament/loaders/to.$id.server.ts | 38 +- .../loaders/to.$id.streams.server.ts | 21 + .../loaders/to.$id.teams.$tid.server.ts | 59 +- .../tournament/loaders/to.$id.teams.server.ts | 43 + .../tournament/routes/to.$id.index.ts | 7 +- .../tournament/routes/to.$id.info.tsx | 8 +- .../tournament/routes/to.$id.register.tsx | 22 +- .../tournament/routes/to.$id.results.tsx | 48 +- .../tournament/routes/to.$id.streams.tsx | 9 +- .../tournament/routes/to.$id.teams.$tid.tsx | 71 +- .../tournament/routes/to.$id.teams.tsx | 69 +- app/features/tournament/routes/to.$id.tsx | 30 +- .../tournament-search-params.test.ts | 16 + .../tournament/tournament-search-params.ts | 4 + .../tournament/tournament-utils.test.ts | 2 +- app/features/tournament/tournament-utils.ts | 23 +- .../user-page/UserRepository.server.ts | 13 + app/root.tsx | 2 + app/routines/notifyCheckInStart.ts | 2 +- app/routines/syncLiveStreams.test.ts | 222 +- app/routines/syncLiveStreams.ts | 34 +- e2e/tournament.spec.ts | 47 +- scripts/benchmark-db/cases.ts | 46 + scripts/benchmark-db/fixtures.ts | 38 + 116 files changed, 4444 insertions(+), 28069 deletions(-) create mode 100644 app/features/chat/revalidation-scope.test.ts create mode 100644 app/features/chat/revalidation-scope.ts create mode 100644 app/features/tournament-admin/loaders/to.$id.admin.index.server.ts create mode 100644 app/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts create mode 100644 app/features/tournament-bracket/loaders/to.$id.brackets.server.ts create mode 100644 app/features/tournament/core/layout-payload.ts create mode 100644 app/features/tournament/loaders/to.$id.results.server.ts create mode 100644 app/features/tournament/loaders/to.$id.streams.server.ts create mode 100644 app/features/tournament/loaders/to.$id.teams.server.ts diff --git a/app/db/seed/factories/TournamentFactory.ts b/app/db/seed/factories/TournamentFactory.ts index 6e0baa238..866e0c242 100644 --- a/app/db/seed/factories/TournamentFactory.ts +++ b/app/db/seed/factories/TournamentFactory.ts @@ -359,13 +359,6 @@ async function persistSeeds( 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((member) => ({ - userId: member.userId, - username: member.username, - })), - })), }); } @@ -418,18 +411,19 @@ async function setActiveRosters(tournamentId: number, match: PlayedMatch) { const team = tournament.teamById(teamId); invariant(team, `Team ${teamId} is not in the tournament`); invariant( - team.members.length >= tournament.minMembersPerTeam, + team.memberUserIds.length >= tournament.minMembersPerTeam, `Team ${teamId} has too few members to play a match`, ); // a team without subs plays with everybody it has, so it is never asked - if (team.members.length === tournament.minMembersPerTeam) continue; + if (team.memberUserIds.length === tournament.minMembersPerTeam) continue; await TournamentTeamRepository.setActiveRoster({ teamId, - activeRosterUserIds: team.members - .slice(0, tournament.minMembersPerTeam) - .map((member) => member.userId), + activeRosterUserIds: team.memberUserIds.slice( + 0, + tournament.minMembersPerTeam, + ), }); } } @@ -481,13 +475,13 @@ async function finalize(tournamentId: number) { ? event.badgePrizes.map((badge) => ({ badgeId: badge.id, tournamentTeamId: winner.team.id, - userIds: winner.team.members.map((member) => member.userId), + userIds: winner.team.memberUserIds, })) : undefined, trophyReceiver: event?.trophy ? { trophyId: event.trophy.id, - userIds: winner.team.members.map((member) => member.userId), + userIds: winner.team.memberUserIds, } : undefined, }); diff --git a/app/features/api-public/routes/tournament-match.$id.ts b/app/features/api-public/routes/tournament-match.$id.ts index 38e38eecb..c7a4aceaa 100644 --- a/app/features/api-public/routes/tournament-match.$id.ts +++ b/app/features/api-public/routes/tournament-match.$id.ts @@ -105,11 +105,16 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { ? await TournamentRepository.findPickBanEventsByMatchId(match.id) : []; + const mapPools = await TournamentTeamRepository.findMapPoolsByTeamIds([ + opponentOne.id, + opponentTwo.id, + ]); + return resolveMapList({ tournamentId: match.tournamentId, matchId: id, teams: [opponentOne.id, opponentTwo.id], - mapPoolByTeamId: (teamId) => tournament.teamById(teamId)?.mapPool ?? [], + mapPoolByTeamId: (teamId) => mapPools.get(teamId) ?? [], mapPickingStyle: match.mapPickingStyle, maps: match.maps, tieBreakerMapPool: tournament.ctx.tieBreakerMapPool, diff --git a/app/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts b/app/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts index ddac5b528..374e92ef5 100644 --- a/app/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts +++ b/app/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts @@ -97,8 +97,7 @@ export const action = async (args: ActionFunctionArgs) => { userIds: [userId], notification: { type: "TO_ADDED_TO_TEAM", - pictureUrl: - tournament.tournamentTeamLogoSrc(team) ?? tournament.ctx.logoUrl, + pictureUrl: team.logoUrl ?? tournament.ctx.logoUrl, meta: { adderUsername: user.username, teamName: team.name, diff --git a/app/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts b/app/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts index 18d027a73..915d8f5dd 100644 --- a/app/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts +++ b/app/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts @@ -43,18 +43,13 @@ export const action = async (args: ActionFunctionArgs) => { errorToastIfFalsy(team, "Invalid team id"); errorToastIfFalsy( team.checkIns.length === 0 || - team.members.length > tournament.minMembersPerTeam, + team.memberUserIds.length > tournament.minMembersPerTeam, "Can't remove last member from checked in team", ); - errorToastIfFalsy( - team.members.find((m) => m.userId === userId)?.role !== "OWNER", - "Cannot remove team owner", - ); + errorToastIfFalsy(team.ownerUserId !== userId, "Cannot remove team owner"); errorToastIfFalsy( !tournament.hasStarted || - !tournament - .participatedPlayersByTeamId(teamId) - .some((p) => p.userId === userId), + !tournament.participatedPlayerUserIdsByTeamId(teamId).includes(userId), "Cannot remove player that has participated in the tournament", ); diff --git a/app/features/bracket-test/routes/bracket-test.tsx b/app/features/bracket-test/routes/bracket-test.tsx index d27ebfc24..cd5a0c952 100644 --- a/app/features/bracket-test/routes/bracket-test.tsx +++ b/app/features/bracket-test/routes/bracket-test.tsx @@ -6,9 +6,11 @@ import { Input } from "~/components/Input"; import { Label } from "~/components/Label"; import { Main } from "~/components/Main"; import type { Tables } from "~/db/tables"; +import { TournamentOverrideProvider } from "~/features/tournament/routes/to.$id"; import type { Bracket as BracketType } from "~/features/tournament-bracket/core/Bracket"; import * as Engine from "~/features/tournament-bracket/core/engine"; import type { BracketData } from "~/features/tournament-bracket/core/engine/types"; +import type { Tournament as TournamentClass } from "~/features/tournament-bracket/core/Tournament"; import styles from "../bracket-test.module.css"; type FormatType = Tables["TournamentStage"]["type"]; @@ -60,13 +62,14 @@ export default function BracketTestLayout() { ], }, bracketProgressionOverrides: [], - participatedUsers: teamIds, }, + participatedUserIds: teamIds, brackets: [] as unknown[], + bracketsMeta: [] as unknown[], + bracketMetaByIdx: () => null, teamById: (id: number) => teams.find((t) => t.id === id) ?? null, teamMemberOfByUser: () => null, isOrganizer: () => false, - tournamentTeamLogoSrc: () => null, streamingParticipantIds: [] as number[], streams: [] as unknown[], isLeagueDivision: false, @@ -178,16 +181,20 @@ export default function BracketTestLayout() { - + + + ); } diff --git a/app/features/chat/ChatProvider.tsx b/app/features/chat/ChatProvider.tsx index bd057ea3e..480412d3f 100644 --- a/app/features/chat/ChatProvider.tsx +++ b/app/features/chat/ChatProvider.tsx @@ -20,6 +20,7 @@ import type { import { chatUsersSearchParams } from "./chat-search-params"; import type { ChatMessage, ChatUser } from "./chat-types"; import { messageTypeToSound, soundEnabled, soundVolume } from "./chat-utils"; +import { revalidateWithScope } from "./revalidation-scope"; import { ChatContext } from "./useChatContext"; const PING_INTERVAL_MS = 60_000; @@ -250,7 +251,9 @@ function ChatProviderInner({ // own form submission already reran loaders, so skip the duplicate fetch. const isOwnRevalidate = messageArr[0].revalidateOnly && messageArr[0].authorUserId === userId; - if (!isOwnRevalidate) revalidate(); + if (!isOwnRevalidate) { + revalidateWithScope(revalidate, messageArr[0].revalidateScope); + } } const sound = messageTypeToSound(messageArr[0].type); diff --git a/app/features/chat/ChatSystemMessage.server.ts b/app/features/chat/ChatSystemMessage.server.ts index c8edae989..41ec00d5f 100644 --- a/app/features/chat/ChatSystemMessage.server.ts +++ b/app/features/chat/ChatSystemMessage.server.ts @@ -27,7 +27,12 @@ function logSkalpError(action: string) { type PartialChatMessage = Pick< ChatMessage, - "type" | "context" | "room" | "revalidateOnly" | "authorUserId" + | "type" + | "context" + | "room" + | "revalidateOnly" + | "revalidateScope" + | "authorUserId" >; interface ChatSystemMessageService { send: (msg: PartialChatMessage | PartialChatMessage[]) => undefined; @@ -61,6 +66,7 @@ export const send: ChatSystemMessageService["send"] = (partialMsg) => { context: partialMsg.context, type: partialMsg.type, revalidateOnly: partialMsg.revalidateOnly, + revalidateScope: partialMsg.revalidateScope, authorUserId: partialMsg.authorUserId ?? actorIdOrNullSafe() ?? undefined, }; }); diff --git a/app/features/chat/chat-types.ts b/app/features/chat/chat-types.ts index 026f20f56..1e6537af5 100644 --- a/app/features/chat/chat-types.ts +++ b/app/features/chat/chat-types.ts @@ -18,6 +18,8 @@ export type SystemMessageType = export type SystemMessageContext = { name: string; }; + +export type RevalidateScope = "MATCH_RESULTS"; export interface ChatMessage { id: string; type?: SystemMessageType; @@ -25,6 +27,8 @@ export interface ChatMessage { context?: SystemMessageContext; /** If true, the purpose of this message is just to run the data loaders again meaning the logic related to showing a new chat message is skipped. Defaults to false. */ revalidateOnly?: boolean; + /** Narrows what data a `revalidateOnly` message may have changed so that routes whose data is unaffected can skip revalidating. Unset means anything may have changed. */ + revalidateScope?: RevalidateScope; /** User id of the actor that triggered this message. Used to skip own-author revalidates so we don't double-fetch loaders right after a form submission. */ authorUserId?: number; userId?: number; diff --git a/app/features/chat/revalidation-scope.test.ts b/app/features/chat/revalidation-scope.test.ts new file mode 100644 index 000000000..9184405ba --- /dev/null +++ b/app/features/chat/revalidation-scope.test.ts @@ -0,0 +1,73 @@ +import type { ShouldRevalidateFunctionArgs } from "react-router"; +import { describe, expect, test } from "vitest"; +import { + isMatchResultsScopedRevalidation, + revalidateWithScope, +} from "./revalidation-scope"; + +const revalidationArgs = () => + ({ + currentUrl: new URL("https://sendou.ink/to/1/brackets"), + nextUrl: new URL("https://sendou.ink/to/1/brackets"), + defaultShouldRevalidate: true, + formMethod: undefined, + }) as unknown as ShouldRevalidateFunctionArgs; + +const deferred = () => { + let resolve!: () => void; + const promise = new Promise((res) => { + resolve = res; + }); + return { promise, resolve }; +}; + +const flushMicrotasks = () => new Promise((res) => setTimeout(res)); + +describe("revalidateWithScope", () => { + test("scope is active while a scoped revalidation is in flight and cleared after", async () => { + const { promise, resolve } = deferred(); + + revalidateWithScope(() => promise, "MATCH_RESULTS"); + expect(isMatchResultsScopedRevalidation(revalidationArgs())).toBe(true); + + resolve(); + await flushMicrotasks(); + expect(isMatchResultsScopedRevalidation(revalidationArgs())).toBe(false); + }); + + test("no scope is active for an unscoped revalidation", async () => { + const { promise, resolve } = deferred(); + + revalidateWithScope(() => promise, undefined); + expect(isMatchResultsScopedRevalidation(revalidationArgs())).toBe(false); + + resolve(); + await flushMicrotasks(); + }); + + test("a scoped revalidation does not narrow an unscoped one in flight", async () => { + const unscoped = deferred(); + const scoped = deferred(); + + revalidateWithScope(() => unscoped.promise, undefined); + revalidateWithScope(() => scoped.promise, "MATCH_RESULTS"); + expect(isMatchResultsScopedRevalidation(revalidationArgs())).toBe(false); + + unscoped.resolve(); + scoped.resolve(); + await flushMicrotasks(); + }); + + test("an unscoped revalidation broadens a scoped one in flight", async () => { + const scoped = deferred(); + const unscoped = deferred(); + + revalidateWithScope(() => scoped.promise, "MATCH_RESULTS"); + revalidateWithScope(() => unscoped.promise, undefined); + expect(isMatchResultsScopedRevalidation(revalidationArgs())).toBe(false); + + scoped.resolve(); + unscoped.resolve(); + await flushMicrotasks(); + }); +}); diff --git a/app/features/chat/revalidation-scope.ts b/app/features/chat/revalidation-scope.ts new file mode 100644 index 000000000..0568ccc39 --- /dev/null +++ b/app/features/chat/revalidation-scope.ts @@ -0,0 +1,43 @@ +import type { ShouldRevalidateFunctionArgs } from "react-router"; +import { isRevalidation } from "~/utils/remix"; +import type { RevalidateScope } from "./chat-types"; + +let activeScope: RevalidateScope | null = null; +let pendingRevalidations = 0; + +/** + * Runs a websocket broadcast triggered revalidation, remembering the broadcast's scope + * while it is in flight so `shouldRevalidate` implementations can skip loaders whose + * data the broadcast can not have changed. + */ +export function revalidateWithScope( + revalidate: () => Promise, + scope: RevalidateScope | undefined, +) { + if (!scope) { + activeScope = null; + } else if (pendingRevalidations === 0) { + // never narrow the scope of an unscoped revalidation already in flight + activeScope = scope; + } + + pendingRevalidations++; + void revalidate().finally(() => { + pendingRevalidations--; + if (pendingRevalidations === 0) { + activeScope = null; + } + }); +} + +/** + * Whether the pending revalidation is a websocket broadcast scoped to match results, + * meaning only match data (reported scores, pick/ban events) changed. Loaders whose data + * does not derive from match data can return `false` from `shouldRevalidate` for these — + * during a live tournament this is the most frequent broadcast: one per reported game. + */ +export function isMatchResultsScopedRevalidation( + args: ShouldRevalidateFunctionArgs, +) { + return isRevalidation(args) && activeScope === "MATCH_RESULTS"; +} diff --git a/app/features/friends/friends-utils.server.ts b/app/features/friends/friends-utils.server.ts index ac5bc137b..ec21293bd 100644 --- a/app/features/friends/friends-utils.server.ts +++ b/app/features/friends/friends-utils.server.ts @@ -172,19 +172,19 @@ function tournamentStreamUrl({ matchId: number; opponentId: number; }) { - const streamingParticipantIds = new Set(tournament.streamingParticipantIds); - const ownTeamMembers = - tournament.teamMemberOfByUser({ id: friendId })?.members ?? []; + const streamingParticipants = tournament.streamingParticipants; + const ownTeamUserIds = + tournament.teamMemberOfByUser({ id: friendId })?.memberUserIds ?? []; const friendAccount = streamingTwitchAccount( - ownTeamMembers.filter((member) => member.userId === friendId), - streamingParticipantIds, + ownTeamUserIds.filter((userId) => userId === friendId), + streamingParticipants, ); if (friendAccount) return twitchUrl(friendAccount); const teammateAccount = streamingTwitchAccount( - ownTeamMembers.filter((member) => member.userId !== friendId), - streamingParticipantIds, + ownTeamUserIds.filter((userId) => userId !== friendId), + streamingParticipants, ); if (teammateAccount) return twitchUrl(teammateAccount); @@ -192,8 +192,8 @@ function tournamentStreamUrl({ if (castAccount) return twitchUrl(castAccount); const opponentAccount = streamingTwitchAccount( - tournament.teamById(opponentId)?.members ?? [], - streamingParticipantIds, + tournament.teamById(opponentId)?.memberUserIds ?? [], + streamingParticipants, ); return opponentAccount ? twitchUrl(opponentAccount) : null; @@ -206,19 +206,22 @@ function liveCastAccount(tournament: Tournament, matchId: number) { )?.twitchAccount; if (!castAccount) return null; - const isLive = tournament.ctx.castStreams.some( - (stream) => stream.twitch?.toLowerCase() === castAccount.toLowerCase(), + const isLive = tournament.streams.some( + (stream) => + stream.twitchUserName.toLowerCase() === castAccount.toLowerCase(), ); return isLive ? castAccount : null; } function streamingTwitchAccount( - players: Array<{ userId: number; streamTwitch: string | null }>, - streamingParticipantIds: ReadonlySet, + userIds: number[], + streamingParticipants: ReadonlyMap, ) { - return players.find( - (player) => - streamingParticipantIds.has(player.userId) && player.streamTwitch, - )?.streamTwitch; + for (const userId of userIds) { + const twitchAccount = streamingParticipants.get(userId); + if (twitchAccount) return twitchAccount; + } + + return null; } diff --git a/app/features/img-upload/actions/upload.admin.server.ts b/app/features/img-upload/actions/upload.admin.server.ts index b975a2242..0412f22e3 100644 --- a/app/features/img-upload/actions/upload.admin.server.ts +++ b/app/features/img-upload/actions/upload.admin.server.ts @@ -28,7 +28,7 @@ export const action: ActionFunction = async ({ request }) => { await ImageRepository.validateById(imageId); if (image.tournamentId) { - clearTournamentDataCache(imageId); + clearTournamentDataCache(image.tournamentId); } } break; diff --git a/app/features/tournament-admin/actions/to.$id.admin.index.server.ts b/app/features/tournament-admin/actions/to.$id.admin.index.server.ts index b62a8001a..9789861ad 100644 --- a/app/features/tournament-admin/actions/to.$id.admin.index.server.ts +++ b/app/features/tournament-admin/actions/to.$id.admin.index.server.ts @@ -96,11 +96,11 @@ export const action: ActionFunction = async ({ request, params }) => { await TournamentTeamRepository.deleteById(team.id); - for (const member of team.members) { + for (const userId of team.memberUserIds) { ShowcaseTournaments.removeFromCached({ tournamentId, type: "participant", - userId: member.userId, + userId, }); ShowcaseTournaments.updateCachedTournamentTeamCount({ @@ -162,10 +162,11 @@ async function dropTeamOut({ // Set active roster only for teams with subs (can't infer which players played) // Teams without subs have their roster trivially inferred in summarizer - const hasSubs = droppingTeam.members.length > tournament.minMembersPerTeam; + const hasSubs = + droppingTeam.memberUserIds.length > tournament.minMembersPerTeam; if (hasSubs && !droppingTeam.activeRosterUserIds) { const randomRoster = R.sample( - droppingTeam.members.map((m) => m.userId), + droppingTeam.memberUserIds, tournament.minMembersPerTeam, ); await TournamentTeamRepository.setActiveRoster({ diff --git a/app/features/tournament-admin/actions/to.$id.admin.registration.server.ts b/app/features/tournament-admin/actions/to.$id.admin.registration.server.ts index b778652de..b3cd287d1 100644 --- a/app/features/tournament-admin/actions/to.$id.admin.registration.server.ts +++ b/app/features/tournament-admin/actions/to.$id.admin.registration.server.ts @@ -3,6 +3,7 @@ import { requireUser } from "~/features/auth/core/user.server"; import * as ShowcaseTournaments from "~/features/front-page/core/ShowcaseTournaments.server"; import { notify } from "~/features/notifications/core/notify.server"; import * as TeamRepository from "~/features/team/TeamRepository.server"; +import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; import * as TournamentTeamRepository from "~/features/tournament/TournamentTeamRepository.server"; import { clearTournamentDataCache, @@ -45,10 +46,12 @@ export const action: ActionFunction = async ({ request, params }) => { // linked teams source their logo from the sendou.ink team, so any pickup avatar is cleared const avatarImgId = linkedTeamId ? null : data.logo; - let team: NonNullable> | undefined; - if (typeof data.tournamentTeamId === "number") { - team = tournament.teamById(data.tournamentTeamId); - } + const team = + typeof data.tournamentTeamId === "number" + ? ( + await TournamentRepository.findTeamsFullByTournamentId(tournamentId) + ).find((t) => t.id === data.tournamentTeamId) + : undefined; errorToastIfFalsy(team || !tournament.hasStarted, "Tournament has started"); @@ -120,7 +123,7 @@ export const action: ActionFunction = async ({ request, params }) => { notification: { type: "TO_ADDED_TO_TEAM", pictureUrl: - tournament.tournamentTeamLogoSrc(team) ?? tournament.ctx.logoUrl, + team.team?.logoUrl ?? team.pickupAvatarUrl ?? tournament.ctx.logoUrl, meta: { adderUsername: user.username, teamName: name, diff --git a/app/features/tournament-admin/actions/to.$id.admin.seeds.server.ts b/app/features/tournament-admin/actions/to.$id.admin.seeds.server.ts index f8ca73732..483995c3b 100644 --- a/app/features/tournament-admin/actions/to.$id.admin.seeds.server.ts +++ b/app/features/tournament-admin/actions/to.$id.admin.seeds.server.ts @@ -36,20 +36,9 @@ export const action: ActionFunction = async ({ request, params }) => { requireTournamentOrganizer(tournament, user); errorToastIfFalsy(!tournament.hasStarted, "Tournament has started"); - 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, }); message = "Seeds saved successfully"; diff --git a/app/features/tournament-admin/components/ExportDialog.test.ts b/app/features/tournament-admin/components/ExportDialog.test.ts index 047312b79..617d7da6d 100644 --- a/app/features/tournament-admin/components/ExportDialog.test.ts +++ b/app/features/tournament-admin/components/ExportDialog.test.ts @@ -1,28 +1,28 @@ import { describe, expect, it } from "vitest"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; +import type { TournamentTeamFull } from "~/features/tournament-bracket/core/Tournament.server"; import { scopedAndSortedTeams } from "./ExportDialog"; function team( id: number, - checkIns: TournamentDataTeam["checkIns"], -): TournamentDataTeam { + checkIns: TournamentTeamFull["checkIns"], +): TournamentTeamFull { return { id, name: `Team ${id}`, seed: id, createdAt: id, checkIns, - } as unknown as TournamentDataTeam; + } as unknown as TournamentTeamFull; } function checkIns( rows: Array<{ bracketIdx: number | null; isCheckOut?: number }>, -): TournamentDataTeam["checkIns"] { +): TournamentTeamFull["checkIns"] { return rows.map((row, i) => ({ bracketIdx: row.bracketIdx, checkedInAt: i + 1, isCheckOut: row.isCheckOut ?? 0, - })) as unknown as TournamentDataTeam["checkIns"]; + })) as unknown as TournamentTeamFull["checkIns"]; } // Event-level check-in is stored with bracketIdx === null (see CHECK_IN action: diff --git a/app/features/tournament-admin/components/ExportDialog.tsx b/app/features/tournament-admin/components/ExportDialog.tsx index 3a43d4117..ff7862f20 100644 --- a/app/features/tournament-admin/components/ExportDialog.tsx +++ b/app/features/tournament-admin/components/ExportDialog.tsx @@ -6,7 +6,7 @@ import { } from "~/components/elements/ChipRadio"; import { SendouDialog } from "~/components/elements/Dialog"; import { useTournament } from "~/features/tournament/routes/to.$id"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; +import type { TournamentTeamFull } from "~/features/tournament-bracket/core/Tournament.server"; import * as CSV from "~/modules/csv"; import { databaseTimestampToDate } from "~/utils/dates"; import { teamPage, userPage } from "~/utils/urls"; @@ -79,7 +79,13 @@ const DEFAULT_FIELDS: ExportField[] = [ "memberUsername", ]; -export function ExportDialog({ close }: { close: () => void }) { +export function ExportDialog({ + close, + teams: allTeams, +}: { + close: () => void; + teams: TournamentTeamFull[]; +}) { const tournament = useTournament(); const [format, setFormat] = React.useState("list"); @@ -104,10 +110,10 @@ export function ExportDialog({ close }: { close: () => void }) { const onDownload = () => { const selectedBracket = - bracketIdx !== null ? tournament.brackets[bracketIdx] : null; + bracketIdx !== null ? tournament.bracketsMeta[bracketIdx] : null; const bracketRequiresOwnCheckIn = Boolean(selectedBracket?.requiresCheckIn); const teams = scopedAndSortedTeams({ - teams: tournament.ctx.teams, + teams: allTeams, status, sort, bracketIdx, @@ -179,7 +185,7 @@ export function ExportDialog({ close }: { close: () => void }) { }))} /> - {tournament.brackets.length > 1 ? ( + {tournament.bracketsMeta.length > 1 ? ( void }) { } options={[ { value: "all", label: "All brackets" }, - ...tournament.brackets.map((bracket, idx) => ({ + ...tournament.bracketsMeta.map((bracket, idx) => ({ value: String(idx), label: bracket.name || `#${idx}`, })), @@ -258,7 +264,7 @@ function RadioRow({ } function hasActiveCheckIn( - team: TournamentDataTeam, + team: TournamentTeamFull, bracketIdx: number | null, bracketRequiresOwnCheckIn: boolean, ) { @@ -285,7 +291,7 @@ export function scopedAndSortedTeams({ bracketRequiresOwnCheckIn, bracketParticipantIds, }: { - teams: TournamentDataTeam[]; + teams: TournamentTeamFull[]; status: ExportStatus; sort: ExportSort; bracketIdx: number | null; @@ -323,7 +329,7 @@ export function scopedAndSortedTeams({ } function teamFieldValue( - team: TournamentDataTeam, + team: TournamentTeamFull, field: (typeof TEAM_FIELDS)[number], opts: { checkedInLabel: string; @@ -355,7 +361,7 @@ function teamFieldValue( } function memberFieldValue( - member: TournamentDataTeam["members"][number], + member: TournamentTeamFull["members"][number], field: (typeof MEMBER_FIELDS)[number], ) { switch (field) { @@ -380,7 +386,7 @@ function buildContent({ checkedInLabel, notCheckedInLabel, }: { - teams: TournamentDataTeam[]; + teams: TournamentTeamFull[]; format: ExportFormat; fields: Set; captainsOnly: boolean; @@ -391,7 +397,7 @@ function buildContent({ }) { const teamFields = TEAM_FIELDS.filter((field) => fields.has(field)); const memberFields = MEMBER_FIELDS.filter((field) => fields.has(field)); - const membersOf = (team: TournamentDataTeam) => + const membersOf = (team: TournamentTeamFull) => captainsOnly ? team.members.filter((member) => member.role === "OWNER") : team.members; diff --git a/app/features/tournament-admin/loaders/to.$id.admin.index.server.ts b/app/features/tournament-admin/loaders/to.$id.admin.index.server.ts new file mode 100644 index 000000000..e967d0c89 --- /dev/null +++ b/app/features/tournament-admin/loaders/to.$id.admin.index.server.ts @@ -0,0 +1,24 @@ +import type { LoaderFunctionArgs } from "react-router"; +import { requireUser } from "~/features/auth/core/user.server"; +import { + requireTournamentOrganizer, + tournamentSharedCached, + tournamentTeamsFullInSeedOrder, +} from "~/features/tournament-bracket/core/Tournament.server"; +import type { SerializeFrom } from "~/utils/remix"; +import { parseParams } from "~/utils/remix.server"; +import { idObject } from "~/utils/zod"; + +export type TournamentAdminTeamsLoaderData = SerializeFrom; + +export const loader = async ({ params }: LoaderFunctionArgs) => { + const user = requireUser(); + const { id: tournamentId } = parseParams({ params, schema: idObject }); + + const tournament = await tournamentSharedCached(tournamentId); + requireTournamentOrganizer({ tournament, user }); + + return { + teams: await tournamentTeamsFullInSeedOrder({ tournament, user }), + }; +}; diff --git a/app/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts b/app/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts new file mode 100644 index 000000000..e0fd9d33c --- /dev/null +++ b/app/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts @@ -0,0 +1,35 @@ +import type { LoaderFunctionArgs } from "react-router"; +import { z } from "zod"; +import { requireUser } from "~/features/auth/core/user.server"; +import { + requireTournamentOrganizer, + tournamentSharedCached, + tournamentTeamsFullCached, +} from "~/features/tournament-bracket/core/Tournament.server"; +import type { SerializeFrom } from "~/utils/remix"; +import { parseParams } from "~/utils/remix.server"; +import { id } from "~/utils/zod"; + +export type TournamentAdminRegistrationLoaderData = SerializeFrom< + typeof loader +>; + +export const loader = async ({ params }: LoaderFunctionArgs) => { + const user = requireUser(); + const { id: tournamentId, tid: tournamentTeamId } = parseParams({ + params, + schema: z.object({ id, tid: id.optional() }), + }); + + const tournament = await tournamentSharedCached(tournamentId); + requireTournamentOrganizer({ tournament, user }); + + if (typeof tournamentTeamId !== "number") return { team: null }; + + const team = + (await tournamentTeamsFullCached({ tournamentId, user })).find( + (t) => t.id === tournamentTeamId, + ) ?? null; + + return { team }; +}; diff --git a/app/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts b/app/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts index b7f1cea65..32ed0011b 100644 --- a/app/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts +++ b/app/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts @@ -1,26 +1,31 @@ import type { LoaderFunctionArgs } from "react-router"; import * as R from "remeda"; +import { requireUser } from "~/features/auth/core/user.server"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; -import { tournamentFromDBCached } from "~/features/tournament-bracket/core/Tournament.server"; +import { + requireTournamentOrganizer, + tournamentSharedCached, + tournamentTeamsFullInSeedOrder, +} from "~/features/tournament-bracket/core/Tournament.server"; import * as UserCardRepository from "~/features/user-card/UserCardRepository.server"; import { parseParams } from "~/utils/remix.server"; import { idObject } from "~/utils/zod"; export const loader = async ({ params }: LoaderFunctionArgs) => { + const user = requireUser(); const { id: tournamentId } = parseParams({ params, schema: idObject }); - const tournament = await tournamentFromDBCached({ - tournamentId, - user: undefined, - }); + const tournament = await tournamentSharedCached(tournamentId); + requireTournamentOrganizer({ tournament, user }); + + const teams = await tournamentTeamsFullInSeedOrder({ tournament, user }); const userIds = R.unique( - tournament.ctx.teams.flatMap((team) => - team.members.map((member) => member.userId), - ), + teams.flatMap((team) => team.members.map((member) => member.userId)), ); return { + teams, seedingSnapshot: await TournamentRepository.findSeedingSnapshotById(tournamentId), ...(await UserCardRepository.findAllByUserIds({ diff --git a/app/features/tournament-admin/routes/to.$id.admin._index.tsx b/app/features/tournament-admin/routes/to.$id.admin._index.tsx index 85ccc6653..97f8170a8 100644 --- a/app/features/tournament-admin/routes/to.$id.admin._index.tsx +++ b/app/features/tournament-admin/routes/to.$id.admin._index.tsx @@ -13,7 +13,7 @@ import { X, } from "lucide-react"; import * as React from "react"; -import { Link, useFetcher } from "react-router"; +import { Link, useFetcher, useLoaderData } from "react-router"; import { Avatar } from "~/components/Avatar"; import { LinkButton, SendouButton } from "~/components/elements/Button"; import { SendouDialog } from "~/components/elements/Dialog"; @@ -27,8 +27,11 @@ import { } from "~/components/SortableTableHeader"; import { Table } from "~/components/Table"; import { useTournament } from "~/features/tournament/routes/to.$id"; -import type { Tournament } from "~/features/tournament-bracket/core/Tournament"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; +import type { + BracketMeta, + Tournament, +} from "~/features/tournament-bracket/core/Tournament"; +import type { TournamentTeamFull } from "~/features/tournament-bracket/core/Tournament.server"; import { addSubForUserFormSchema } from "~/features/tournament-lfg/tournament-lfg-schemas"; import { SendouForm } from "~/form/SendouForm"; import { @@ -40,15 +43,18 @@ import { } from "~/utils/urls"; import { queryToUserIdentifier } from "~/utils/users"; import { ExportDialog } from "../components/ExportDialog"; +import type { TournamentAdminTeamsLoaderData } from "../loaders/to.$id.admin.index.server"; import styles from "./to.$id.admin._index.module.css"; export { action } from "../actions/to.$id.admin.index.server"; +export { loader } from "../loaders/to.$id.admin.index.server"; type SortKey = "name" | "checkIn"; export default function TournamentAdminTeamsPage() { const tournament = useTournament(); + const { teams } = useLoaderData(); const [search, setSearch] = React.useState(""); const [sort, setSort] = React.useState>(null); @@ -56,12 +62,10 @@ export default function TournamentAdminTeamsPage() { const maxRosterSize = Math.max( 1, - ...tournament.ctx.teams.map((team) => team.members.length), + ...teams.map((team) => team.members.length), ); - const filteredTeams = tournament.ctx.teams.filter((team) => - teamMatchesQuery(team, search), - ); + const filteredTeams = teams.filter((team) => teamMatchesQuery(team, search)); const sortedTeams = sortTeams(filteredTeams, sort); return ( @@ -136,7 +140,7 @@ export default function TournamentAdminTeamsPage() { colSpan={maxRosterSize + (tournament.ctx.isFinalized ? 2 : 3)} className={styles.noResults} > - {tournament.ctx.teams.length === 0 + {teams.length === 0 ? "No registrations yet" : "No registrations match your search"} @@ -145,7 +149,9 @@ export default function TournamentAdminTeamsPage() { - {exportOpen ? setExportOpen(false)} /> : null} + {exportOpen ? ( + setExportOpen(false)} /> + ) : null} ); } @@ -192,14 +198,14 @@ function TeamRow({ maxRosterSize, editPage, }: { - team: TournamentDataTeam; + team: TournamentTeamFull; maxRosterSize: number; editPage: string; }) { const tournament = useTournament(); const members = sortedMembers(team); - const logoSrc = tournament.tournamentTeamLogoSrc(team); + const logoSrc = team.logoUrl; return ( { if (a.role === "OWNER" && b.role !== "OWNER") return -1; if (b.role === "OWNER" && a.role !== "OWNER") return 1; @@ -463,7 +469,7 @@ function sortedMembers(team: TournamentDataTeam) { }); } -function isTournamentCheckedIn(team: TournamentDataTeam) { +function isTournamentCheckedIn(team: TournamentTeamFull) { const tournamentLevel = team.checkIns.filter( (checkIn) => checkIn.bracketIdx === null, ); @@ -473,22 +479,19 @@ function isTournamentCheckedIn(team: TournamentDataTeam) { ); } -function isBracketCheckedIn(team: TournamentDataTeam, bracketIdx: number) { +function isBracketCheckedIn(team: TournamentTeamFull, bracketIdx: number) { return team.checkIns.some( (checkIn) => checkIn.bracketIdx === bracketIdx && !checkIn.isCheckOut, ); } /** Does this bracket have its own opt-in check-in (besides the event check-in)? */ -function isCheckInBracket(bracket: Tournament["brackets"][number]) { +function isCheckInBracket(bracket: BracketMeta) { return bracket.requiresCheckIn; } /** Is the team going to play (or pending check-in) in this bracket? */ -function isTeamInBracket( - bracket: Tournament["brackets"][number], - teamId: number, -) { +function isTeamInBracket(bracket: BracketMeta, teamId: number) { return Boolean( bracket.seeding?.includes(teamId) || bracket.teamsPendingCheckIn?.includes(teamId), @@ -498,15 +501,15 @@ function isTeamInBracket( /** Check-in brackets the given team is a participant of. */ function checkInBracketsForTeam( tournament: Tournament, - team: TournamentDataTeam, + team: TournamentTeamFull, ) { - return tournament.brackets.filter( + return tournament.bracketsMeta.filter( (bracket) => isCheckInBracket(bracket) && isTeamInBracket(bracket, team.id), ); } /** The event and the team's check-in brackets paired with its status in each. */ -function checkInScopes(tournament: Tournament, team: TournamentDataTeam) { +function checkInScopes(tournament: Tournament, team: TournamentTeamFull) { return [ { label: "Event", checkedIn: isTournamentCheckedIn(team) }, ...checkInBracketsForTeam(tournament, team).map((bracket) => ({ @@ -517,7 +520,7 @@ function checkInScopes(tournament: Tournament, team: TournamentDataTeam) { } function activeCheckInLabels( - team: TournamentDataTeam, + team: TournamentTeamFull, labelFor: (bracketIdx: number | null) => string, ) { const byBracket = new Map(); @@ -543,11 +546,11 @@ function activeCheckInLabels( return labels; } -function activeCheckInCount(team: TournamentDataTeam) { +function activeCheckInCount(team: TournamentTeamFull) { return activeCheckInLabels(team, () => "").length; } -function teamMatchesQuery(team: TournamentDataTeam, search: string) { +function teamMatchesQuery(team: TournamentTeamFull, search: string) { const query = search.trim(); if (!query) return true; @@ -577,7 +580,7 @@ function teamMatchesQuery(team: TournamentDataTeam, search: string) { return false; } -function sortTeams(teams: TournamentDataTeam[], sort: SortState) { +function sortTeams(teams: TournamentTeamFull[], sort: SortState) { const bySeed = teams.toSorted((a, b) => { const aSeed = a.seed ?? Number.POSITIVE_INFINITY; const bSeed = b.seed ?? Number.POSITIVE_INFINITY; diff --git a/app/features/tournament-admin/routes/to.$id.admin.audit.tsx b/app/features/tournament-admin/routes/to.$id.admin.audit.tsx index d5d3f3f03..d0cd9f098 100644 --- a/app/features/tournament-admin/routes/to.$id.admin.audit.tsx +++ b/app/features/tournament-admin/routes/to.$id.admin.audit.tsx @@ -85,7 +85,7 @@ function AuditLogRow({ event }: { event: AuditLogEvent }) { const detail = typeof event.metadata?.bracketIdx === "number" - ? tournament.brackets[event.metadata.bracketIdx]?.name + ? tournament.bracketsMeta[event.metadata.bracketIdx]?.name : event.metadata?.inGameName; return ( diff --git a/app/features/tournament-admin/routes/to.$id.admin.brackets.tsx b/app/features/tournament-admin/routes/to.$id.admin.brackets.tsx index e7cdcd064..60229d0fd 100644 --- a/app/features/tournament-admin/routes/to.$id.admin.brackets.tsx +++ b/app/features/tournament-admin/routes/to.$id.admin.brackets.tsx @@ -59,7 +59,7 @@ export default function TournamentAdminBracketsPage() { function BracketReset() { const tournament = useTournament(); const fetcher = useFetcher(); - const inProgressBrackets = tournament.brackets.filter((b) => !b.preview); + const inProgressBrackets = tournament.bracketsMeta.filter((b) => !b.preview); const [_bracketToDelete, setBracketToDelete] = React.useState( inProgressBrackets[0]?.id, ); @@ -129,7 +129,7 @@ function BracketProgressionEdit() { Progression.ParsedBracket[] | null >(tournament.ctx.settings.bracketProgression); - const disabledBracketIdxs = tournament.brackets + const disabledBracketIdxs = tournament.bracketsMeta .filter((bracket) => !bracket.preview) .map((bracket) => bracket.idx); diff --git a/app/features/tournament-admin/routes/to.$id.admin.import-teams.ts b/app/features/tournament-admin/routes/to.$id.admin.import-teams.ts index e78be0332..cd1bd0cc8 100644 --- a/app/features/tournament-admin/routes/to.$id.admin.import-teams.ts +++ b/app/features/tournament-admin/routes/to.$id.admin.import-teams.ts @@ -1,6 +1,10 @@ import type { LoaderFunctionArgs } from "react-router"; import { requireUser } from "~/features/auth/core/user.server"; -import { tournamentFromDB } from "~/features/tournament-bracket/core/Tournament.server"; +import { + requireTournamentVisible, + tournamentDataCached, + tournamentTeamsFullCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import type { SerializeFrom } from "~/utils/remix"; import { badRequestIfFalsy } from "~/utils/remix.server"; import { tournamentImportTeamsSearchParams } from "../tournament-admin-search-params"; @@ -18,13 +22,18 @@ export const loader = async ({ request }: LoaderFunctionArgs) => { tournamentImportTeamsSearchParams.parse(request).fromTournamentId, ); - const fromTournament = await tournamentFromDB({ + const { ctx } = await tournamentDataCached({ + tournamentId: fromTournamentId, + }); + requireTournamentVisible({ ctx, user }); + + const fromTournamentTeams = await tournamentTeamsFullCached({ tournamentId: fromTournamentId, user, }); return { - teams: fromTournament.ctx.teams.map((team) => ({ + teams: fromTournamentTeams.map((team) => ({ id: team.id, name: team.name, avatarImgId: team.avatarImgId, diff --git a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx b/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx index 603a3deb9..ef9158142 100644 --- a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx +++ b/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx @@ -3,18 +3,18 @@ import { describe, expect, test, vi } from "vitest"; import { userEvent } from "vitest/browser"; import { render } from "vitest-browser-react"; -const { mockTournament } = vi.hoisted(() => ({ +const { mockTournament, mockLoaderData } = vi.hoisted(() => ({ mockTournament: { ctx: { id: 1, settings: { requireInGameNames: false } }, - teamById: vi.fn(), }, + mockLoaderData: { team: null as unknown }, })); vi.mock("react-router", async () => { const actual = await vi.importActual("react-router"); return { ...actual, - useParams: () => ({ tid: "10" }), + useLoaderData: () => mockLoaderData, useFetcher: () => ({ data: undefined, state: "idle", @@ -35,6 +35,11 @@ vi.mock( () => ({ action: vi.fn() }), ); +vi.mock( + "~/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server", + () => ({ loader: vi.fn() }), +); + import TournamentAdminRegistrationPage from "./to.$id.admin.registration.$tid"; function renderPage() { @@ -51,7 +56,7 @@ const CAPTAIN_NOT_A_MEMBER_ERROR = "The captain must be one of the players"; describe("tournament admin registration - captain field", () => { test("removing the captain's roster row does not leave a stale captain that fails validation", async () => { // A linked/edited team whose captain (OWNER) is the first roster member. - mockTournament.teamById.mockReturnValue({ + mockLoaderData.team = { id: 10, name: "low ink buddies", team: undefined, @@ -61,7 +66,7 @@ describe("tournament admin registration - captain field", () => { { userId: 1, username: "sanu", inGameName: null, role: "OWNER" }, { userId: 2, username: "Jolt", inGameName: null, role: "MEMBER" }, ], - }); + }; const screen = await renderPage(); diff --git a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx b/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx index 14e38747c..a38077c91 100644 --- a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx +++ b/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx @@ -7,7 +7,6 @@ import { render } from "vitest-browser-react"; const { mockTournament } = vi.hoisted(() => ({ mockTournament: { ctx: { id: 1, settings: { requireInGameNames: false } }, - teamById: vi.fn(), }, })); @@ -15,8 +14,8 @@ vi.mock("react-router", async () => { const actual = await vi.importActual("react-router"); return { ...actual, - // no tid -> "add new team" flow, where the roster is built via user search - useParams: () => ({}), + // no team -> "add new team" flow, where the roster is built via user search + useLoaderData: () => ({ team: null }), }; }); @@ -29,6 +28,11 @@ vi.mock( () => ({ action: vi.fn() }), ); +vi.mock( + "~/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server", + () => ({ loader: vi.fn() }), +); + import TournamentAdminRegistrationPage from "./to.$id.admin.registration.$tid"; const GREY = { diff --git a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx b/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx index 24ef7da50..e396db427 100644 --- a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx +++ b/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx @@ -1,11 +1,11 @@ import { ArrowLeft, Import } from "lucide-react"; import * as React from "react"; import { useTranslation } from "react-i18next"; -import { useFetcher, useParams } from "react-router"; +import { useFetcher, useLoaderData } from "react-router"; import { LinkButton, SendouButton } from "~/components/elements/Button"; import { SendouDialog } from "~/components/elements/Dialog"; import { useTournament } from "~/features/tournament/routes/to.$id"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; +import type { TournamentTeamFull } from "~/features/tournament-bracket/core/Tournament.server"; import { FormField } from "~/form/FormField"; import { SendouForm, useFormFieldContext } from "~/form/SendouForm"; import type { @@ -19,6 +19,7 @@ import { tournamentAdminImportTeamsPage, tournamentAdminPage, } from "~/utils/urls"; +import type { TournamentAdminRegistrationLoaderData } from "../loaders/to.$id.admin.registration.$tid.server"; import { type AdminRegistrationFormValues, adminRegistrationFormSchema, @@ -28,6 +29,7 @@ import { import type { ImportTeamsLoaderData } from "./to.$id.admin.import-teams"; export { action } from "../actions/to.$id.admin.registration.server"; +export { loader } from "../loaders/to.$id.admin.registration.$tid.server"; type RosterMemberValue = { userId?: number; @@ -45,10 +47,7 @@ type LinkedTeamPrefill = { export default function TournamentAdminRegistrationPage() { const { t } = useTranslation(["common"]); const tournament = useTournament(); - const { tid } = useParams(); - - const team = - typeof tid === "string" ? tournament.teamById(Number(tid)) : undefined; + const { team } = useLoaderData(); const adminPage = tournamentAdminPage(tournament.ctx.id); @@ -102,7 +101,7 @@ export default function TournamentAdminRegistrationPage() { ); } -function RegistrationFields({ team }: { team?: TournamentDataTeam }) { +function RegistrationFields({ team }: { team: TournamentTeamFull | null }) { const { t } = useTranslation(["forms"]); const tournament = useTournament(); const { values, setValue, revalidateAll, hasSubmitted } = diff --git a/app/features/tournament-admin/routes/to.$id.admin.seeds.tsx b/app/features/tournament-admin/routes/to.$id.admin.seeds.tsx index 77b8fc073..f5539e91d 100644 --- a/app/features/tournament-admin/routes/to.$id.admin.seeds.tsx +++ b/app/features/tournament-admin/routes/to.$id.admin.seeds.tsx @@ -35,7 +35,7 @@ import { useTournament } from "~/features/tournament/routes/to.$id"; import { TOURNAMENT } from "~/features/tournament/tournament-constants"; import * as AbDivisions from "~/features/tournament-bracket/core/AbDivisions"; import type { Tournament } from "~/features/tournament-bracket/core/Tournament"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; +import type { TournamentTeamFull } from "~/features/tournament-bracket/core/Tournament.server"; import { UserCard } from "~/features/user-card/components/UserCard"; import invariant from "~/utils/invariant"; import type { SendouRouteHandle } from "~/utils/remix.server"; @@ -60,11 +60,10 @@ const AB_DIVISION_RADIO_OPTIONS = [ export default function TournamentAdminSeedsPage() { const tournament = useTournament(); + const { seedingSnapshot, teams } = useLoaderData(); const navigation = useNavigation(); - const [teamOrder, setTeamOrder] = React.useState( - tournament.ctx.teams.map((t) => t.id), - ); - const [activeTeam, setActiveTeam] = React.useState( + const [teamOrder, setTeamOrder] = React.useState(teams.map((t) => t.id)); + const [activeTeam, setActiveTeam] = React.useState( null, ); const sensors = useSensors( @@ -84,24 +83,17 @@ export default function TournamentAdminSeedsPage() { }), ); - const { seedingSnapshot } = useLoaderData(); - const newTeamIds = computeNewTeamIds(tournament.ctx.teams, seedingSnapshot); - const newPlayersByTeam = computeNewPlayers( - tournament.ctx.teams, - seedingSnapshot, - ); - const removedPlayersByTeam = computeRemovedPlayers( - tournament.ctx.teams, - seedingSnapshot, - ); + const newTeamIds = computeNewTeamIds(teams, seedingSnapshot); + const newPlayersByTeam = computeNewPlayers(teams, seedingSnapshot); + const removedPlayersByTeam = computeRemovedPlayers(teams, seedingSnapshot); - const teamsSorted = [...tournament.ctx.teams].sort( + const teamsSorted = [...teams].sort( (a, b) => teamOrder.indexOf(a.id) - teamOrder.indexOf(b.id), ); const isOutOfOrder = ( - team: TournamentDataTeam, - previousTeam?: TournamentDataTeam, + team: TournamentTeamFull, + previousTeam?: TournamentTeamFull, ) => { if (!previousTeam) return false; @@ -115,9 +107,7 @@ export default function TournamentAdminSeedsPage() { return Boolean(previousTeam.avgSeedingSkillOrdinal); }; - const noOrganizerSetSeeding = tournament.ctx.teams.every( - (team) => !team.seed, - ); + const noOrganizerSetSeeding = teams.every((team) => !team.seed); const handleSeedChange = (teamId: number, newSeed: number) => { if (newSeed < 1) return; @@ -135,7 +125,7 @@ export default function TournamentAdminSeedsPage() { }; const sortAllBySp = () => { - const sortedTeams = [...tournament.ctx.teams].sort((a, b) => { + const sortedTeams = [...teams].sort((a, b) => { if ( a.avgSeedingSkillOrdinal !== null && b.avgSeedingSkillOrdinal !== null @@ -174,17 +164,13 @@ export default function TournamentAdminSeedsPage() { {tournament.isMultiStartingBracket ? ( team.startingBracketIdx ?? 0) - .join()} + key={teams.map((team) => team.startingBracketIdx ?? 0).join()} /> ) : null} {hasAbDivisionsStartingBracket(tournament) ? ( <> team.abDivision ?? -1) - .join()} + key={teams.map((team) => team.abDivision ?? -1).join()} /> @@ -357,7 +343,7 @@ function StartingBracketDialog() { const startingBrackets = tournament.ctx.settings.bracketProgression .flatMap((bracket, bracketIdx) => (!bracket.sources ? [bracketIdx] : [])) - .map((bracketIdx) => tournament.bracketByIdx(bracketIdx)!); + .map((bracketIdx) => tournament.bracketsMeta[bracketIdx]); return (
@@ -677,7 +663,7 @@ function RowContents({ removedPlayers, onSeedChange, }: { - team: TournamentDataTeam; + team: TournamentTeamFull; seed?: number; teamSeedingSkill: { sp: number | null; @@ -688,7 +674,6 @@ function RowContents({ removedPlayers?: Array<{ userId: number; username: string }>; onSeedChange?: (newSeed: number) => void; }) { - const tournament = useTournament(); const [draft, setDraft] = React.useState(null); const inputValue = draft ?? String(seed ?? ""); @@ -700,7 +685,7 @@ function RowContents({ setDraft(null); }; - const logoUrl = tournament.tournamentTeamLogoSrc(team); + const logoUrl = team.logoUrl; return ( <> @@ -775,7 +760,7 @@ function RowContents({ } function computeNewTeamIds( - teams: TournamentDataTeam[], + teams: TournamentTeamFull[], snapshot: SeedingSnapshot | null, ): Set { if (!snapshot) return new Set(); @@ -784,7 +769,7 @@ function computeNewTeamIds( } function computeNewPlayers( - teams: TournamentDataTeam[], + teams: TournamentTeamFull[], snapshot: SeedingSnapshot | null, ): Map> { const result = new Map>(); @@ -814,7 +799,7 @@ function computeNewPlayers( } function computeRemovedPlayers( - teams: TournamentDataTeam[], + teams: TournamentTeamFull[], snapshot: SeedingSnapshot | null, ): Map> { const result = new Map>(); diff --git a/app/features/tournament-admin/tournament-admin-registration-schemas.server.ts b/app/features/tournament-admin/tournament-admin-registration-schemas.server.ts index a95dab9b4..6682f3572 100644 --- a/app/features/tournament-admin/tournament-admin-registration-schemas.server.ts +++ b/app/features/tournament-admin/tournament-admin-registration-schemas.server.ts @@ -53,7 +53,7 @@ export function adminRegistrationFormSchemaServer({ typeof data.tournamentTeamId === "number" ? tournament.teamById(data.tournamentTeamId) : undefined; - const currentMemberIds = team?.members.map((member) => member.userId) ?? []; + const currentMemberIds = team?.memberUserIds ?? []; if (team) { const submittedMemberIds = data.members.map((member) => member.userId); @@ -62,9 +62,8 @@ export function adminRegistrationFormSchemaServer({ ); if (tournament.hasStarted) { - const participatedPlayerIds = tournament - .participatedPlayersByTeamId(team.id) - .map((player) => player.userId); + const participatedPlayerIds = + tournament.participatedPlayerUserIdsByTeamId(team.id); const removingParticipatedPlayer = membersToRemove.some((memberId) => participatedPlayerIds.includes(memberId), ); diff --git a/app/features/tournament-bracket/TournamentMatchVodRepository.server.ts b/app/features/tournament-bracket/TournamentMatchVodRepository.server.ts index eefb2def9..13c52b423 100644 --- a/app/features/tournament-bracket/TournamentMatchVodRepository.server.ts +++ b/app/features/tournament-bracket/TournamentMatchVodRepository.server.ts @@ -1,8 +1,10 @@ import { subDays, subHours } from "date-fns"; -import { jsonArrayFrom } from "kysely/helpers/sqlite"; +import { sql } from "kysely"; +import { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/sqlite"; import { db } from "~/db/sql"; import type { Tables } from "~/db/tables"; import { databaseTimestampNow, dateToDatabaseTimestamp } from "~/utils/dates"; +import { commonUserSelect } from "~/utils/kysely.server"; import { TOURNAMENT } from "../tournament/tournament-constants"; export type VodsByTournamentId = Awaited< @@ -21,7 +23,7 @@ export function findVodsByTournamentId(tournamentId: number) { "TournamentStage.id", "TournamentMatch.stageId", ) - .select([ + .select((eb) => [ "TournamentMatchVod.matchId", "TournamentMatchVod.userId", "TournamentMatchVod.platform", @@ -29,6 +31,29 @@ export function findVodsByTournamentId(tournamentId: number) { "TournamentMatchVod.platformVideoId", "TournamentMatchVod.timestampSeconds", "TournamentMatchVod.viewCount", + jsonObjectFrom( + eb + .selectFrom("User") + .select((innerEb) => commonUserSelect(innerEb)) + .whereRef("User.id", "=", "TournamentMatchVod.userId"), + ).as("user"), + eb + .selectFrom("TournamentTeam") + .innerJoin( + "TournamentTeamMember", + "TournamentTeamMember.tournamentTeamId", + "TournamentTeam.id", + ) + .select("TournamentTeam.name") + .whereRef( + "TournamentTeamMember.userId", + "=", + "TournamentMatchVod.userId", + ) + .where( + sql`"TournamentTeam"."id" in (json_extract("TournamentMatch"."opponentOne", '$.id'), json_extract("TournamentMatch"."opponentTwo", '$.id'))`, + ) + .as("teamName"), ]) .where("TournamentStage.tournamentId", "=", tournamentId) .orderBy("TournamentMatchVod.viewCount", "desc") diff --git a/app/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts b/app/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts index 5382daf58..06b6c88e4 100644 --- a/app/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts +++ b/app/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts @@ -133,7 +133,7 @@ function requireValidTrophyReceiver({ trophy: { id: number }; finalStandings: Array<{ placement: number; - team: { members: Array<{ userId: number }> }; + team: { memberUserIds: number[] }; }>; tournament: Tournament; }) { @@ -157,9 +157,7 @@ function requireValidTrophyReceiver({ return false; } - const firstPlaceUserIds = new Set( - firstPlace.team.members.map((m) => m.userId), - ); + const firstPlaceUserIds = new Set(firstPlace.team.memberUserIds); const invalidUserId = trophyReceiver.userIds.find( (userId) => !firstPlaceUserIds.has(userId), ); 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 cac5cc08f..66ca6b10a 100644 --- a/app/features/tournament-bracket/actions/to.$id.brackets.server.ts +++ b/app/features/tournament-bracket/actions/to.$id.brackets.server.ts @@ -139,13 +139,6 @@ export const action: ActionFunction = async ({ params, request }) => { 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, - })), - })), }); } @@ -169,8 +162,9 @@ export const action: ActionFunction = async ({ params, request }) => { if (!tournament.isTest && !tournament.isDraft) { notify({ - userIds: seeding.flatMap((tournamentTeamId) => - tournament.teamById(tournamentTeamId)!.members.map((m) => m.userId), + userIds: seeding.flatMap( + (tournamentTeamId) => + tournament.teamById(tournamentTeamId)!.memberUserIds, ), notification: { type: "TO_BRACKET_STARTED", diff --git a/app/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx b/app/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx index 27e0fec4b..fea605fca 100644 --- a/app/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx +++ b/app/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx @@ -84,14 +84,17 @@ const mockTournament = { ], }, bracketProgressionOverrides: [], - participatedUsers: [1, 2, 3, 4, 5, 6, 7, 8], }, + participatedUserIds: [1, 2, 3, 4, 5, 6, 7, 8], + streamingParticipantIds: [], brackets: [], + bracketsMeta: [], + bracketMetaByIdx: () => null, + isLeagueDivision: false, teamById: (id: number) => mockTournament.ctx.teams.find((t) => t.id === id) ?? null, teamMemberOfByUser: () => null, isOrganizer: () => false, - tournamentTeamLogoSrc: () => null, }; vi.mock("~/features/auth/core/user", () => ({ diff --git a/app/features/tournament-bracket/components/Bracket/Elimination.tsx b/app/features/tournament-bracket/components/Bracket/Elimination.tsx index 2f857de74..bac5cc553 100644 --- a/app/features/tournament-bracket/components/Bracket/Elimination.tsx +++ b/app/features/tournament-bracket/components/Bracket/Elimination.tsx @@ -105,6 +105,7 @@ export function EliminationBracketSide(props: EliminationBracketSideProps) { > { if (type === "winners") return "WB "; @@ -104,8 +105,7 @@ function MatchHeader({ match, type, roundNumber, group }: MatchProps) { } const matchParticipants = [match.opponent1.id, match.opponent2.id].flatMap( - (teamId) => - tournament.teamById(teamId)?.members.map((m) => m.userId) ?? [], + (teamId) => tournament.teamById(teamId)?.memberUserIds ?? [], ); return streamingParticipants.some((p) => matchParticipants.includes(p)); @@ -261,7 +261,7 @@ function MatchRow({ const ownTeam = tournament.teamMemberOfByUser(user); - const logoSrc = team ? tournament.tournamentTeamLogoSrc(team) : null; + const logoSrc = team ? team.logoUrl : null; const showAvatar = spoilerCensor === "full" ? false : !simulated && team; const isBigSeedNumber = @@ -271,15 +271,13 @@ function MatchRow({ const displayedName = spoilerCensor === "full" ? "???" : (team?.name ?? "???"); + // xxx: used to have a title tooltip listing the team's members, removed when rosters + // left the tournament layout data. Check later if it can be brought back e.g. by + // loading the roster on demand when hovering return (
m.username).join(", ") - } >
) { )?.twitchAccount; const matchParticipants = [match.opponent1.id, match.opponent2.id].flatMap( - (teamId) => tournament.teamById(teamId)?.members.map((m) => m.userId) ?? [], + (teamId) => tournament.teamById(teamId)?.memberUserIds ?? [], ); const streamsOfThisMatch = tournament.streams.filter( @@ -366,29 +364,14 @@ function MatchStreams({ match }: Pick) { } interface MatchVodsProps { - vods: Array<{ - matchId: number; - userId: number | null; - platform: string; - account: string; - platformVideoId: string; - timestampSeconds: number; - viewCount: number; - }>; + vods: VodsByTournamentId; } function MatchVods({ vods }: MatchVodsProps) { - const tournament = useTournament(); - return (
{vods.map((vod) => { - const team = vod.userId - ? tournament.ctx.teams.find((t) => - t.members.some((m) => m.userId === vod.userId), - ) - : null; - const user = team?.members.find((m) => m.userId === vod.userId); + const user = vod.user; return ( - {user ? team?.name : null} + {user ? vod.teamName : null} diff --git a/app/features/tournament-bracket/components/Bracket/PlacementsTable.tsx b/app/features/tournament-bracket/components/Bracket/PlacementsTable.tsx index 3671dab79..61adcef3a 100644 --- a/app/features/tournament-bracket/components/Bracket/PlacementsTable.tsx +++ b/app/features/tournament-bracket/components/Bracket/PlacementsTable.tsx @@ -13,6 +13,7 @@ import { useUser } from "../../../auth/core/user"; import type { Bracket, Standing } from "../../core/Bracket"; import * as Swiss from "../../core/engine/swiss/team-status"; import * as Progression from "../../core/Progression"; +import type { BracketMeta } from "../../core/Tournament"; import styles from "./bracket.module.css"; export function PlacementsTable({ @@ -39,7 +40,7 @@ export function PlacementsTable({ wins: stats.setWins, roundCount: bracket.swissRoundCount, }) === "advanced" - ? bracket.tournament.brackets.find((otherBracket) => + ? bracket.tournament.bracketsMeta.find((otherBracket) => otherBracket.sources?.some( (source) => source.bracketIdx === bracket.idx, ), @@ -47,7 +48,7 @@ export function PlacementsTable({ : undefined; } - return bracket.tournament.brackets.find( + return bracket.tournament.bracketsMeta.find( (b) => b.idx === Progression.destinationByPlacement({ @@ -61,7 +62,7 @@ export function PlacementsTable({ const possibleDestinationBrackets = Progression.destinationsFromBracketIdx( bracket.idx, bracket.tournament.ctx.settings.bracketProgression, - ).map((idx) => bracket.tournament.bracketByIdx(idx)!); + ).map((idx) => bracket.tournament.bracketsMeta[idx]); const canEditDestination = (() => { if (possibleDestinationBrackets.length === 0) return false; @@ -139,8 +140,8 @@ function StandingsTable({ destinationBracket: ( standing: Standing, placement: number, - ) => Bracket | undefined; - possibleDestinationBrackets: Bracket[]; + ) => BracketMeta | undefined; + possibleDestinationBrackets: BracketMeta[]; canEditDestination: boolean; allMatchesFinished: boolean; }) { @@ -211,7 +212,7 @@ function StandingsTable({ override.tournamentTeamId === s.team.id, ); const overridenDestinationBracket = overridenDestination - ? bracket.tournament.bracketByIdx( + ? bracket.tournament.bracketMetaByIdx( overridenDestination.destinationBracketIdx, ) : undefined; @@ -359,9 +360,9 @@ function EditableDestination({ droppedOut, }: { source: Bracket; - destination?: Bracket; - overridenDestination?: Bracket | null; - possibleDestinations: Bracket[]; + destination?: BracketMeta; + overridenDestination?: BracketMeta | null; + possibleDestinations: BracketMeta[]; allMatchesFinished: boolean; canEditDestination: boolean; tournamentTeamId: number; diff --git a/app/features/tournament-bracket/components/Bracket/RoundHeader.tsx b/app/features/tournament-bracket/components/Bracket/RoundHeader.tsx index f551d8cb6..561966615 100644 --- a/app/features/tournament-bracket/components/Bracket/RoundHeader.tsx +++ b/app/features/tournament-bracket/components/Bracket/RoundHeader.tsx @@ -13,6 +13,7 @@ import styles from "./bracket.module.css"; export function RoundHeader({ roundId, + bracketIdx, name, bestOf, showInfos, @@ -21,6 +22,7 @@ export function RoundHeader({ matches = [], }: { roundId: number; + bracketIdx: number; name: string; bestOf?: number; showInfos?: boolean; @@ -28,7 +30,7 @@ export function RoundHeader({ roundStartedAt?: number | null; matches?: Array>; }) { - const leagueRoundStartDate = useLeagueWeekStart(roundId); + const leagueRoundStartDate = useLeagueWeekStart(bracketIdx, roundId); const countPrefix = maps?.type === "PLAY_ALL" ? "Play all " : "Bo"; @@ -139,13 +141,14 @@ function RoundTimer({ return
{displayText}
; } -function useLeagueWeekStart(roundId: number) { +function useLeagueWeekStart(bracketIdx: number, roundId: number) { const tournament = useTournament(); - const bracketIdx = tournament.brackets.findIndex((b) => - b.data.round.some((r) => r.id === roundId), - ); - if (bracketIdx !== 0) return null; + if (bracketIdx !== 0 || !tournament.isLeagueDivision) return null; - return resolveLeagueRoundStartDate(tournament, roundId); + return resolveLeagueRoundStartDate( + tournament, + tournament.bracketByIdx(bracketIdx) ?? undefined, + roundId, + ); } diff --git a/app/features/tournament-bracket/components/Bracket/RoundRobin.tsx b/app/features/tournament-bracket/components/Bracket/RoundRobin.tsx index b2c2fe04d..0d16754fb 100644 --- a/app/features/tournament-bracket/components/Bracket/RoundRobin.tsx +++ b/app/features/tournament-bracket/components/Bracket/RoundRobin.tsx @@ -49,6 +49,7 @@ export function RoundRobinBracket({ bracket }: { bracket: BracketType }) {
{bracket.name} check-in - {bracket.canCheckIn(user) ? ( + {tournament.canCheckInToBracket(bracket.idx, user) ? ( { it("should calculate losses against tied", () => { const tournament = new Tournament({ ...LOW_INK_DECEMBER_2024(), - simulateBrackets: false, }); const standing = tournament @@ -31,7 +30,6 @@ describe("swiss standings - losses against tied", () => { it("breaks ties on losses against tied, not wins against tied", () => { const tournament = new Tournament({ ...LOW_INK_DECEMBER_2024(), - simulateBrackets: false, }); const standings = tournament.bracketByIdx(0)!.standings; @@ -59,7 +57,6 @@ describe("swiss standings - losses against tied", () => { it("ranks fewer losses against tied above a higher opponent set win %", () => { const tournament = new Tournament({ ...LOW_INK_DECEMBER_2024(), - simulateBrackets: false, }); const standings = tournament.bracketByIdx(0)!.standings; @@ -84,7 +81,6 @@ describe("swiss standings - losses against tied", () => { it("should ignore early dropped out teams for standings (losses against tied)", () => { const tournament = new Tournament({ ...LOW_INK_DECEMBER_2024(), - simulateBrackets: false, }); const standing = tournament diff --git a/app/features/tournament-bracket/core/Bracket/Bracket.ts b/app/features/tournament-bracket/core/Bracket/Bracket.ts index cf9eb6091..5312028c9 100644 --- a/app/features/tournament-bracket/core/Bracket/Bracket.ts +++ b/app/features/tournament-bracket/core/Bracket/Bracket.ts @@ -1,4 +1,3 @@ -import { sub } from "date-fns"; import * as R from "remeda"; import type { Tables } from "~/db/tables"; import type { TournamentStageSettings } from "~/db/tables-json"; @@ -22,7 +21,7 @@ export interface CreateBracketArgs { preview: boolean; data?: BracketData; type: Tables["TournamentStage"]["type"]; - canBeStarted?: boolean; + participantsReady?: boolean; name: string; teamsPendingCheckIn?: number[]; tournament: Tournament; @@ -64,8 +63,7 @@ export abstract class Bracket { idx; preview; data; - simulatedData: BracketData | undefined; - canBeStarted; + participantsReady; name; teamsPendingCheckIn; tournament; @@ -76,13 +74,16 @@ export abstract class Bracket { requiresCheckIn; startTime; private _matchStatuses: Map | undefined; + private _simulatedData: { value: BracketData | undefined } | undefined; + private _standings: Standing[] | undefined; + private _liveStandings: Standing[] | undefined; constructor({ id, idx, preview, data, - canBeStarted, + participantsReady, name, teamsPendingCheckIn, tournament, @@ -104,17 +105,38 @@ export abstract class Bracket { this.tournament = tournament; this.settings = settings; this.data = data ?? this.generateMatchesData(this.seeding!); - this.canBeStarted = canBeStarted; + this.participantsReady = participantsReady; this.name = name; this.teamsPendingCheckIn = teamsPendingCheckIn; this.sources = sources; this.createdAt = createdAt; this.requiresCheckIn = requiresCheckIn; this.startTime = startTime; + } - if (this.tournament.simulateBrackets) { - this.createdSimulation(); + /** + * Can the organizer start this bracket at this moment? Evaluated on access rather than + * stored because it depends on the current time, and a bracket can be built (and cached) + * long before the clock reaches its start time. + */ + get canBeStarted() { + if (!this.participantsReady) return false; + if (this.startTime && this.startTime > new Date()) return false; + if (this.sources) return true; + + return this.tournament.regularCheckInHasEnded; + } + + /** + * Bracket data with the results of the unplayed matches filled in, showing how teams are + * expected to advance. Simulating is expensive so it happens on first access only. + */ + get simulatedData(): BracketData | undefined { + if (!this._simulatedData) { + this._simulatedData = { value: this.createdSimulation() }; } + + return this._simulatedData.value; } private createdSimulation() { @@ -180,9 +202,11 @@ export abstract class Bracket { } } - this.simulatedData = data; + return data; } catch (e) { logger.error("Bracket.createdSimulation: ", e); + + return; } } @@ -238,7 +262,15 @@ export abstract class Bracket { * Standings that are settled i.e. teams still playing are left out. Safe to * use for deciding who advances to another bracket. */ - abstract get standings(): Standing[]; + get standings(): Standing[] { + if (!this._standings) { + this._standings = this.calculateStandings(); + } + + return this._standings; + } + + protected abstract calculateStandings(): Standing[]; /** * How many rounds a swiss bracket has. Comes from the bracket's own stage @@ -262,6 +294,14 @@ export abstract class Bracket { * bracket's current state, not for deciding who advances. */ get liveStandings(): Standing[] { + if (!this._liveStandings) { + this._liveStandings = this.calculateLiveStandings(); + } + + return this._liveStandings; + } + + protected calculateLiveStandings(): Standing[] { return this.standings; } @@ -312,13 +352,17 @@ export abstract class Bracket { } protected standingsWithoutNonParticipants(standings: Standing[]): Standing[] { + const participatedUserIds = this.tournament.participatedUserIds; + // views that did not load participated user ids show full rosters + if (!participatedUserIds) return standings; + return standings.map((standing) => { return { ...standing, team: { ...standing.team, - members: standing.team.members.filter((member) => - this.tournament.ctx.participatedUsers.includes(member.userId), + memberUserIds: standing.team.memberUserIds.filter((userId) => + participatedUserIds.includes(userId), ), }, }; @@ -435,21 +479,7 @@ export abstract class Bracket { } canCheckIn(user: OptionalIdObject) { - // using regular check-in - if (!this.teamsPendingCheckIn) return false; - - if (this.startTime) { - const checkInOpen = - sub(this.startTime.getTime(), { hours: 1 }).getTime() < Date.now() && - this.startTime.getTime() > Date.now(); - - if (!checkInOpen) return false; - } - - const team = this.tournament.teamMemberOfByUser(user); - if (!team) return false; - - return this.teamsPendingCheckIn.includes(team.id); + return this.tournament.canCheckInToBracket(this.idx, user); } abstract source(options: { diff --git a/app/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts b/app/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts index cab6d4296..f6aa73c9d 100644 --- a/app/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts +++ b/app/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts @@ -71,7 +71,7 @@ export class DoubleEliminationBracket extends Bracket { ); } - get standings(): Standing[] { + protected calculateStandings(): Standing[] { if (!this.enoughTeams) return []; const losersGroupId = this.data.group.find((g) => g.number === 2)?.id; diff --git a/app/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts b/app/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts index 0502121cb..474621d0c 100644 --- a/app/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts +++ b/app/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts @@ -86,11 +86,11 @@ export class RoundRobinBracket extends Bracket { return teams; } - get standings(): Standing[] { + protected calculateStandings(): Standing[] { return this.computeStandings({ includeUnfinishedGroups: false }); } - get liveStandings(): Standing[] { + protected calculateLiveStandings(): Standing[] { return this.computeStandings({ includeUnfinishedGroups: true }); } diff --git a/app/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts b/app/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts index 8c70c303a..26f4af2be 100644 --- a/app/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts +++ b/app/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts @@ -64,7 +64,7 @@ export class SingleEliminationBracket extends Bracket { return R.unique(this.data.match.map((m) => m.groupId)).length > 1; } - get standings(): Standing[] { + protected calculateStandings(): Standing[] { const teams: { id: number; lostAt: number }[] = []; const matches = (() => { diff --git a/app/features/tournament-bracket/core/Bracket/SwissBracket.ts b/app/features/tournament-bracket/core/Bracket/SwissBracket.ts index 563f9efed..4d52bce64 100644 --- a/app/features/tournament-bracket/core/Bracket/SwissBracket.ts +++ b/app/features/tournament-bracket/core/Bracket/SwissBracket.ts @@ -101,11 +101,11 @@ export class SwissBracket extends Bracket { }); } - get standings(): Standing[] { + protected calculateStandings(): Standing[] { return this.computeStandings({ includeUnfinishedGroups: false }); } - get liveStandings(): Standing[] { + protected calculateLiveStandings(): Standing[] { return this.computeStandings({ includeUnfinishedGroups: true }); } diff --git a/app/features/tournament-bracket/core/Bracket/index.ts b/app/features/tournament-bracket/core/Bracket/index.ts index 3a7bb106d..bc45f2060 100644 --- a/app/features/tournament-bracket/core/Bracket/index.ts +++ b/app/features/tournament-bracket/core/Bracket/index.ts @@ -1,5 +1,5 @@ import { assertUnreachable } from "~/utils/types"; -import type { CreateBracketArgs } from "./Bracket"; +import type { Bracket, CreateBracketArgs } from "./Bracket"; import { DoubleEliminationBracket } from "./DoubleEliminationBracket"; import { RoundRobinBracket } from "./RoundRobinBracket"; import { SingleEliminationBracket } from "./SingleEliminationBracket"; @@ -8,9 +8,7 @@ import { SwissBracket } from "./SwissBracket"; export type { CreateBracketArgs, Standing } from "./Bracket"; export { Bracket } from "./Bracket"; -export function createBracket( - args: CreateBracketArgs, -): SingleEliminationBracket | DoubleEliminationBracket | RoundRobinBracket { +export function createBracket(args: CreateBracketArgs): Bracket { switch (args.type) { case "single_elimination": { return new SingleEliminationBracket(args); diff --git a/app/features/tournament-bracket/core/PickBan.ts b/app/features/tournament-bracket/core/PickBan.ts index 011a04030..31311cbe6 100644 --- a/app/features/tournament-bracket/core/PickBan.ts +++ b/app/features/tournament-bracket/core/PickBan.ts @@ -15,7 +15,6 @@ import invariant from "~/utils/invariant"; import { logger } from "~/utils/logger"; import { seededRandom } from "~/utils/random"; import { assertUnreachable } from "~/utils/types"; -import type { TournamentDataTeam } from "./Tournament.server"; export const types = [ "COUNTERPICK", @@ -541,11 +540,17 @@ export interface PickBanEvent { mode: ModeShort | null; } +/** A tournament team as far as map pool based pick/ban legality is concerned. */ +export type MapPoolTeam = { + id: number; + mapPool: Array<{ mode: ModeShort; stageId: StageId }> | null; +}; + interface MapListWithStatusesArgs { results: Array<{ mode: ModeShort; stageId: StageId; winnerTeamId: number }>; maps: TournamentRoundMaps | null; mapList: TournamentMapListMap[] | null; - teams: [TournamentDataTeam, TournamentDataTeam]; + teams: [MapPoolTeam, MapPoolTeam]; pickerTeamId: number; tieBreakerMapPool: ModeWithStage[]; toSetMapPool: Array<{ mode: ModeShort; stageId: StageId }>; diff --git a/app/features/tournament-bracket/core/RunningTournaments.test.ts b/app/features/tournament-bracket/core/RunningTournaments.test.ts index f7d8c1e0e..b4797d96c 100644 --- a/app/features/tournament-bracket/core/RunningTournaments.test.ts +++ b/app/features/tournament-bracket/core/RunningTournaments.test.ts @@ -2,33 +2,13 @@ import { beforeEach, describe, expect, it } from "vitest"; import { RunningTournaments } from "./RunningTournaments.server"; import { testTournament, tournamentCtxTeam } from "./tests/test-utils"; -const createMember = (userId: number) => - ({ - userId, - username: `User ${userId}`, - discordId: String(userId), - discordAvatar: null, - customUrl: null, - country: null, - twitch: null, - plusTier: null, - createdAt: 0, - inGameName: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }) as const; - const createTestTournament = ( tournamentId: number, teamMembers: { teamId: number; userIds: number[] }[], ) => { const teams = teamMembers.map(({ teamId, userIds }) => tournamentCtxTeam(teamId, { - members: userIds.map(createMember), + memberUserIds: userIds, }), ); diff --git a/app/features/tournament-bracket/core/Swiss.test.ts b/app/features/tournament-bracket/core/Swiss.test.ts index a3d3c0dd8..243d1f402 100644 --- a/app/features/tournament-bracket/core/Swiss.test.ts +++ b/app/features/tournament-bracket/core/Swiss.test.ts @@ -112,7 +112,6 @@ describe("Swiss", () => { describe("Zones Weekly 38", () => { const tournament = new Tournament({ ...ZONES_WEEKLY_38(), - simulateBrackets: false, }); const bracket = tournament.bracketByIdx(0)!; diff --git a/app/features/tournament-bracket/core/Tournament.server.ts b/app/features/tournament-bracket/core/Tournament.server.ts index fb28fe525..792175664 100644 --- a/app/features/tournament-bracket/core/Tournament.server.ts +++ b/app/features/tournament-bracket/core/Tournament.server.ts @@ -1,16 +1,31 @@ import { sub } from "date-fns"; +import { redirect } from "react-router"; import { ServerConfig } from "~/config.server"; import { clearCombinedStreamsCache } from "~/features/core/streams/streams.server"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; import * as BracketRepository from "~/features/tournament-bracket/BracketRepository.server"; import type { BracketData } from "~/features/tournament-bracket/core/engine/types"; import { getTentativeTier } from "~/features/tournament-organization/core/tentativeTiers.server"; -import { isAdmin } from "~/modules/permissions/utils"; -import { databaseTimestampToDate } from "~/utils/dates"; +import { LRUCache } from "~/modules/cache"; +import { IN_MILLISECONDS } from "~/utils/cache.server"; +import { + databaseTimestampToDate, + dateToDatabaseTimestamp, +} from "~/utils/dates"; import { notFoundIfNullish } from "~/utils/remix.server"; import type { Unwrapped } from "~/utils/types"; +import { tournamentPage } from "~/utils/urls"; +import type { Bracket } from "./Bracket"; import { RunningTournaments } from "./RunningTournaments.server"; -import { Tournament } from "./Tournament"; +import { + type BracketDerivedMeta, + isTournamentOrganizer, + type OptionalIdObject, + type SerializedBracket, + Tournament, + type TournamentOrganizerCtx, + type TournamentStream, +} from "./Tournament"; const combinedTournamentData = async (tournamentId: number) => { const ctx = await TournamentRepository.findById(tournamentId); @@ -19,11 +34,122 @@ const combinedTournamentData = async (tournamentId: number) => { return { data: await BracketRepository.findByTournamentId(tournamentId), ctx, + participatedUsers: + await TournamentRepository.findParticipatedUserIdsById(tournamentId), + streams: await fetchTournamentStreams(tournamentId), }; }; +/** + * Live streams of the tournament read fresh from the database, bypassing the tournament + * data cache. The streams view and bracket views ship these; the cached copy (read once + * per cache fill) only serves the server-side consumers of running tournaments. + */ +export async function fetchTournamentStreams( + tournamentId: number, +): Promise { + const { participantStreams, castStreams } = + await TournamentRepository.findStreamsByTournamentId(tournamentId); + + const memberStreams = participantStreams.map((stream) => ({ + thumbnailUrl: stream.thumbnailUrl, + twitchUserName: stream.twitch, + viewerCount: stream.viewerCount, + userId: stream.userId as number | null, + teamName: stream.teamName as string | null, + user: { + id: stream.id, + username: stream.username, + discordId: stream.discordId, + discordAvatar: stream.discordAvatar, + customUrl: stream.customUrl, + customAvatarUrl: stream.customAvatarUrl, + }, + })); + + const casts = castStreams.map((stream) => ({ + thumbnailUrl: stream.thumbnailUrl, + twitchUserName: stream.twitch!, + viewerCount: stream.viewerCount, + userId: null, + teamName: null, + user: null, + })); + + return [...memberStreams, ...casts].sort( + (a, b) => b.viewerCount - a.viewerCount, + ); +} + export type TournamentData = NonNullable>; -export type TournamentDataTeam = TournamentData["ctx"]["teams"][number]; + +/** + * What the tournament layout ships: everything every view needs and nothing a single view + * needs. Match data is loaded per bracket by the views that render brackets. + */ +export type TournamentLayoutData = { + ctx: TournamentData["ctx"]; + bracketsMeta: BracketDerivedMeta[]; +}; + +/** + * A tournament team as the tournament layout ships it: no per member profile data, + * map pool or invite code. See {@link tournamentTeamsFullCached} for those. + */ +export type TournamentDataTeam = Omit< + TournamentRepository.FindById["teams"][number], + "teamLogoUrl" | "pickupAvatarUrl" | "inviteCode" +> & { + /** Logo of the linked team, falling back to the pickup avatar when it may be revealed. */ + logoUrl: string | null; + /** Only set for the viewer's own team. */ + inviteCode: string | null; +}; + +/** The parts of a tournament that decide whether it may be seen at all. */ +type TournamentVisibilityCtx = TournamentOrganizerCtx & + Pick; + +/** + * Ensures the tournament may be seen by the given user. Draft tournaments are only visible + * to their organizers. + * + * Every loader under the tournament layout route must call this. They are each reachable on + * their own via single fetch, without the layout loader (and its check) ever running. + * + * @throws {Response} 404 if the tournament is a draft the user is not an organizer of + */ +export function requireTournamentVisible({ + ctx, + user, +}: { + ctx: TournamentVisibilityCtx; + user: OptionalIdObject; +}) { + if (!ctx.settings.isDraft) return; + if (isTournamentOrganizer({ ctx, user })) return; + + throw new Response(null, { status: 404 }); +} + +/** + * Ensures the given user organizes the tournament, sending non-organizers back to the + * tournament's front page. Admin view loaders call this after {@link tournamentSharedCached}. + * + * @throws {Response} redirect to the tournament page for non-organizers + */ +export function requireTournamentOrganizer({ + tournament, + user, +}: { + tournament: Tournament; + user: OptionalIdObject; +}) { + if (tournament.isOrganizer(user)) return; + + throw redirect(tournamentPage(tournament.ctx.id)); +} + export async function tournamentData({ user, tournamentId, @@ -40,20 +166,21 @@ export async function tournamentData({ function dataMapped({ data, ctx, + participatedUsers, + streams, user, }: { data: BracketData; ctx: TournamentRepository.FindById; + participatedUsers: number[]; + streams: TournamentStream[]; user?: { id: number }; }) { - const tournamentHasStarted = data.stage.length > 0; - const isOrganizer = - ctx.author.id === user?.id || - ctx.staff.some( - (staff) => staff.id === user?.id && staff.role === "ORGANIZER", - ) || - isAdmin(user); - const revealInfo = tournamentHasStarted || isOrganizer; + const revealInfo = shouldRevealInfo({ + tournamentHasStarted: data.stage.length > 0, + ctx, + user, + }); const tentativeTier = !ctx.tier && ctx.organization?.id @@ -62,33 +189,48 @@ function dataMapped({ return { data, + participatedUsers, + streams, ctx: { ...ctx, tentativeTier, - teams: ctx.teams.map((team) => { - const isOwnTeam = team.members.some( - (member) => member.userId === user?.id, - ); + teams: ctx.teams.map( + ({ teamLogoUrl, pickupAvatarUrl, ...team }): TournamentDataTeam => { + const isOwnTeam = + typeof user?.id === "number" && + team.memberUserIds.includes(user.id); - return { - ...team, - mapPool: revealInfo || isOwnTeam ? team.mapPool : null, - pickupAvatarUrl: - revealInfo || isOwnTeam ? team.pickupAvatarUrl : null, - inviteCode: isOwnTeam ? team.inviteCode : null, - }; - }), + return { + ...team, + inviteCode: isOwnTeam ? team.inviteCode : null, + logoUrl: + teamLogoUrl ?? (revealInfo || isOwnTeam ? pickupAvatarUrl : null), + }; + }, + ), }, }; } +function shouldRevealInfo({ + tournamentHasStarted, + ctx, + user, +}: { + tournamentHasStarted: boolean; + ctx: TournamentOrganizerCtx; + user?: { id: number }; +}) { + return tournamentHasStarted || isTournamentOrganizer({ ctx, user }); +} + export async function tournamentFromDB(args: { user: { id: number } | undefined; tournamentId: number; }) { const data = notFoundIfNullish(await tournamentData(args)); - const tournament = new Tournament({ ...data, simulateBrackets: false }); + const tournament = new Tournament(data); syncTournamentToRegistry(tournament); return tournament; @@ -100,15 +242,28 @@ export async function tournamentFromDBCached(args: { }) { const data = notFoundIfNullish(await tournamentDataCached(args)); - return new Tournament({ ...data, simulateBrackets: false }); + return new Tournament(data); } -// caching promise ensures that if many requests are made for the same tournament -// at the same time they reuse the same resolving promise -const tournamentDataCache = new Map< - number, - ReturnType ->(); +const TOURNAMENT_DATA_CACHE_MAX_ENTRIES = 250; +const TOURNAMENT_DATA_CACHE_TTL_MS = IN_MILLISECONDS.HALF_HOUR; + +type TournamentDataCacheEntry = { + storedAt: number; + // caching promise ensures that if many requests are made for the same tournament + // at the same time they reuse the same resolving promise + combined: ReturnType; + // the vast majority of viewers are logged out and get the exact same censoring applied + anonymousMapped?: ReturnType; + // brackets are expensive to build (preview brackets are generated from scratch) and what + // they derive from is the same for every viewer, so one instance serves them all + anonymousTournament?: Tournament; +}; + +const tournamentDataCache = new LRUCache({ + max: TOURNAMENT_DATA_CACHE_MAX_ENTRIES, +}); + export async function tournamentDataCached({ user, tournamentId, @@ -120,21 +275,222 @@ export async function tournamentDataCached({ return notFoundIfNullish(await tournamentData({ user, tournamentId })); } - if (!tournamentDataCache.has(tournamentId)) { - tournamentDataCache.set(tournamentId, combinedTournamentData(tournamentId)); + const entry = tournamentDataCacheEntry(tournamentId); + const data = notFoundIfNullish(await entry.combined); + + if (user) return dataMapped({ user, ...data }); + + if (!entry.anonymousMapped) { + entry.anonymousMapped = dataMapped({ user: undefined, ...data }); } - const data = notFoundIfNullish(await tournamentDataCache.get(tournamentId)); + return entry.anonymousMapped; +} - return dataMapped({ user, ...data }); +/** + * A `Tournament` shared by every request for the lifetime of the cache entry. The bracket + * level derivations (bracket state, standings, one bracket's data) are the same for every + * viewer, so building the brackets happens once per cache fill instead of once per request. + */ +export async function tournamentSharedCached(tournamentId: number) { + if (ServerConfig.disableCache) { + return new Tournament( + notFoundIfNullish(await tournamentData({ tournamentId })), + ); + } + + const entry = tournamentDataCacheEntry(tournamentId); + const data = notFoundIfNullish(await entry.combined); + + if (!entry.anonymousMapped) { + entry.anonymousMapped = dataMapped({ user: undefined, ...data }); + } + if (!entry.anonymousTournament) { + entry.anonymousTournament = new Tournament(entry.anonymousMapped); + } + + return entry.anonymousTournament; +} + +/** State of every bracket of the tournament, without any of the match data it derives from. */ +export async function bracketsMetaCached( + tournamentId: number, +): Promise { + return (await tournamentSharedCached(tournamentId)).bracketsDerivedMeta; +} + +/** One bracket with its match data, in the shape {@link Tournament.withBrackets} revives. */ +export function serializeBracket(bracket: Bracket): SerializedBracket { + return { + id: bracket.id, + idx: bracket.idx, + preview: bracket.preview, + data: bracket.data, + type: bracket.type, + participantsReady: bracket.participantsReady, + name: bracket.name, + teamsPendingCheckIn: bracket.teamsPendingCheckIn, + createdAt: bracket.createdAt ?? null, + sources: bracket.sources, + seeding: bracket.seeding, + settings: bracket.settings, + requiresCheckIn: bracket.requiresCheckIn, + startTime: bracket.startTime + ? dateToDatabaseTimestamp(bracket.startTime) + : null, + }; +} + +function tournamentDataCacheEntry(tournamentId: number) { + const cached = tournamentDataCache.get(tournamentId); + if (cached && Date.now() - cached.storedAt < TOURNAMENT_DATA_CACHE_TTL_MS) { + return cached; + } + + const entry: TournamentDataCacheEntry = { + storedAt: Date.now(), + combined: combinedTournamentData(tournamentId), + }; + entry.combined.catch(() => { + if (tournamentDataCache.get(tournamentId) === entry) { + tournamentDataCache.delete(tournamentId); + } + }); + + tournamentDataCache.set(tournamentId, entry); + + return entry; +} + +/** A tournament team with its full roster, as the views that render rosters get it. */ +export type TournamentTeamFull = Unwrapped; + +type TournamentTeamsCacheEntry = { + storedAt: number; + teams: ReturnType; + anonymousCensored?: ReturnType; +}; + +const tournamentTeamsCache = new LRUCache({ + max: TOURNAMENT_DATA_CACHE_MAX_ENTRIES, +}); + +/** + * Full rosters of a tournament's teams, censored for the given viewer. Its own cache + * slice so that the (much smaller) tournament layout data does not have to carry them. + */ +export async function tournamentTeamsFullCached({ + user, + tournamentId, +}: { + user?: { id: number }; + tournamentId: number; +}) { + const ctx = notFoundIfNullish(await tournamentDataCached({ tournamentId })); + + const revealInfo = shouldRevealInfo({ + tournamentHasStarted: ctx.data.stage.length > 0, + ctx: ctx.ctx, + user, + }); + + if (ServerConfig.disableCache) { + return censoredTeams({ + teams: + await TournamentRepository.findTeamsFullByTournamentId(tournamentId), + revealInfo, + user, + }); + } + + const entry = tournamentTeamsCacheEntry(tournamentId); + const teams = await entry.teams; + + if (user) return censoredTeams({ teams, revealInfo, user }); + + if (!entry.anonymousCensored) { + entry.anonymousCensored = censoredTeams({ teams, revealInfo }); + } + + return entry.anonymousCensored; +} + +/** + * {@link tournamentTeamsFullCached} in the tournament's own seed order, which is not + * the order the team rows come back in. + */ +export async function tournamentTeamsFullInSeedOrder({ + tournament, + user, +}: { + tournament: Tournament; + user?: { id: number }; +}) { + const rosterByTeamId = new Map( + ( + await tournamentTeamsFullCached({ tournamentId: tournament.ctx.id, user }) + ).map((team) => [team.id, team]), + ); + + return tournament.ctx.teams.flatMap((team) => { + const withRoster = rosterByTeamId.get(team.id); + return withRoster ? [withRoster] : []; + }); +} + +function tournamentTeamsCacheEntry(tournamentId: number) { + const cached = tournamentTeamsCache.get(tournamentId); + if (cached && Date.now() - cached.storedAt < TOURNAMENT_DATA_CACHE_TTL_MS) { + return cached; + } + + const entry: TournamentTeamsCacheEntry = { + storedAt: Date.now(), + teams: TournamentRepository.findTeamsFullByTournamentId(tournamentId), + }; + entry.teams.catch(() => { + if (tournamentTeamsCache.get(tournamentId) === entry) { + tournamentTeamsCache.delete(tournamentId); + } + }); + + tournamentTeamsCache.set(tournamentId, entry); + + return entry; +} + +function censoredTeams({ + teams, + revealInfo, + user, +}: { + teams: TournamentRepository.TeamFull[]; + revealInfo: boolean; + user?: { id: number }; +}) { + return teams.map((team) => { + const isOwnTeam = team.members.some((member) => member.userId === user?.id); + const pickupAvatarUrl = + revealInfo || isOwnTeam ? team.pickupAvatarUrl : null; + + return { + ...team, + mapPool: revealInfo || isOwnTeam ? team.mapPool : null, + pickupAvatarUrl, + logoUrl: team.team?.logoUrl ?? pickupAvatarUrl, + inviteCode: isOwnTeam ? team.inviteCode : null, + }; + }); } export function clearTournamentDataCache(tournamentId: number) { tournamentDataCache.delete(tournamentId); + tournamentTeamsCache.delete(tournamentId); } export function clearAllTournamentDataCache() { tournamentDataCache.clear(); + tournamentTeamsCache.clear(); } const RUNNING_TOURNAMENT_MAX_AGE_HOURS = 6; @@ -206,7 +562,7 @@ async function primeRunningTournamentsCache() { const data = await tournamentData({ user: undefined, tournamentId }); if (!data) continue; - const tournament = new Tournament({ ...data, simulateBrackets: false }); + const tournament = new Tournament(data); syncTournamentToRegistry(tournament); } } diff --git a/app/features/tournament-bracket/core/Tournament.test.ts b/app/features/tournament-bracket/core/Tournament.test.ts index 11138c0a1..6bb93f529 100644 --- a/app/features/tournament-bracket/core/Tournament.test.ts +++ b/app/features/tournament-bracket/core/Tournament.test.ts @@ -439,3 +439,61 @@ describe("Adjusting team starting bracket", () => { expect(tournament.brackets[0].participantTournamentTeamIds).toHaveLength(4); }); }); + +describe("Resolving the team a user is a member of", () => { + const USER_ID = 1; + + const tournamentWithTeams = ( + teams: Array<{ id: number; createdAt: number }>, + latestTeamIdByDuplicatedUserId: Record = {}, + ) => + testTournament({ + ctx: { + teams: teams.map((team) => + tournamentCtxTeam(team.id, { + createdAt: team.createdAt, + memberUserIds: [USER_ID], + }), + ), + latestTeamIdByDuplicatedUserId, + }, + }); + + it("resolves the only team the user is a member of", () => { + const tournament = tournamentWithTeams([{ id: 1, createdAt: 1 }]); + + expect(tournament.teamMemberOfByUser({ id: USER_ID })?.id).toBe(1); + }); + + it("resolves the team the user joined most recently when on many teams", () => { + // e.g. the user's first team dropped out and the organizer added them to an + // older team afterwards + const tournament = tournamentWithTeams( + [ + { id: 1, createdAt: 1 }, + { id: 2, createdAt: 100 }, + ], + { [USER_ID]: 1 }, + ); + + expect(tournament.teamMemberOfByUser({ id: USER_ID })?.id).toBe(1); + }); + + it("falls back to the first team when the most recently joined one is not visible", () => { + const tournament = tournamentWithTeams( + [ + { id: 1, createdAt: 1 }, + { id: 2, createdAt: 2 }, + ], + { [USER_ID]: 3 }, + ); + + expect(tournament.teamMemberOfByUser({ id: USER_ID })?.id).toBe(1); + }); + + it("returns null if the user is not a member of any team", () => { + const tournament = tournamentWithTeams([{ id: 1, createdAt: 1 }]); + + expect(tournament.teamMemberOfByUser({ id: USER_ID + 1 })).toBeNull(); + }); +}); diff --git a/app/features/tournament-bracket/core/Tournament.ts b/app/features/tournament-bracket/core/Tournament.ts index e1dface7d..4d23b974d 100644 --- a/app/features/tournament-bracket/core/Tournament.ts +++ b/app/features/tournament-bracket/core/Tournament.ts @@ -1,4 +1,6 @@ +import { sub } from "date-fns"; import type { Tables } from "~/db/tables"; +import type { TournamentStageSettings } from "~/db/tables-json"; import { LEAGUES, TOURNAMENT, @@ -9,15 +11,11 @@ import { tournamentInWeaponReportingWindow, tournamentIsRanked, } from "~/features/tournament/tournament-utils"; -import type { - BracketData, - MatchData, -} from "~/features/tournament-bracket/core/engine/types"; -import type * as Progression from "~/features/tournament-bracket/core/Progression"; +import type { MatchData } from "~/features/tournament-bracket/core/engine/types"; +import * as Progression from "~/features/tournament-bracket/core/Progression"; import type { ModeShort } from "~/modules/in-game-lists/types"; import { isAdmin } from "~/modules/permissions/utils"; import { - databaseTimestampNow, databaseTimestampToDate, dateToDatabaseTimestamp, } from "~/utils/dates"; @@ -28,10 +26,91 @@ import { groupNumberToLetters } from "../tournament-bracket-utils"; import { type Bracket, createBracket } from "./Bracket"; import { getRounds } from "./rounds"; import * as Seeding from "./Seeding"; -import type { TournamentData, TournamentDataTeam } from "./Tournament.server"; +import type { TournamentData } from "./Tournament.server"; export type OptionalIdObject = { id: number } | undefined; +/** + * The state of one bracket that can only be derived from its match data. Shipped to the + * views that render a tournament without loading any of its match data. + */ +export type BracketDerivedMeta = { + /** Stage id of a started bracket, placeholder id of a bracket that has not been started. */ + id: number; + createdAt: number | null; + preview: boolean; + everyMatchOver: boolean; + /** False only while a swiss bracket still has rounds whose matches have not been generated. */ + allRoundsHaveMatches: boolean; + participantTournamentTeamIds: number[]; + teamsPendingCheckIn: number[] | null; + seeding: number[] | null; +}; + +/** A bracket's identity and state without its match data. See {@link Tournament.bracketsMeta}. */ +export type BracketMeta = BracketDerivedMeta & { + idx: number; + name: string; + type: Tables["TournamentStage"]["type"]; + sources: Progression.ParsedBracket["sources"]; + settings: TournamentStageSettings | null; + requiresCheckIn: boolean; + startTime: Date | null; + isUnderground: boolean; + isFinals: boolean; + isStartingBracket: boolean; + enoughTeams: boolean; +}; + +/** One bracket as a route loader ships it, ready to be revived by {@link Tournament.withBrackets}. */ +export type SerializedBracket = { + id: number; + idx: number; + preview: boolean; + data: TournamentData["data"]; + type: Tables["TournamentStage"]["type"]; + participantsReady?: boolean; + name: string; + teamsPendingCheckIn?: number[]; + createdAt: number | null; + sources?: { bracketIdx: number; placements: number[] }[]; + seeding?: number[]; + settings: TournamentStageSettings | null; + requiresCheckIn: boolean; + startTime: number | null; +}; + +/** One live stream of the tournament: a participant's stream or an official cast stream. */ +export type TournamentStream = { + thumbnailUrl: string; + twitchUserName: string; + viewerCount: number; + userId: number | null; + teamName: string | null; + user: { + id: number; + username: string; + discordId: string; + discordAvatar: string | null; + customUrl: string | null; + customAvatarUrl: string | null; + } | null; +}; + +type TournamentArgs = { + /** Match data of every bracket. Absent in the views that only got {@link bracketsMeta}. */ + data?: TournamentData["data"]; + ctx: TournamentData["ctx"]; + /** Derived bracket state, when the match data it was derived from is not shipped. */ + bracketsMeta?: BracketDerivedMeta[]; + /** Brackets whose match data this view loaded on its own. */ + brackets?: SerializedBracket[]; + /** User ids of everyone who played at least one map. */ + participatedUsers?: number[]; + /** Live streams of the tournament. Absent in the views whose loader does not ship them. */ + streams?: TournamentStream[]; +}; + /** The progress status of a team member in a running tournament, as resolved by {@link Tournament.teamMemberOfProgressStatus}. */ export type TournamentTeamMemberProgressStatus = NonNullable< ReturnType @@ -39,26 +118,31 @@ export type TournamentTeamMemberProgressStatus = NonNullable< /** Extends and providers utility functions on top of the bracket-manager library. Updating data after the bracket has started is responsibility of bracket-manager. */ export class Tournament { - brackets: Bracket[] = []; ctx; - simulateBrackets; + /** See {@link TournamentArgs.participatedUsers}, null when this view did not get them. */ + readonly participatedUserIds: number[] | null; + private args; + private data; + private _brackets: Array = []; + private _allBrackets: Bracket[] | undefined; + private _derivedMeta: BracketDerivedMeta[] | undefined; + private _bracketsMeta: BracketMeta[] | undefined; + private bracketIdxsBeingBuilt = new Set(); - constructor({ - data, - ctx, - simulateBrackets = true, - }: { - data: TournamentData["data"]; - ctx: TournamentData["ctx"]; - /** Should the bracket results be simulated (showing how teams are expected to advance), skipping it is a performance optimization if it's not needed */ - simulateBrackets?: boolean; - }) { - const hasStarted = data.stage.length > 0; + constructor(args: TournamentArgs) { + const { data, ctx, bracketsMeta, brackets } = args; + + const hasStarted = data + ? data.stage.length > 0 + : Boolean(bracketsMeta?.some((meta) => !meta.preview)); const minMembersPerTeam = ctx.settings.minMembersPerTeam ?? 4; const teamsInSeedOrder = sortTeamsBySeeding(ctx.teams, minMembersPerTeam); - this.simulateBrackets = simulateBrackets; + this.args = args; + this.data = data; + this.participatedUserIds = args.participatedUsers ?? null; + this._derivedMeta = bracketsMeta; this.ctx = { ...ctx, teams: hasStarted @@ -68,102 +152,219 @@ export class Tournament { startsAt: databaseTimestampToDate(ctx.startsAt), }; - this.initBrackets(data); + for (const bracket of brackets ?? []) { + this._brackets[bracket.idx] = createBracket({ + ...bracket, + tournament: this, + startTime: bracket.startTime + ? databaseTimestampToDate(bracket.startTime) + : null, + }); + } } - private initBrackets(data: BracketData) { - for (const [ - bracketIdx, - { - type, + /** + * The same tournament with the match data of the given brackets available. Used by the views + * that load one bracket's data of their own, the layout only shipping {@link bracketsMeta}. + */ + withBrackets( + brackets: SerializedBracket[], + extras?: { + participatedUsers?: number[] | null; + streams?: TournamentStream[]; + }, + ) { + return new Tournament({ + ...this.args, + brackets, + participatedUsers: + extras?.participatedUsers ?? this.args.participatedUsers, + streams: extras?.streams ?? this.args.streams, + }); + } + + /** + * Every bracket of the tournament. Building a bracket is expensive (preview brackets + * are generated from scratch) so prefer {@link bracketByIdx} when only one is needed. + */ + get brackets(): Bracket[] { + if (!this._allBrackets) { + this._allBrackets = this.ctx.settings.bracketProgression.map( + (_, bracketIdx) => this.builtBracketByIdx(bracketIdx), + ); + } + + return this._allBrackets; + } + + /** + * State of every bracket without its match data. Available in every view, unlike + * {@link brackets} which needs the match data the bracket views load. + */ + get bracketsMeta(): BracketMeta[] { + if (this._bracketsMeta) return this._bracketsMeta; + + const progression = this.ctx.settings.bracketProgression; + const derived = this.bracketsDerivedMeta; + + this._bracketsMeta = progression.map((bracket, idx) => ({ + ...derived[idx], + idx, + name: bracket.name, + type: bracket.type, + sources: bracket.sources, + settings: bracket.settings ?? null, + requiresCheckIn: bracket.requiresCheckIn ?? false, + startTime: bracket.startTime + ? databaseTimestampToDate(bracket.startTime) + : null, + isUnderground: Progression.isUnderground(idx, progression), + isFinals: Progression.isFinals(idx, progression), + isStartingBracket: !bracket.sources || bracket.sources.length === 0, + enoughTeams: + derived[idx].participantTournamentTeamIds.length >= + TOURNAMENT.ENOUGH_TEAMS_TO_START, + })); + + return this._bracketsMeta; + } + + /** + * {@link bracketsMeta} of the brackets the user can switch between. Brackets that never + * started are not shown once the tournament has been finalized. + */ + get visibleBracketsMeta(): BracketMeta[] { + return this.bracketsMeta.filter( + (bracket) => !this.ctx.isFinalized || !bracket.preview, + ); + } + + /** {@link bracketsMeta} in the shape it is shipped in, i.e. only what match data is needed for. */ + get bracketsDerivedMeta(): BracketDerivedMeta[] { + if (!this._derivedMeta) { + this._derivedMeta = this.brackets.map((bracket) => ({ + id: bracket.id, + createdAt: bracket.createdAt ?? null, + preview: bracket.preview, + everyMatchOver: bracket.everyMatchOver, + allRoundsHaveMatches: bracket.data.round.every((round) => + bracket.data.match.some((match) => match.roundId === round.id), + ), + participantTournamentTeamIds: bracket.participantTournamentTeamIds, + teamsPendingCheckIn: bracket.teamsPendingCheckIn ?? null, + seeding: bracket.seeding ?? null, + })); + } + + return this._derivedMeta; + } + + /** State of one bracket without its match data, or null if there is no such bracket. */ + bracketMetaByIdx(idx: number): BracketMeta | null { + return this.bracketsMeta[idx] ?? null; + } + + private builtBracketByIdx(bracketIdx: number): Bracket { + const memoized = this._brackets[bracketIdx]; + if (memoized) return memoized; + + this.bracketIdxsBeingBuilt.add(bracketIdx); + try { + const bracket = this.buildBracket(bracketIdx); + this._brackets[bracketIdx] = bracket; + + return bracket; + } finally { + this.bracketIdxsBeingBuilt.delete(bracketIdx); + } + } + + private buildBracket(bracketIdx: number): Bracket { + invariant( + this.data, + `Bracket ${bracketIdx} has no match data loaded, use bracketsMeta or load the bracket in this view's loader`, + ); + const data = this.data; + + const { + type, + name, + sources, + requiresCheckIn = false, + startTime = null, + settings, + } = this.ctx.settings.bracketProgression[bracketIdx]; + + const inProgressStage = data.stage.find((stage) => stage.name === name); + + if (inProgressStage) { + return createBracket({ + id: inProgressStage.id, + idx: bracketIdx, + tournament: this, + preview: false, name, sources, - requiresCheckIn = false, - startTime = null, - settings, - }, - ] of this.ctx.settings.bracketProgression.entries()) { - const inProgressStage = data.stage.find((stage) => stage.name === name); - - if (inProgressStage) { - const match = data.match.filter( - (match) => match.stageId === inProgressStage.id, - ); - - this.brackets.push( - createBracket({ - id: inProgressStage.id, - idx: bracketIdx, - tournament: this, - preview: false, - name, - sources, - createdAt: inProgressStage.createdAt, - requiresCheckIn, - startTime: startTime ? databaseTimestampToDate(startTime) : null, - settings: settings ?? null, - data: { - ...data, - group: data.group.filter( - (group) => group.stageId === inProgressStage.id, - ), - match, - stage: data.stage.filter( - (stage) => stage.id === inProgressStage.id, - ), - round: data.round.filter( - (round) => round.stageId === inProgressStage.id, - ), - }, - type, - }), - ); - } else { - const { teams, relevantMatchesFinished } = sources - ? this.resolveTeamsFromSources(sources, bracketIdx) - : this.resolveTeamsFromSignups(bracketIdx); - - const { checkedInTeams, notCheckedInTeams } = - this.divideTeamsToCheckedInAndNotCheckedIn({ - teams, - bracketIdx, - usesRegularCheckIn: !sources, - requiresCheckIn, - }); - - const checkedInTeamsWithReplaysAvoided = this.followUpBracketSeeding( - checkedInTeams, - { - sources, - type, - }, - ); - - this.brackets.push( - createBracket({ - id: -1 * bracketIdx, - idx: bracketIdx, - tournament: this, - seeding: checkedInTeamsWithReplaysAvoided, - preview: true, - name, - requiresCheckIn, - startTime: startTime ? databaseTimestampToDate(startTime) : null, - settings: settings ?? null, - type, - sources, - createdAt: null, - canBeStarted: - (!startTime || startTime < databaseTimestampNow()) && - checkedInTeamsWithReplaysAvoided.length >= - TOURNAMENT.ENOUGH_TEAMS_TO_START && - (sources ? relevantMatchesFinished : this.regularCheckInHasEnded), - teamsPendingCheckIn: - bracketIdx !== 0 ? notCheckedInTeams : undefined, - }), - ); - } + createdAt: inProgressStage.createdAt, + requiresCheckIn, + startTime: startTime ? databaseTimestampToDate(startTime) : null, + settings: settings ?? null, + data: { + ...data, + group: data.group.filter( + (group) => group.stageId === inProgressStage.id, + ), + match: data.match.filter( + (match) => match.stageId === inProgressStage.id, + ), + stage: data.stage.filter((stage) => stage.id === inProgressStage.id), + round: data.round.filter( + (round) => round.stageId === inProgressStage.id, + ), + }, + type, + }); } + + const { teams, relevantMatchesFinished } = sources + ? this.resolveTeamsFromSources(sources, bracketIdx) + : this.resolveTeamsFromSignups(bracketIdx); + + const { checkedInTeams, notCheckedInTeams } = + this.divideTeamsToCheckedInAndNotCheckedIn({ + teams, + bracketIdx, + usesRegularCheckIn: !sources, + requiresCheckIn, + }); + + const checkedInTeamsWithReplaysAvoided = this.followUpBracketSeeding( + checkedInTeams, + { + sources, + type, + }, + ); + + return createBracket({ + id: -1 * bracketIdx, + idx: bracketIdx, + tournament: this, + seeding: checkedInTeamsWithReplaysAvoided, + preview: true, + name, + requiresCheckIn, + startTime: startTime ? databaseTimestampToDate(startTime) : null, + settings: settings ?? null, + type, + sources, + createdAt: null, + participantsReady: + checkedInTeamsWithReplaysAvoided.length >= + TOURNAMENT.ENOUGH_TEAMS_TO_START && + (!sources || relevantMatchesFinished), + teamsPendingCheckIn: bracketIdx !== 0 ? notCheckedInTeams : undefined, + }); } private resolveTeamsFromSources( @@ -438,11 +639,6 @@ export class Tournament { ); } - /** Tournament teams logo image path, either from the team or the pickup avatar uploaded specifically for this tournament */ - tournamentTeamLogoSrc(team: TournamentDataTeam) { - return team.team?.logoUrl ?? team.pickupAvatarUrl; - } - /** Generates a Splatoon 3 pool code to join the tournament match. It tries to make it so that teams don't need to change the pool all the time, but provides different ones not to run into the in-game limit of max people in a pool at a time. */ resolvePoolCode({ hostingTeamId, @@ -489,14 +685,14 @@ export class Tournament { /** Has tournament started, meaning that at least one bracket has started. Also finalized tournaments are considered started. */ get hasStarted() { - return this.brackets.some((bracket) => !bracket.preview); + return this.bracketsMeta.some((bracket) => !bracket.preview); } /** Is every bracket over (bracket is over when every match is over). */ get everyBracketOver() { if (this.ctx.isFinalized) return true; - return this.brackets.every((bracket) => bracket.everyMatchOver); + return this.bracketsMeta.every((bracket) => bracket.everyMatchOver); } teamById(id: number) { @@ -523,12 +719,15 @@ export class Tournament { return { ...result, seed }; } - participatedPlayersByTeamId(id: number) { + /** User ids of the given team's members who played at least one map of the tournament. */ + participatedPlayerUserIdsByTeamId(id: number) { const team = this.teamById(id); invariant(team, "Team not found"); + const participatedUserIds = this.participatedUserIds; + invariant(participatedUserIds, "Participated user ids not loaded"); - return team.members.filter((member) => - this.ctx.participatedUsers.includes(member.userId), + return team.memberUserIds.filter((userId) => + participatedUserIds.includes(userId), ); } @@ -559,7 +758,7 @@ export class Tournament { /** Should it be possible for the given user to finalize this tournament at this time? */ canFinalize(user: OptionalIdObject) { // can skip underground bracket - const relevantBrackets = this.brackets.filter( + const relevantBrackets = this.bracketsMeta.filter( (b) => !b.preview || !b.isUnderground, ); @@ -572,13 +771,7 @@ export class Tournament { return true; } - return this.brackets[0].data.round.every((round) => { - const hasMatches = this.brackets[0].data.match.some( - (match) => match.roundId === round.id, - ); - - return hasMatches; - }); + return this.bracketsMeta[0].allRoundsHaveMatches; }; return ( @@ -600,14 +793,14 @@ export class Tournament { return { isFulfilled: false, reason: "Check in has not yet started" }; } - if (team.members.length < this.minMembersPerTeam) { + if (team.memberUserIds.length < this.minMembersPerTeam) { return { isFulfilled: false, reason: `Team needs at least ${this.minMembersPerTeam} members`, }; } - if (this.teamsPrePickMaps && (!team.mapPool || team.mapPool.length === 0)) { + if (this.teamsPrePickMaps && !team.hasMapPool) { return { isFulfilled: false, reason: "Team has no map pool set" }; } @@ -746,6 +939,26 @@ export class Tournament { return count > 1; } + /** Can the given user's team check in to the bracket at this time? */ + canCheckInToBracket(bracketIdx: number, user: OptionalIdObject) { + const bracket = this.bracketMetaByIdx(bracketIdx); + // using regular check-in + if (!bracket?.teamsPendingCheckIn) return false; + + if (bracket.startTime) { + const checkInOpen = + sub(bracket.startTime.getTime(), { hours: 1 }).getTime() < Date.now() && + bracket.startTime.getTime() > Date.now(); + + if (!checkInOpen) return false; + } + + const team = this.teamMemberOfByUser(user); + if (!team) return false; + + return bracket.teamsPendingCheckIn.includes(team.id); + } + /** Returns the bracket and round names for the given match ID. * @example * tournament.matchNameById(123) // { bracketName: "Groups Stage", roundName: "Round 1.1", roundNameWithoutMatchIdentifier: "Round 1" } @@ -849,37 +1062,20 @@ export class Tournament { }; } - /** Returns a `Bracket` with the given index or the first bracket if not found. */ - bracketByIdxOrDefault(idx: number): Bracket { - const bracket = this.brackets[idx]; - if (bracket) return bracket; - - const defaultBracket = this.brackets[0]; - invariant(defaultBracket, "No brackets found"); - - logger.warn("Bracket not found, using fallback bracket"); - return defaultBracket; - } - /** Returns a `Bracket` with the given index or null if not found. */ bracketByIdx(idx: number) { - const bracket = this.brackets[idx]; - if (!bracket) return null; + if (!this.ctx.settings.bracketProgression[idx]) return null; + // a bracket that sources teams from itself (directly or via another bracket) can't be built + if (this.bracketIdxsBeingBuilt.has(idx)) return null; - return bracket; + return this.builtBracketByIdx(idx); } - /** Returns the team that the user is the owner of, or null if not found. Includes invite code (only owner should see this, logic in the loader function). */ - ownedTeamByUser( - user: OptionalIdObject, - ): ((typeof this.ctx.teams)[number] & { inviteCode: string }) | null { + /** Returns the team that the user is the owner of, or null if not found. */ + ownedTeamByUser(user: OptionalIdObject) { if (!user) return null; - return this.ctx.teams.find((team) => - team.members.some( - (member) => member.userId === user.id && member.role === "OWNER", - ), - ) as (typeof this.ctx.teams)[number] & { inviteCode: string }; + return this.ctx.teams.find((team) => team.ownerUserId === user.id) ?? null; } /** @@ -890,40 +1086,46 @@ export class Tournament { if (!user) return null; const teams = this.ctx.teams.filter((team) => - team.members.some((member) => member.userId === user.id), + team.memberUserIds.includes(user.id), ); + if (teams.length <= 1) return teams[0] ?? null; - let result: (typeof teams)[number] | null = null; - let latestCreatedAt = 0; - for (const team of teams) { - const member = team.members.find((member) => member.userId === user.id)!; - - if (member.createdAt > latestCreatedAt) { - result = team; - latestCreatedAt = member.createdAt; - } - } - - return result; + const latestTeamId = this.ctx.latestTeamIdByDuplicatedUserId[user.id]; + return teams.find((team) => team.id === latestTeamId) ?? teams[0]; } /** * Returns the progress status of the user in the tournament, or null if not participating. * e.g. might return "WAITING_FOR_MATCH" if the user is waiting for their next match or "WAITING_FOR_CAST" if the match is ready to be played but locked waiting for the cast. */ + /** + * The started brackets, built without generating the previews of the others. + * Generating a preview bracket is expensive, so prefer this over filtering + * {@link brackets} when only the started ones are needed. + */ + private get startedBrackets(): Bracket[] { + const data = this.data; + if (!data) return this.brackets.filter((bracket) => !bracket.preview); + + return this.ctx.settings.bracketProgression.flatMap( + (progressionBracket, idx) => + data.stage.some((stage) => stage.name === progressionBracket.name) + ? [this.builtBracketByIdx(idx)] + : [], + ); + } + teamMemberOfProgressStatus(user: OptionalIdObject) { const team = this.teamMemberOfByUser(user); if (!team) return null; - if ( - this.brackets.every((bracket) => bracket.preview) && - !this.regularCheckInIsOpen - ) { + const startedBrackets = this.startedBrackets; + + if (startedBrackets.length === 0 && !this.regularCheckInIsOpen) { return null; } - for (const bracket of this.brackets) { - if (bracket.preview) continue; + for (const bracket of startedBrackets) { for (const match of bracket.data.match) { const isParticipant = match.opponent1?.id === team.id || match.opponent2?.id === team.id; @@ -989,8 +1191,8 @@ export class Tournament { } } - for (const bracket of this.brackets) { - if (bracket.preview || bracket.type !== "swiss") continue; + for (const bracket of startedBrackets) { + if (bracket.type !== "swiss") continue; // TODO: both seeding and participantTournamentTeamIds are used for the same thing const isParticipant = bracket.participantTournamentTeamIds.includes( @@ -1022,22 +1224,19 @@ export class Tournament { if (team.checkIns.length === 0) return null; if (!team.droppedOut) { - for (const bracket of this.brackets) { - if ( - bracket.type !== "round_robin" || - bracket.preview || - bracket.everyMatchOver - ) { + for (const bracket of startedBrackets) { + if (bracket.type !== "round_robin" || bracket.everyMatchOver) { continue; } const isParticipant = bracket.participantTournamentTeamIds.includes( team.id, ); - const hasFollowUpBrackets = this.brackets.some((otherBracket) => - otherBracket.sources?.some( - (source) => source.bracketIdx === bracket.idx, - ), + const hasFollowUpBrackets = this.ctx.settings.bracketProgression.some( + (progressionBracket) => + progressionBracket.sources?.some( + (source) => source.bracketIdx === bracket.idx, + ), ); if (isParticipant && hasFollowUpBrackets) { @@ -1215,24 +1414,7 @@ export class Tournament { /** Checks if the given user is an organizer of the tournament. */ isOrganizer(user: OptionalIdObject) { - if (!user) return false; - if (isAdmin(user)) return true; - - if (this.ctx.author.id === user.id) return true; - - if ( - this.ctx.organization?.members.some( - (member) => - member.userId === user.id && - ["ADMIN", "ORGANIZER"].includes(member.role), - ) - ) { - return true; - } - - return this.ctx.staff.some( - (staff) => staff.id === user.id && staff.role === "ORGANIZER", - ); + return isTournamentOrganizer({ ctx: this.ctx, user }); } /** Checks if the given user is an organizer or streamer of the tournament. */ @@ -1258,32 +1440,62 @@ export class Tournament { ); } - get streams() { - const memberStreams = this.ctx.teams - .filter((team) => team.checkIns.length > 0) - .flatMap((team) => team.members) - .filter((member) => member.streamTwitch) - .map((member) => ({ - thumbnailUrl: member.streamThumbnailUrl!, - twitchUserName: member.streamTwitch!, - viewerCount: member.streamViewerCount!, - userId: member.userId, - })); + /** Live streams of the tournament, empty in the views whose loader did not ship them. */ + get streams(): TournamentStream[] { + return this.args.streams ?? []; + } - const castStreams = this.ctx.castStreams.map((stream) => ({ - thumbnailUrl: stream.thumbnailUrl, - twitchUserName: stream.twitch!, - viewerCount: stream.viewerCount, - userId: null as number | null, - })); + /** Twitch account of every participant streaming the tournament right now, keyed by their user id. */ + get streamingParticipants(): Map { + if (!this.hasStarted || this.everyBracketOver) return new Map(); - return [...memberStreams, ...castStreams].sort( - (a, b) => b.viewerCount - a.viewerCount, + return new Map( + this.streams.flatMap((stream) => + stream.userId !== null + ? [[stream.userId, stream.twitchUserName] as const] + : [], + ), ); } get streamingParticipantIds(): number[] { - if (!this.hasStarted || this.everyBracketOver) return []; - return this.streams.filter((s) => s.userId !== null).map((s) => s.userId!); + return [...this.streamingParticipants.keys()]; } } + +/** The parts of a tournament that decide who organizes it. */ +export type TournamentOrganizerCtx = Pick< + TournamentData["ctx"], + "author" | "staff" | "organization" +>; + +/** + * Checks if the given user is an organizer of the tournament, off its context alone. + * {@link Tournament.isOrganizer} is the same check for when a `Tournament` is at hand. + */ +export function isTournamentOrganizer({ + ctx, + user, +}: { + ctx: TournamentOrganizerCtx; + user: OptionalIdObject; +}) { + if (!user) return false; + if (isAdmin(user)) return true; + + if (ctx.author.id === user.id) return true; + + if ( + ctx.organization?.members.some( + (member) => + member.userId === user.id && + ["ADMIN", "ORGANIZER"].includes(member.role), + ) + ) { + return true; + } + + return ctx.staff.some( + (staff) => staff.id === user.id && staff.role === "ORGANIZER", + ); +} diff --git a/app/features/tournament-bracket/core/summarizer.server.ts b/app/features/tournament-bracket/core/summarizer.server.ts index 93907715f..1bbd164f0 100644 --- a/app/features/tournament-bracket/core/summarizer.server.ts +++ b/app/features/tournament-bracket/core/summarizer.server.ts @@ -40,7 +40,7 @@ export interface TournamentSummary { type TeamsArg = Array<{ id: number; - members: Array<{ userId: number }>; + memberUserIds: number[]; startingBracketIdx?: number | null; abDivision?: number | null; }>; @@ -658,12 +658,12 @@ function tournamentResults({ ).length; } - for (const player of standing.team.members) { + for (const userId of standing.team.memberUserIds) { result.push({ participantCount: divisionParticipantCount, placement: standing.placement, tournamentTeamId: standing.team.id, - userId: player.userId, + userId, div, }); } @@ -750,5 +750,5 @@ function teamIdToMembersUserIds(teams: TeamsArg, teamId: number) { const team = teams.find((t) => t.id === teamId); invariant(team, `Team with id ${teamId} not found`); - return team.members.map((m) => m.userId); + return team.memberUserIds; } diff --git a/app/features/tournament-bracket/core/summarizer.test.ts b/app/features/tournament-bracket/core/summarizer.test.ts index df94fb99d..59c795aab 100644 --- a/app/features/tournament-bracket/core/summarizer.test.ts +++ b/app/features/tournament-bracket/core/summarizer.test.ts @@ -29,37 +29,19 @@ describe("tournamentSummary()", () => { checkIns: [], createdAt: 0, id: teamId, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, - mapPool: [], - members: userIds.map((userId) => ({ - country: null, - customUrl: null, - discordAvatar: null, - discordId: "123", - username: "test", - inGameName: "test", - twitch: null, - plusTier: null, - createdAt: 0, - userId, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - })), + hasMapPool: false, + inviteCode: null, + memberUserIds: userIds, + ownerUserId: userIds[0] ?? null, name: `Team ${teamId}`, prefersNotToHost: 0, droppedOut: 0, - team: null, + logoUrl: null, seed: 1, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, }); function summarize({ @@ -89,38 +71,10 @@ describe("tournamentSummary()", () => { }>; } = {}) { const defaultTeams = [ - { - id: 1, - members: [ - { userId: 1 }, - { userId: 2 }, - { userId: 3 }, - { userId: 4 }, - { userId: 20 }, - ], - }, - { - id: 2, - members: [{ userId: 5 }, { userId: 6 }, { userId: 7 }, { userId: 8 }], - }, - { - id: 3, - members: [ - { userId: 9 }, - { userId: 10 }, - { userId: 11 }, - { userId: 12 }, - ], - }, - { - id: 4, - members: [ - { userId: 13 }, - { userId: 14 }, - { userId: 15 }, - { userId: 16 }, - ], - }, + { id: 1, memberUserIds: [1, 2, 3, 4, 20] }, + { id: 2, memberUserIds: [5, 6, 7, 8] }, + { id: 3, memberUserIds: [9, 10, 11, 12] }, + { id: 4, memberUserIds: [13, 14, 15, 16] }, ]; const teams = defaultTeams.map((team) => { diff --git a/app/features/tournament-bracket/core/tests/mocks-li.ts b/app/features/tournament-bracket/core/tests/mocks-li.ts index 9e3c34c7f..9cb2a2315 100644 --- a/app/features/tournament-bracket/core/tests/mocks-li.ts +++ b/app/features/tournament-bracket/core/tests/mocks-li.ts @@ -2,6 +2,7 @@ import type { TournamentData } from "../Tournament.server"; /** Low Ink with groups (swiss) finished but none of the follow-up brackets started */ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ + streams: [], data: { stage: [ { @@ -6161,6 +6162,41 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ }, ], }, + participatedUsers: [ + 1661, 1852, 1925, 1959, 1961, 2266, 2279, 2319, 2769, 2898, 2990, 3362, + 3466, 3481, 3513, 3566, 3738, 3741, 3742, 4248, 4334, 4533, 5037, 5261, + 5708, 5861, 5906, 5935, 6051, 6309, 6696, 6976, 7058, 7115, 7126, 7430, + 7434, 7461, 7690, 7958, 7959, 8080, 8395, 8587, 8840, 8953, 8993, 9036, + 9112, 9379, 9404, 10028, 10190, 10222, 10297, 10378, 10386, 10670, 10714, + 10788, 10826, 11085, 11088, 11117, 11180, 11186, 11198, 11226, 11391, 11783, + 12005, 12235, 12418, 12434, 14309, 14837, 15110, 15158, 15425, 16054, 16387, + 17310, 17352, 17532, 18090, 18149, 18632, 18698, 19717, 20209, 20292, 20319, + 20419, 20774, 20807, 20990, 21063, 21181, 21454, 21588, 21670, 21685, 21755, + 21818, 21989, 22324, 22396, 22403, 22469, 22500, 22577, 22622, 22624, 22677, + 22699, 22801, 22820, 22942, 22968, 22991, 23082, 23164, 23357, 23481, 23974, + 24013, 24252, 24275, 24290, 24459, 24510, 24572, 25242, 25312, 25543, 25591, + 25689, 25741, 25763, 25806, 25875, 25952, 26044, 26103, 26162, 26269, 26285, + 26321, 26441, 26509, 26564, 26711, 26747, 26758, 26807, 26820, 27036, 27260, + 27292, 27355, 27529, 27544, 27611, 27747, 27800, 27903, 27984, 27990, 28021, + 28054, 28137, 28145, 28170, 28410, 28446, 28938, 28959, 29011, 29267, 29425, + 29433, 29531, 29617, 29636, 29661, 29674, 30030, 30031, 30044, 30122, 30204, + 30263, 30266, 30425, 30466, 30488, 30495, 30584, 30619, 30685, 30686, 30728, + 30870, 31143, 31145, 31150, 31154, 31189, 31195, 31295, 31395, 31524, 31556, + 31597, 31655, 31728, 32002, 32015, 32107, 32158, 32160, 32199, 32430, 32444, + 32670, 32802, 32878, 32909, 32970, 33276, 33369, 33373, 33402, 33524, 33573, + 33615, 33632, 33790, 33824, 33913, 33954, 34071, 34147, 34355, 34424, 34448, + 34545, 34589, 34634, 34842, 35067, 35310, 35354, 35421, 35506, 35567, 35608, + 35617, 35674, 35811, 35922, 36007, 36113, 36575, 36853, 36921, 36962, 37000, + 37173, 37341, 37436, 37563, 37641, 37665, 37669, 37835, 37959, 38022, 38046, + 38204, 38610, 38686, 38896, 38912, 38960, 39098, 39470, 39480, 40126, 40304, + 40484, 40505, 40550, 40713, 40743, 40766, 40851, 40972, 41038, 41108, 41255, + 41269, 41594, 41682, 41739, 41943, 41975, 42081, 42164, 42350, 42483, 42597, + 42599, 42638, 42703, 42704, 42874, 42975, 43060, 43073, 43081, 43269, 43524, + 43551, 43608, 43623, 43753, 44033, 44378, 44412, 44475, 44493, 44642, 44772, + 44839, 44866, 45036, 45102, 45174, 45194, 45250, 45290, 45295, 45391, 45778, + 45806, 46245, 46289, 46305, 46394, 46451, 46501, 46518, 46523, 46538, 46586, + 46637, 46648, 46771, + ], ctx: { id: 815, eventId: 2614, @@ -6616,105 +6652,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 1, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733157607, activeRosterUserIds: [25875, 21063, 11226, 31597], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 11226, - username: "Zyler", - discordId: "258924484373774338", - discordAvatar: "75aac6e41f644c5caeb4fa66b4402052", - customUrl: "zylerisafool", - country: "ES", - twitch: "zylerisafool", - createdAt: 1733157607, - inGameName: "Zyler òへó#1344", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27529, - username: "Axo", - discordId: "793150346301145130", - discordAvatar: "57ff5f85608170b61d6c67091b05cb87", - customUrl: "funiaxolotl", - country: "IS", - twitch: null, - createdAt: 1733157609, - inGameName: "Axo òへó#2731", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25875, - username: "Kiko", - discordId: "801529571392094288", - discordAvatar: "e7f7051a673e8ea3c03b64b0ab914734", - customUrl: null, - country: null, - twitch: null, - createdAt: 1733157610, - inGameName: "Kiko òへó#2701", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21063, - username: "Koooo", - discordId: "622376332956925982", - discordAvatar: "a5f528961cacb56b06e8c10bee19455e", - customUrl: null, - country: null, - twitch: null, - createdAt: 1733157611, - inGameName: "koooo òへó#2940", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31597, - username: "Tetra", - discordId: "755433873449680997", - discordAvatar: "f4c189112b518258775babc93032c053", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1733157612, - inGameName: "Tetra òへó#1074", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11226, 27529, 25875, 21063, 31597], + ownerUserId: 11226, checkIns: [ { bracketIdx: null, @@ -6722,13 +6666,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3373, - customUrl: "inkbound", - logoUrl: "cOG0m-aM2AGKAL2ldgDoE-1721725347688.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "cOG0m-aM2AGKAL2ldgDoE-1721725347688.webp", avgSeedingSkillOrdinal: 4.904652878425825, }, { @@ -6737,105 +6676,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 2, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733157629, activeRosterUserIds: [14837, 27260, 42704, 9379], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 14837, - username: "nomad", - discordId: "653125802652729345", - discordAvatar: "36b975e4b88f232094bbe73117f78f19", - customUrl: "nomad", - country: "US", - twitch: null, - createdAt: 1733157629, - inGameName: "JŁΞ nomad#1998", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27260, - username: "Kσru", - discordId: "993234263849844907", - discordAvatar: "6cde182d084eeae3a19c2ec4f6099ffc", - customUrl: null, - country: "US", - twitch: "koruman_w", - createdAt: 1733157711, - inGameName: "JŁΞ Kσru#2146", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42704, - username: "moon", - discordId: "618901190041665536", - discordAvatar: "bdd7a74c86df2098b49b4b28f045ae2d", - customUrl: "moon", - country: "JP", - twitch: null, - createdAt: 1733157712, - inGameName: "ROARRRRRRR#1111", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6211, - username: "Nobe_1", - discordId: "703682281067380817", - discordAvatar: "848218e9a6a12cb6d75e7b93665b6faa", - customUrl: "nobe_1", - country: "US", - twitch: "nob3_1", - createdAt: 1733157713, - inGameName: "JŁ≡ Nobe_1#1045", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9379, - username: "Shellfire", - discordId: "670446388235993108", - discordAvatar: "d9cd99c21c28353882700cd12a9d6601", - customUrl: "shellfire", - country: "US", - twitch: null, - createdAt: 1733157714, - inGameName: "JŁΞ SHeLi#2425", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [14837, 27260, 42704, 6211, 9379], + ownerUserId: 14837, checkIns: [ { bracketIdx: null, @@ -6843,13 +6690,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3393, - customUrl: "jet-lag", - logoUrl: "gd808DaSPViGoTdALCfHr-1721941563885.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "gd808DaSPViGoTdALCfHr-1721941563885.webp", avgSeedingSkillOrdinal: 15.421662960706945, }, { @@ -6858,105 +6700,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 3, prefersNotToHost: 1, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733161494, activeRosterUserIds: [34424, 31195, 31395, 26103], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 34424, - username: "Mik", - discordId: "182607457107968009", - discordAvatar: "a1156bee855ee567c3a9710db0655086", - customUrl: "nomicmike", - country: "US", - twitch: null, - createdAt: 1733161494, - inGameName: "「F」Mik#3010", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31195, - username: "Cotni", - discordId: "164695301007998979", - discordAvatar: "5aef110a8b1eff52d2d34ee4b543cd61", - customUrl: "cotni", - country: "CA", - twitch: null, - createdAt: 1733161497, - inGameName: "「F」Cotni#3521", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31395, - username: "InfiniTy", - discordId: "426082473257205760", - discordAvatar: "f9baa439a63ffb053842bca5bf28e3e6", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733161500, - inGameName: "In 「F」iniTy#1007", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41682, - username: "Slush", - discordId: "364489463339941888", - discordAvatar: "5b609a6ab280cf171d3eb427586418d5", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733161502, - inGameName: "「F」Slush#9876", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26103, - username: "sawyer but cat", - discordId: "303164813851230209", - discordAvatar: "537fe6f7e29788c83774bc55edf243e5", - customUrl: null, - country: "US", - twitch: "boba_lisa", - createdAt: 1733161505, - inGameName: "「F」sawyer #7539", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [34424, 31195, 31395, 41682, 26103], + ownerUserId: 34424, checkIns: [ { bracketIdx: null, @@ -6964,13 +6714,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2467, - customUrl: "fearless", - logoUrl: "b9dzkqI-SRjQTQX6vZwwR-1712272498914.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "b9dzkqI-SRjQTQX6vZwwR-1712272498914.webp", avgSeedingSkillOrdinal: 11.32505689746888, }, { @@ -6979,87 +6724,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 4, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733166918, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 20292, - username: "★Stαrιiτε☆", - discordId: "363496810251026452", - discordAvatar: "241aa0e50b0692f86534fb820677fa2e", - customUrl: null, - country: "US", - twitch: "starlte", - createdAt: 1733166918, - inGameName: "⦾яStαrιiτε#3209", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44033, - username: "Ziro", - discordId: "968735828497031248", - discordAvatar: "9df445e4f4f1657693e97d4307145737", - customUrl: "dotziro", - country: "CA", - twitch: "dotziro", - createdAt: 1733166921, - inGameName: "⦾я .0#2825", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 19717, - username: "Neo 💿", - discordId: "874039098757767228", - discordAvatar: "8d700492de92d839341057a36bcf158d", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733166925, - inGameName: "⦾я Neo✩#3314", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9404, - username: "OrganicInk", - discordId: "460201403680555008", - discordAvatar: "f0f63ac24d4bbabbe621b2a6aef6cb19", - customUrl: "organicink", - country: "US", - twitch: null, - createdAt: 1733166928, - inGameName: "⦾я Organic#2160", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [20292, 44033, 19717, 9404], + ownerUserId: 20292, checkIns: [ { bracketIdx: null, @@ -7067,13 +6738,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2108, - customUrl: "remix", - logoUrl: "xjeq_CoFbZt9PBCR0JQ_k-1733716596856.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "xjeq_CoFbZt9PBCR0JQ_k-1733716596856.webp", avgSeedingSkillOrdinal: 16.737416638934775, }, { @@ -7082,105 +6748,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 5, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733166213, activeRosterUserIds: [32160, 29267, 25591, 36962], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 32160, - username: "TheChosen1", - discordId: "1141818045514391572", - discordAvatar: "db512470e6088c5ed1317803963b4a5b", - customUrl: "thechosen1", - country: "US", - twitch: "lthechosen1", - createdAt: 1733166213, - inGameName: "TheChosen1#2899", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29267, - username: "SilverSlime", - discordId: "722610893916995685", - discordAvatar: "7940a1caf8335d515633c9c3863f67d6", - customUrl: "silverslime", - country: "TW", - twitch: null, - createdAt: 1733178388, - inGameName: "Silverlime#4895", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25591, - username: "Dev", - discordId: "368867305628631054", - discordAvatar: "705050ad732045eb4855915e4088edae", - customUrl: "devtana", - country: "US", - twitch: "devtendo_07", - createdAt: 1733426117, - inGameName: "Dev#7857", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36962, - username: "Starfi$h", - discordId: "1127267621671280761", - discordAvatar: "0e4774cab7a2ab58f1b2c5d8eb74c822", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733458896, - inGameName: "PencilGlzr#8668", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37749, - username: "lyric <3", - discordId: "1260387717251076128", - discordAvatar: "59b71898066d63e0a6a3d98f26571ae0", - customUrl: "lyrical_spl", - country: "US", - twitch: "codycrew_spl", - createdAt: 1734193950, - inGameName: "кя lyric!#2989", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [32160, 29267, 25591, 36962, 37749], + ownerUserId: 32160, checkIns: [ { bracketIdx: null, @@ -7188,8 +6762,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: 10.755117547855, }, { @@ -7198,105 +6772,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 6, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733189945, activeRosterUserIds: [12418, 34355, 2319, 7430], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 12418, - username: "zPeachez", - discordId: "980918517853454416", - discordAvatar: "c6034a9c19a4de85025e0bce2bc1b55d", - customUrl: "zpeachez", - country: "US", - twitch: "z_peachez", - createdAt: 1733189945, - inGameName: "«я.peachz♪#1561", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34355, - username: "GreenOmega300", - discordId: "591437836557746196", - discordAvatar: "6b34e3bd0b5279652ccca85b52908396", - customUrl: "greenomega300", - country: "US", - twitch: "greenomega300", - createdAt: 1733189950, - inGameName: "«я.Omega#1182", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2319, - username: "KABBAGE/KABOOM!", - discordId: "787196299538989067", - discordAvatar: "33b4b3217afca971414db2f159344d96", - customUrl: "wa0w", - country: null, - twitch: "kaboom_spl", - createdAt: 1733189952, - inGameName: "《Я.ttrarat#2320", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 39480, - username: "reze :3", - discordId: "1210354869488324678", - discordAvatar: "4a7abda1da3a5cfec5a9ebfbe884a11f", - customUrl: "reze", - country: "US", - twitch: null, - createdAt: 1733189954, - inGameName: "«я.Reze★#3081", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7430, - username: "zedro", - discordId: "701434117648285749", - discordAvatar: "2e41f70574e44bb5bbfd670fd916f48b", - customUrl: "zedro", - country: "US", - twitch: "zzzedro_", - createdAt: 1733189965, - inGameName: "«я.zedro#2287", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [12418, 34355, 2319, 39480, 7430], + ownerUserId: 12418, checkIns: [ { bracketIdx: null, @@ -7304,13 +6786,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2344, - customUrl: "rewind", - logoUrl: "39oVc0kg3RO05uTOQhGqE-1707879537700.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "39oVc0kg3RO05uTOQhGqE-1707879537700.webp", avgSeedingSkillOrdinal: 8.393489306211407, }, { @@ -7319,105 +6796,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 7, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733244862, activeRosterUserIds: [29425, 31524, 35674, 26285], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 29425, - username: "☆★Jxvito", - discordId: "1126594696580440164", - discordAvatar: "4ed00f6c0e4b6cdd88c2c95662955713", - customUrl: "jxvito", - country: "US", - twitch: "jxvito_spl", - createdAt: 1733244862, - inGameName: "½ Jxvito★#2083", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31524, - username: "chaervee", - discordId: "494280321710293002", - discordAvatar: "54c856070bf123e0ff3890e615e3c6e6", - customUrl: "chaervee", - country: null, - twitch: null, - createdAt: 1733244865, - inGameName: "½ chaervee#2718", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35674, - username: "kosame", - discordId: "247184031194677248", - discordAvatar: "a_a6af32bc2da1fb1ee086e79450b72243", - customUrl: "kosame", - country: "US", - twitch: null, - createdAt: 1733244867, - inGameName: "½ kosame#2647", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7126, - username: "YAGI", - discordId: "280774447756083201", - discordAvatar: "b59997e03edf2507a90370250e0d820e", - customUrl: "akaruiyagi", - country: "CL", - twitch: null, - createdAt: 1733244868, - inGameName: "½ YAGI#2632", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26285, - username: "Ξ↑ LeFish", - discordId: "991766000951373864", - discordAvatar: "b6a375bbaec7b7b45910966861edd9fe", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1734054948, - inGameName: "≣↑Lefish☆#3115", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [29425, 31524, 35674, 7126, 26285], + ownerUserId: 29425, checkIns: [ { bracketIdx: null, @@ -7425,13 +6810,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3483, - customUrl: "flipside", - logoUrl: "j-O2YIrEItPixtlSAj-3o-1726423086172.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "j-O2YIrEItPixtlSAj-3o-1726423086172.webp", avgSeedingSkillOrdinal: 18.192786518247793, }, { @@ -7440,123 +6820,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 8, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733282085, activeRosterUserIds: [26747, 27292, 5708, 6309], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 26747, - username: "DomLikesPie", - discordId: "409541712424206337", - discordAvatar: "d5d3f3041b3925cbf4c42a33d15db013", - customUrl: "pieman", - country: "US", - twitch: "domlikespie", - createdAt: 1733282085, - inGameName: "o7 PieMan#9992", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5708, - username: "Halo", - discordId: "418249387152637952", - discordAvatar: "18877c97efcd1a84994059d36b6fa2f9", - customUrl: "halo27", - country: "US", - twitch: "heavenshalo27", - createdAt: 1733282088, - inGameName: "o7 Halø#2414", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1661, - username: "Luke Skywalker", - discordId: "346042781728374784", - discordAvatar: "c6a8bafd94fa792f2a7de9bee9f4213f", - customUrl: "tau", - country: null, - twitch: null, - createdAt: 1733282090, - inGameName: "o7 Tau#3126", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27292, - username: "Tonwarrior", - discordId: "604309623058595840", - discordAvatar: "03d7904d543abdc01152d198bbab7249", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733282091, - inGameName: "o7 Warrior #4277", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21588, - username: "UniqueBrandon", - discordId: "357307632429826068", - discordAvatar: "3efa997ca2b3365fd7cbb7f0fa7a30f2", - customUrl: "uniquebrandon", - country: "US", - twitch: "uniquebrandon_", - createdAt: 1733282092, - inGameName: "o7 Brandon#1002", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6309, - username: "Nathan", - discordId: "305530913750646784", - discordAvatar: "f329c73f07706623552ed01e76c1c7e7", - customUrl: null, - country: "US", - twitch: "traci551", - createdAt: 1733282098, - inGameName: "Nathan#3382", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [26747, 5708, 1661, 27292, 21588, 6309], + ownerUserId: 26747, checkIns: [ { bracketIdx: null, @@ -7564,13 +6834,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2967, - customUrl: "o7-honor-bound", - logoUrl: "tmBvZlNQrpcvtWT6TMkMH-1715811348588.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "tmBvZlNQrpcvtWT6TMkMH-1715811348588.webp", avgSeedingSkillOrdinal: 6.000378698393999, }, { @@ -7579,123 +6844,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 9, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733291438, activeRosterUserIds: [24459, 40851, 23974, 43608], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 43608, - username: "VegitoSSB", - discordId: "1226089096561164290", - discordAvatar: "fa34361aaa956f6e2c65a306594ca543", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1733291438, - inGameName: "★Alohα★#1372", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23974, - username: "LooneyLex", - discordId: "696502167200071790", - discordAvatar: "348a8b879b44ad29e06768dfe98a0a18", - customUrl: "alrightman", - country: "US", - twitch: "looneylex_", - createdAt: 1733291442, - inGameName: "↑Lex↑#2224", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24459, - username: "Luigia!", - discordId: "752981207343693947", - discordAvatar: "f486e6d640eb3854bdafc6505b659c32", - customUrl: null, - country: "CO", - twitch: null, - createdAt: 1733291444, - inGameName: "Gogeta SSB#1514", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40851, - username: "zoe, but festive", - discordId: "985893906325594122", - discordAvatar: "6bc3b3202915c6abae95875c0f79651c", - customUrl: "zoeee", - country: "US", - twitch: null, - createdAt: 1733291446, - inGameName: "zoeee♪#5119", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 18090, - username: "oomf", - discordId: "222197582447902722", - discordAvatar: "24887ad4b4c3095de951198163971587", - customUrl: "oomf", - country: "US", - twitch: null, - createdAt: 1733783382, - inGameName: "oomf#2618", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42350, - username: "jonatan7803", - discordId: "756280482538323989", - discordAvatar: "015d5d82f7b8456c923f7860562986c8", - customUrl: null, - country: null, - twitch: null, - createdAt: 1734131443, - inGameName: "Kp Mario#3126", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [43608, 23974, 24459, 40851, 18090, 42350], + ownerUserId: 43608, checkIns: [ { bracketIdx: null, @@ -7703,13 +6858,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3982, - customUrl: "i-love-latinas-sonic", - logoUrl: "gbp-qKZv9BMFjMFVl3pfV-1729447973128.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "gbp-qKZv9BMFjMFVl3pfV-1729447973128.webp", avgSeedingSkillOrdinal: 9.717299699252964, }, { @@ -7718,87 +6868,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 10, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733439755, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 11085, - username: "Reyn", - discordId: "737681346515697716", - discordAvatar: "3b1a40359e325c120c1362a56c388927", - customUrl: "reyn", - country: "GB", - twitch: null, - createdAt: 1733439755, - inGameName: "{ミ} Reyn#3321", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37000, - username: "Bob", - discordId: "1153080169565794454", - discordAvatar: "7eba40efbf6aaae2c3b145802688c1a8", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1733439758, - inGameName: "{ミ} Bobong#1958", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37835, - username: "kody", - discordId: "1167159200191893606", - discordAvatar: "5325410fbaa8f4f6de72f4da8761289b", - customUrl: "coldplay", - country: "GB", - twitch: null, - createdAt: 1733439760, - inGameName: "{ミ} Kody#7210", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26807, - username: "Lumi", - discordId: "394176746175332354", - discordAvatar: "705e00a82144c3d397b0b2ea9f3dfaee", - customUrl: null, - country: "GR", - twitch: null, - createdAt: 1733439761, - inGameName: "{ミ} Lumi#8318", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11085, 37000, 37835, 26807], + ownerUserId: 11085, checkIns: [ { bracketIdx: null, @@ -7806,13 +6882,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4162, - customUrl: "tidy-tidings", - logoUrl: "OOJQpl9assoZRI9dpgtqU-1731881950167.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "OOJQpl9assoZRI9dpgtqU-1731881950167.webp", avgSeedingSkillOrdinal: 4.770908946027257, }, { @@ -7821,123 +6892,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 11, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733485884, activeRosterUserIds: [30686, 1961, 30685, 22396], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 30685, - username: "Theresa", - discordId: "152359818206642176", - discordAvatar: "de7085667353da6f6cc53d3df063dcea", - customUrl: "theresa", - country: "US", - twitch: "los_theresa", - createdAt: 1733485884, - inGameName: "LosTheresa#3238", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30686, - username: "=", - discordId: "141142141492527104", - discordAvatar: "ec3a898760654e86d5dd724f89e2c3d1", - customUrl: null, - country: null, - twitch: null, - createdAt: 1733485886, - inGameName: "Los Equals#2851", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22396, - username: "Hammy", - discordId: "196033193718185985", - discordAvatar: "2225b304639968dae8851688aadfb95f", - customUrl: "hammy", - country: "CA", - twitch: "hammyinthewall", - createdAt: 1733485888, - inGameName: "Los Hammy#4656", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1961, - username: "Slug", - discordId: "278951839003705344", - discordAvatar: "60b073c73757d1d2c775081af816aa1a", - customUrl: "seaslug", - country: "US", - twitch: "serventseaslug", - createdAt: 1733485889, - inGameName: "Los SeaSlug#2211", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46305, - username: "Dr. Meowser", - discordId: "323573432484888578", - discordAvatar: null, - customUrl: null, - country: null, - twitch: null, - createdAt: 1733961214, - inGameName: "Dr.Meowser#8095", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 18698, - username: "Ameowzing☆", - discordId: "324396128906903552", - discordAvatar: "be1dd01136a8b819081d937816a82233", - customUrl: "ameowzing", - country: "US", - twitch: null, - createdAt: 1733961708, - inGameName: "Ameowzing☆#1396", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30685, 30686, 22396, 1961, 46305, 18698], + ownerUserId: 30685, checkIns: [ { bracketIdx: null, @@ -7945,13 +6906,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1349, - customUrl: "los-inklings", - logoUrl: "d4l_fEYo7pQlMN0gRXMFn-1692066468630.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "d4l_fEYo7pQlMN0gRXMFn-1692066468630.webp", avgSeedingSkillOrdinal: 7.172216750357638, }, { @@ -7960,123 +6916,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 12, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733937993, activeRosterUserIds: [12434, 30263, 5861, 24275], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 12434, - username: "darkz", - discordId: "221650404620894208", - discordAvatar: "a_fd3d013bfc1aa0af1f0734f2fb3ad4c6", - customUrl: "darkz", - country: "US", - twitch: "inkjetdualies", - createdAt: 1733937993, - inGameName: "☆§ darkz!#1022", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30411, - username: "AceofClubs", - discordId: "530633271130718208", - discordAvatar: "563024f1415fddb9195754c4fe195269", - customUrl: "brellabrellabrellabrellabrella", - country: "US", - twitch: null, - createdAt: 1733938000, - inGameName: "☆§ Ace!#1627", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24275, - username: "Googol", - discordId: "340950862228881418", - discordAvatar: "6b6a58297ccbfafbc22ae7d2534edd97", - customUrl: "googol", - country: "US", - twitch: null, - createdAt: 1733938003, - inGameName: "☆§ Googol! #7149", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30263, - username: "Rowie~", - discordId: "709533845124546570", - discordAvatar: "209b8936f2aca0f856613aded29292e6", - customUrl: "rowie", - country: "FR", - twitch: null, - createdAt: 1733938006, - inGameName: "Rowieeeeee#3332", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5861, - username: "Solar", - discordId: "345667725823180800", - discordAvatar: "1f431ad71633fca8cab0698fdc2d3656", - customUrl: "solarspinner", - country: "US", - twitch: null, - createdAt: 1733938008, - inGameName: "☆§ Solar!#1396", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30870, - username: "Phrog", - discordId: "673562726236291082", - discordAvatar: "c056ec6a5809c04bd870c45d680dea7d", - customUrl: "phrog", - country: "US", - twitch: null, - createdAt: 1734118113, - inGameName: "QC. Phrog#1240", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [12434, 30411, 24275, 30263, 5861, 30870], + ownerUserId: 12434, checkIns: [ { bracketIdx: null, @@ -8084,13 +6930,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1361, - customUrl: "celestial", - logoUrl: "0g8GeNywEp6WpbsRx5EW9-1697814207838.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "0g8GeNywEp6WpbsRx5EW9-1697814207838.webp", avgSeedingSkillOrdinal: 15.645454311165642, }, { @@ -8099,105 +6940,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 13, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733166818, activeRosterUserIds: [32670, 38046, 42638, 34589], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-Hj-Us_Roj5Ksfv000ceBo-1733166818832.webp", - members: [ - { - userId: 32670, - username: "Sylyx", - discordId: "932348541542740018", - discordAvatar: "c9b287bcacb49a8a3ca7347224c77ade", - customUrl: "sylyx", - country: "CA", - twitch: null, - createdAt: 1733166818, - inGameName: "Sylyx#1095", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38046, - username: "Brownies!", - discordId: "1028381220154900611", - discordAvatar: "9df4c4fbcc2bcd54c2317ee9c96452a4", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1733166823, - inGameName: "Brownies!!#2517", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42638, - username: "Rosa", - discordId: "1220902502619414569", - discordAvatar: "2fb843bb4ddb7273278c09c9e42881c2", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733166825, - inGameName: "Rosa_#1667", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34589, - username: "Selene", - discordId: "746051377343758336", - discordAvatar: "1c798bd53cdda8395f5fa82e0fc6686e", - customUrl: "selene", - country: "US", - twitch: null, - createdAt: 1733166826, - inGameName: "SειëηΣ?#6908", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44378, - username: "Mirage", - discordId: "1272385114340593705", - discordAvatar: "266ea5e51cfceb4024964cc816cc21b9", - customUrl: null, - country: "US", - twitch: "justmirage0", - createdAt: 1733594006, - inGameName: "Mirage#2515", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [32670, 38046, 42638, 34589, 44378], + ownerUserId: 32670, checkIns: [ { bracketIdx: null, @@ -8205,13 +6954,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4070, - customUrl: "serves-up", - logoUrl: null, - deletedAt: 1734293679, - }, + hasMapPool: false, + logoUrl: "pickup-logo-Hj-Us_Roj5Ksfv000ceBo-1733166818832.webp", avgSeedingSkillOrdinal: 17.4902078203521, }, { @@ -8220,105 +6964,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 14, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733167616, activeRosterUserIds: [45102, 26711, 41739, 4533], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 4533, - username: "Miki", - discordId: "572145765900877862", - discordAvatar: "bd5debd07e7f2be21e4e98e2c3d16660", - customUrl: "foiit2131ze543", - country: "IT", - twitch: null, - createdAt: 1733167616, - inGameName: " ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3650, - customUrl: "ghistra", - logoUrl: "9YqXUYXVfk2PednzIAYqK-1733151924715.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "9YqXUYXVfk2PednzIAYqK-1733151924715.webp", avgSeedingSkillOrdinal: 13.298589843093751, }, { @@ -8341,123 +6988,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 15, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733201503, activeRosterUserIds: [20807, 31556, 33373, 42703], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 20807, - username: "✧ Tea ✧", - discordId: "475220573941661706", - discordAvatar: "9c77d47b422f2296d097332cb6fdf557", - customUrl: "splatea", - country: "US", - twitch: "splatea", - createdAt: 1733201503, - inGameName: "SplaTea TV#9482", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35282, - username: "Apisto", - discordId: "523688647682293760", - discordAvatar: "ace33ba28d07f710daf2070bc3840b90", - customUrl: "apisto", - country: "US", - twitch: null, - createdAt: 1733201506, - inGameName: "Apisto#9327", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20774, - username: "✧ Baja ✧", - discordId: "785678909555474462", - discordAvatar: "72544999ea8f8c0c1c84647d0a2b8825", - customUrl: "bajablastr", - country: "US", - twitch: "bajablastr_", - createdAt: 1733201506, - inGameName: "βαjα#1704", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33373, - username: "Comrade", - discordId: "554447504897343489", - discordAvatar: "d68a621b552a8571ed125e914686f6e4", - customUrl: "comrade", - country: "US", - twitch: null, - createdAt: 1733201507, - inGameName: "Comrade#1334", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42703, - username: "gameing", - discordId: "863790839132848139", - discordAvatar: "4afdbdbcaa55dc59b47522c3bbbfb58b", - customUrl: "gameing", - country: null, - twitch: null, - createdAt: 1733201508, - inGameName: "gameing#2389", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31556, - username: "Kliff", - discordId: "157241128909930496", - discordAvatar: "52598bc762a692c66102ce8bd04e4d7b", - customUrl: null, - country: null, - twitch: null, - createdAt: 1733201509, - inGameName: "Klem'ntine#3028", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [20807, 35282, 20774, 33373, 42703, 31556], + ownerUserId: 20807, checkIns: [ { bracketIdx: null, @@ -8465,13 +7002,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2963, - customUrl: "moonshine", - logoUrl: "Bs9LiXeN-t0NPnkePFUwl-1715752330445.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "Bs9LiXeN-t0NPnkePFUwl-1715752330445.webp", avgSeedingSkillOrdinal: 9.062131135269142, }, { @@ -8480,105 +7012,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 16, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733218069, activeRosterUserIds: [26509, 7959, 7690, 7958], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 7958, - username: "MidnightLutz", - discordId: "353306351859924993", - discordAvatar: "dbb15beeec368f47e56df8bd7edcfacf", - customUrl: "lutzi", - country: "FI", - twitch: "midnightlutzi", - createdAt: 1733218069, - inGameName: "Lutzi#9570", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7690, - username: "lowbundu", - discordId: "531156112137912332", - discordAvatar: null, - customUrl: null, - country: "SE", - twitch: null, - createdAt: 1733218071, - inGameName: "Low#7104", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7959, - username: "Saul", - discordId: "169135244627148801", - discordAvatar: "7e2393885e4247c7ce5503ebd54154a9", - customUrl: null, - country: "IE", - twitch: null, - createdAt: 1733218072, - inGameName: "Sual#1049", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26509, - username: "Vi", - discordId: "515556891619885077", - discordAvatar: "9806f12c610573f75a73afb9b0e04a8b", - customUrl: "vilikebye", - country: "GB", - twitch: null, - createdAt: 1733218073, - inGameName: "Vi#1325", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7102, - username: "Jødek", - discordId: "703150223127740488", - discordAvatar: "863fd254ff150db275ae1110f73e133a", - customUrl: null, - country: null, - twitch: null, - createdAt: 1733916151, - inGameName: "Jødek#3186", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [7958, 7690, 7959, 26509, 7102], + ownerUserId: 7958, checkIns: [ { bracketIdx: null, @@ -8586,13 +7026,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 151, - customUrl: "inkception", - logoUrl: "uyJ7a1-8A7q4gr_3MbyyP-1673717023215.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "uyJ7a1-8A7q4gr_3MbyyP-1673717023215.webp", avgSeedingSkillOrdinal: 11.2708281868577, }, { @@ -8601,123 +7036,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 17, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733319202, activeRosterUserIds: [10714, 21685, 8840, 10028], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 4285, - username: "Tbob408", - discordId: "343219263655510021", - discordAvatar: "f30c675fc07203ca112d93fd03b5cc96", - customUrl: "tbob408", - country: "US", - twitch: "tbob408", - createdAt: 1733319202, - inGameName: "ƒ²←Tbob#2063", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21685, - username: "CrazyToad", - discordId: "283259857157750794", - discordAvatar: "670713f570840f45506ff36028f15a04", - customUrl: null, - country: "US", - twitch: "thelocobrochacho", - createdAt: 1733319223, - inGameName: "ƒ²←Toad#2397", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34842, - username: "GlitchyBoot", - discordId: "143451966444404736", - discordAvatar: "4a91829491b5ad8652bd6cc467c15209", - customUrl: "gboot", - country: "US", - twitch: "glitchyboot", - createdAt: 1733319226, - inGameName: "f²←Glitchy#2181", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10714, - username: "Golonka", - discordId: "465163669035024394", - discordAvatar: "85e090bcc93aa5bcdebbb9758c5242ec", - customUrl: "golonka", - country: "US", - twitch: null, - createdAt: 1733319227, - inGameName: "ƒ²←Golonka#7170", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10028, - username: "Kcatt", - discordId: "492843186880905227", - discordAvatar: "8965f05d42011de7698ba30f6700fa71", - customUrl: "kcattacaz", - country: "US", - twitch: "kcattacaz", - createdAt: 1733319230, - inGameName: "ƒ²←kcatt#3290", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8840, - username: "Shii", - discordId: "283314794532962305", - discordAvatar: "afb51dbb65ea9d18d2b9995890eb3c8f", - customUrl: "shii", - country: "US", - twitch: null, - createdAt: 1733319232, - inGameName: "ƒ²←Shii#2267", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [4285, 21685, 34842, 10714, 10028, 8840], + ownerUserId: 4285, checkIns: [ { bracketIdx: null, @@ -8725,13 +7050,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3204, - customUrl: "freakforce", - logoUrl: "iG3zH1-4_Uk7iaAmR3LBj-1718748088553.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "iG3zH1-4_Uk7iaAmR3LBj-1718748088553.webp", avgSeedingSkillOrdinal: 6.277198708055992, }, { @@ -8740,105 +7060,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 18, prefersNotToHost: 1, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733471556, activeRosterUserIds: [17532, 30204, 36007, 38896], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 17532, - username: "USS Moody", - discordId: "556701176280645633", - discordAvatar: "fa2cc67d561e9c4e86c25e409ff5907e", - customUrl: "moodyblues", - country: "MX", - twitch: null, - createdAt: 1733471556, - inGameName: "USS Moody#5225", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36007, - username: "moxi", - discordId: "476014947248373789", - discordAvatar: "8aa933ea0576f80bfb1834980e73a9be", - customUrl: "ilovegarf", - country: "US", - twitch: "6moxi", - createdAt: 1733948167, - inGameName: "アリッサ#5565", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38896, - username: "Cringe", - discordId: "695196289322713109", - discordAvatar: "7e2da3ae756f040bbc63f567eb53e1b6", - customUrl: "cringe", - country: "US", - twitch: null, - createdAt: 1733948266, - inGameName: "Cringe#5602", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30204, - username: "Marcus?", - discordId: "789943264370884708", - discordAvatar: "61c6668cdd8591e88fb073a3e0644475", - customUrl: "marcus", - country: "US", - twitch: "marcushatesshot", - createdAt: 1733950474, - inGameName: "m#31926", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41285, - username: "Garf", - discordId: "1131109226551459881", - discordAvatar: "40fc19ff630ef87efdcda76ffacc0f95", - customUrl: "ilovemoxi", - country: "US", - twitch: null, - createdAt: 1733951107, - inGameName: "◯=ブライセソ=◯#5387", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [17532, 36007, 38896, 30204, 41285], + ownerUserId: 17532, checkIns: [ { bracketIdx: null, @@ -8846,13 +7074,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3994, - customUrl: "asphyxiation", - logoUrl: "8ZuIPY2zotP6ztNo5gpbI-1729585085110.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "8ZuIPY2zotP6ztNo5gpbI-1729585085110.webp", avgSeedingSkillOrdinal: 10.447098789283363, }, { @@ -8861,105 +7084,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 19, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733501938, activeRosterUserIds: [30495, 43073, 30488, 45295], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 28410, - username: "Ace★", - discordId: "971770276566142978", - discordAvatar: "ad0ce0ade0278ecd17c45f41e989324d", - customUrl: "aceausaur", - country: "FR", - twitch: "aceausaur", - createdAt: 1733501938, - inGameName: "ミゼリ エース★#1349", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43073, - username: "Cronix", - discordId: "1218881401915707412", - discordAvatar: "c19a29e638b2664e5d96c1ef6912ab0f", - customUrl: "cron1x", - country: "GB", - twitch: null, - createdAt: 1733501942, - inGameName: "ミゼリ Cronix#2518", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30495, - username: "Meguchy", - discordId: "1072920070717714484", - discordAvatar: "1717b46f92c6a375257b1246f9138e65", - customUrl: "meguchy_", - country: "FR", - twitch: null, - createdAt: 1733501944, - inGameName: "ミゼリ。Mεgυ°✩#2219", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30488, - username: "Skdcds", - discordId: "469470031928098818", - discordAvatar: "0e7ff0de52b76b172385d14730dbc8ad", - customUrl: "sk", - country: "ES", - twitch: null, - createdAt: 1733501946, - inGameName: "ミゼリ Sk#5210", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45295, - username: "ミゼリ V-Trux", - discordId: "189369439811141632", - discordAvatar: "20b64a9e17006e84b394ae465b0288d3", - customUrl: "v-trux", - country: "DE", - twitch: null, - createdAt: 1733517920, - inGameName: "ミゼリ V-Trux#1581", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [28410, 43073, 30495, 30488, 45295], + ownerUserId: 30488, checkIns: [ { bracketIdx: null, @@ -8967,13 +7098,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3582, - customUrl: "malicious-misery", - logoUrl: "TVeQSo3kWU2CgU-lN23vr-1725297056785.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "TVeQSo3kWU2CgU-lN23vr-1725297056785.webp", avgSeedingSkillOrdinal: 4.6366295559469695, }, { @@ -8982,95 +7108,16 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 20, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733622364, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 5584, - username: "yoshido", - discordId: "261999910042206208", - discordAvatar: "a_73829e0d85865fd539dcbdc1c09be4b2", - customUrl: "yoshido", - country: "CA", - twitch: "yoshido8", - createdAt: 1733622364, - inGameName: "σ*°yoshido#3235", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30612, - username: "Crazy!?", - discordId: "692819852531990580", - discordAvatar: "22410caa789f72430c47b5283da5e739", - customUrl: "s-blast9291", - country: "US", - twitch: "literallycrazy92", - createdAt: 1733622368, - inGameName: "σ*°Crazy!?#2260", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13671, - username: "Nutella🍊", - discordId: "744321370359333048", - discordAvatar: "cd9e914aaaf52aa14c6c5c400f0d2c99", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733622369, - inGameName: "σ*°Nutella#7762", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36898, - username: "Town Of Salem", - discordId: "423974234075693076", - discordAvatar: "a_6fe993c18acdb5a068c7f1befcc97c83", - customUrl: "town", - country: "US", - twitch: null, - createdAt: 1733622371, - inGameName: "σ*°Town#1561", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5584, 30612, 13671, 36898], + ownerUserId: 5584, checkIns: [], - mapPool: [], - team: { - id: 2733, - customUrl: "magic-beans", - logoUrl: "7VPROm50d_TI5PFxuUVRH-1719853192293.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "7VPROm50d_TI5PFxuUVRH-1719853192293.webp", avgSeedingSkillOrdinal: 8.412276593368723, }, { @@ -9079,87 +7126,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 21, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733635706, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 2279, - username: "Ark", - discordId: "459834973667459083", - discordAvatar: "fbab17488ecca69912ba9ee3462a9d08", - customUrl: "ark", - country: "US", - twitch: null, - createdAt: 1733635706, - inGameName: "DΔ Ark#1872", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30466, - username: "Borntobe4", - discordId: "1137956357417472051", - discordAvatar: "ba31e52dda925464d956848b867fb07d", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733635709, - inGameName: "♭ born#9799", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26162, - username: "e", - discordId: "382325712641720321", - discordAvatar: "8fc767bae73c45036c82e6f872fd2c97", - customUrl: "noobino", - country: "CA", - twitch: null, - createdAt: 1733635711, - inGameName: "e#5440", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24013, - username: "Ryo!", - discordId: "845489270261153822", - discordAvatar: "7174d086dff868c26d7be82382ca70ae", - customUrl: "ryochan", - country: "US", - twitch: null, - createdAt: 1733635715, - inGameName: "[R]yo!#9363", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [2279, 30466, 26162, 24013], + ownerUserId: 2279, checkIns: [ { bracketIdx: null, @@ -9167,13 +7140,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3470, - customUrl: "distortion", - logoUrl: "ns-MDQchEe5E4_ouZxX3k-1728181018528.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "ns-MDQchEe5E4_ouZxX3k-1728181018528.webp", avgSeedingSkillOrdinal: 15.938153809317189, }, { @@ -9182,87 +7150,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 22, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733671856, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 33632, - username: "kuro", - discordId: "1091607737730867251", - discordAvatar: "3fabedb71f77a3fc65aac339b10529bc", - customUrl: "nerfkuro", - country: "GB", - twitch: null, - createdAt: 1733671856, - inGameName: "nerfkuro#1333", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29433, - username: "Bandito", - discordId: "788856864807845948", - discordAvatar: "5ad1d0408b4a760a1a567efa38641f4b", - customUrl: "bandito", - country: "EE", - twitch: "qaramiiis", - createdAt: 1733674190, - inGameName: "Bandito#4064", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21181, - username: "raiingeblaster", - discordId: "440220037563940874", - discordAvatar: "08aefcc865f7f85adc55ed81346befe3", - customUrl: "raii", - country: "DE", - twitch: null, - createdAt: 1733689602, - inGameName: "▼hαeωon<3▼#2645", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32002, - username: "Anon", - discordId: "613653243125563422", - discordAvatar: "e9b5e27c5b5363930af93c4a8f3e3e27", - customUrl: "anonpencil", - country: "GB", - twitch: "anonpencilllll", - createdAt: 1734136081, - inGameName: "◎ 'Anon'#1493", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [33632, 29433, 21181, 32002], + ownerUserId: 33632, checkIns: [ { bracketIdx: null, @@ -9270,8 +7164,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: 16.34787245212165, }, { @@ -9280,105 +7174,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 23, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733810204, activeRosterUserIds: [1959, 17352, 33954, 22403], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-3KZntw8OZ9LkW4XqZRLS9-1733810204048.webp", - members: [ - { - userId: 1959, - username: "Goat Child", - discordId: "362466621513662467", - discordAvatar: "c740ad0d0720f4654f87855b2523f611", - customUrl: "goatchild", - country: "US", - twitch: null, - createdAt: 1733810204, - inGameName: "Goat Child#2734", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5906, - username: "Blaster", - discordId: "414135611272855565", - discordAvatar: "a_f0aeb6c7b9f43ef1135ca4f0208e33fb", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733810212, - inGameName: "Blaster#8303", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 17352, - username: "Frosty!", - discordId: "161148873375481856", - discordAvatar: "c42ca14a43edc6f858690bfd8ae19931", - customUrl: "frosty", - country: "US", - twitch: "ctrlaltdefrost", - createdAt: 1733810376, - inGameName: "h* Frosty!#3019", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22403, - username: "OceanOpal", - discordId: "396828158617452554", - discordAvatar: "474a2317263fb7eb84f0207e76fa76d2", - customUrl: "oceanopal", - country: null, - twitch: "oceanopal", - createdAt: 1733822106, - inGameName: "ΞOceanOpal#9923", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33954, - username: "Nerdy♪Adam", - discordId: "138831441676075008", - discordAvatar: "960e0080ddccb6022503ab7749233138", - customUrl: "nerdyadam", - country: "US", - twitch: "nerdyadam", - createdAt: 1733865466, - inGameName: "Nerdy♪Adam#1169", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [1959, 5906, 17352, 22403, 33954], + ownerUserId: 1959, checkIns: [ { bracketIdx: null, @@ -9386,8 +7188,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-3KZntw8OZ9LkW4XqZRLS9-1733810204048.webp", avgSeedingSkillOrdinal: 9.917802053336521, }, { @@ -9396,105 +7198,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 24, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733889961, activeRosterUserIds: [6696, 32107, 33402, 30619], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 6696, - username: "arkham", - discordId: "402369614694055936", - discordAvatar: "0ce597144631872730a7af3cd83619d0", - customUrl: "arkham", - country: "US", - twitch: "aaaarkham", - createdAt: 1733889961, - inGameName: "arkham#4865", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32107, - username: "Hayley", - discordId: "584169284205412352", - discordAvatar: "da21ee6a09b794ed1ffaf4b8917e4f08", - customUrl: "hayley", - country: "GB", - twitch: "bandithayley", - createdAt: 1733890089, - inGameName: "【Hayley】#7816", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33402, - username: "flyNn#3071", - discordId: "644743772407726088", - discordAvatar: "aea0fa0b8c9203b8dc30337d00689f4f", - customUrl: "spsflynn", - country: "US", - twitch: "flynn3071", - createdAt: 1733947966, - inGameName: "*~*flyNn#2174", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30619, - username: "Vhappy", - discordId: "223187823690252288", - discordAvatar: "2c535a8b55ba528263653f6c27ad3a26", - customUrl: "vhappy", - country: "US", - twitch: "the3team", - createdAt: 1733962086, - inGameName: "Vhappy#1640", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35133, - username: "Chippy", - discordId: "251694389665988609", - discordAvatar: "ad617b598501c6df3623a41ab401b38e", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733962703, - inGameName: "#1225", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [6696, 32107, 33402, 30619, 35133], + ownerUserId: 6696, checkIns: [ { bracketIdx: null, @@ -9502,8 +7212,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: 13.461022392791145, }, { @@ -9512,105 +7222,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 25, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733892132, activeRosterUserIds: [21670, 8993, 8395, 3566], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 21670, - username: "Kale", - discordId: "275611730615336960", - discordAvatar: "620350e61ea9b1d745b92e0b54a5c82d", - customUrl: "kalekyomi", - country: "PH", - twitch: "kale", - createdAt: 1733892132, - inGameName: "TIF Kale#1773", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8993, - username: "amisyka", - discordId: "336743550043815938", - discordAvatar: "a_df10de1fc8c6f8be09f050eccf9311d0", - customUrl: "amisyka", - country: "AU", - twitch: "amisyka", - createdAt: 1733892135, - inGameName: "amisyka#3037", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8395, - username: "Jam", - discordId: "422249778378702869", - discordAvatar: "202cc4477d241f260614a57976304028", - customUrl: null, - country: "US", - twitch: "j43am", - createdAt: 1733892138, - inGameName: "TIF J+αm#1827", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3566, - username: "United_Loler", - discordId: "597963333093687296", - discordAvatar: "3a5facd86c1cfeb8e99a8532a6506f3d", - customUrl: null, - country: "US", - twitch: "united_pamper", - createdAt: 1733892143, - inGameName: "⇛Pampers✰#1671", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46637, - username: "leaflet", - discordId: "1314635414514171906", - discordAvatar: "fa8d024c8c3ed30f57a1fa023d63815c", - customUrl: "leaflet", - country: null, - twitch: null, - createdAt: 1734198005, - inGameName: ".leaflet.#1292", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [21670, 8993, 8395, 3566, 46637], + ownerUserId: 21670, checkIns: [ { bracketIdx: null, @@ -9618,13 +7236,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 194, - customUrl: "this-is-fine", - logoUrl: "yHN1eVt6QBH7W7CDbstfD-1692228431156.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "yHN1eVt6QBH7W7CDbstfD-1692228431156.webp", avgSeedingSkillOrdinal: 12.692813883097351, }, { @@ -9633,105 +7246,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 26, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734035170, activeRosterUserIds: [24510, 10670, 22577, 31143], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 24510, - username: "Daniel.", - discordId: "324931889628577794", - discordAvatar: "f54d1154f558562bac5a106a4360aafe", - customUrl: "cfdaniel737", - country: "US", - twitch: null, - createdAt: 1734035170, - inGameName: "\tƒ(01)Avīci#3228", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31143, - username: "~Mari", - discordId: "512029343837323279", - discordAvatar: "86feb21b8c2762a161e046348132f9af", - customUrl: "mariitime", - country: "US", - twitch: null, - createdAt: 1734035173, - inGameName: "ƒMαrιιτιmε#6053", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10670, - username: "FallHole", - discordId: "221042185766699027", - discordAvatar: "098eb1a6200a50d1464ceaa118b0731f", - customUrl: "fallhole", - country: "MX", - twitch: "fallhole", - createdAt: 1734035178, - inGameName: "ƒallHole#8602", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5261, - username: "Koda", - discordId: "312053525171535872", - discordAvatar: "4d304e52ae21dfc9f9adc8099b2855a8", - customUrl: "starfaller__", - country: "US", - twitch: "starfaller__", - createdAt: 1734035182, - inGameName: "ƒ¿¡Koda!?#1726", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22577, - username: "ghostreni", - discordId: "426891744102055946", - discordAvatar: "ea4c90354ec5bfa2ab9faca985201efc", - customUrl: "ghostreni", - country: "US", - twitch: "ghostreni", - createdAt: 1734136323, - inGameName: "ghostreni#2563", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [24510, 31143, 10670, 5261, 22577], + ownerUserId: 24510, checkIns: [ { bracketIdx: null, @@ -9739,13 +7260,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 525, - customUrl: "calamity-forge-neo", - logoUrl: "j5WiAU3sM2cwmEPoGMQS6-1713999364414.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "j5WiAU3sM2cwmEPoGMQS6-1713999364414.webp", avgSeedingSkillOrdinal: 5.562238169626134, }, { @@ -9754,105 +7270,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 27, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734107844, activeRosterUserIds: [28170, 14309, 17310, 23164], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 28170, - username: "Eon", - discordId: "397117179465564160", - discordAvatar: "b98d5670dae1d53a9580074baae6f8ee", - customUrl: "eon3000", - country: "US", - twitch: null, - createdAt: 1734107844, - inGameName: "Eon#2450", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14309, - username: "Goxu", - discordId: "179029526351708171", - discordAvatar: "6e380fd4e3b0e43f557e08d3b209f294", - customUrl: "goxu", - country: "US", - twitch: "goxuuuu", - createdAt: 1734130617, - inGameName: "Goxu#6562", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23164, - username: "fish", - discordId: "626199973431607296", - discordAvatar: "a_d7905ca31dc7dad494d6d5c11d7de033", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1734131862, - inGameName: "fish#3039", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 17310, - username: "OhkoXar", - discordId: "706358528599916586", - discordAvatar: "b39a02338ed3a0267ab509eb084feb00", - customUrl: "ohkoxar", - country: "US", - twitch: "ohkoxar", - createdAt: 1734150871, - inGameName: "Θ© OhkoXar#1431", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2199, - username: "Nof24", - discordId: "577649122497134602", - discordAvatar: "84efcbc3633f680b4525796e61173be5", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1734216771, - inGameName: "Nof24#1856", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [28170, 14309, 23164, 17310, 2199], + ownerUserId: 28170, checkIns: [ { bracketIdx: null, @@ -9860,13 +7284,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4301, - customUrl: "twister-time", - logoUrl: null, - deletedAt: null, - }, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: 10.41020974123307, }, { @@ -9875,87 +7294,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 28, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734132225, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-_asHjlVchhJ50PH_mDBtw-1734132224819.webp", - members: [ - { - userId: 11117, - username: "Tessa", - discordId: "284891155370475522", - discordAvatar: "6f6726a314ef2b0366e90c81aa4f7bf8", - customUrl: "tessaract", - country: null, - twitch: "tessssaract", - createdAt: 1734132225, - inGameName: "ΞTessaract#7242", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 16387, - username: "Bubble", - discordId: "559843245023166484", - discordAvatar: "17dc04814dc84cea0241aafc4b67baf4", - customUrl: "sockz", - country: "US", - twitch: "splatzparty", - createdAt: 1734132269, - inGameName: "Bubble.mp4#3578", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31154, - username: "Renzo", - discordId: "79007222360702976", - discordAvatar: "06a945f71d4d6b11fc000cd9fd029c9d", - customUrl: "renzo", - country: "US", - twitch: "renzoandknuckles", - createdAt: 1734132358, - inGameName: "Renzo™#3392", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6051, - username: "ACECT", - discordId: "136664437431074816", - discordAvatar: "e40e384543bd3dafa69aa53954981ef1", - customUrl: "acect", - country: "US", - twitch: "acectttt", - createdAt: 1734132433, - inGameName: "ACECT.mp4#2681", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11117, 16387, 31154, 6051], + ownerUserId: 11117, checkIns: [ { bracketIdx: null, @@ -9963,8 +7308,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-_asHjlVchhJ50PH_mDBtw-1734132224819.webp", avgSeedingSkillOrdinal: 9.212354320311938, }, { @@ -9973,105 +7318,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 29, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733194304, activeRosterUserIds: [40505, 29011, 23082, 45036], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 40505, - username: "LN TheGish", - discordId: "336336508405415957", - discordAvatar: "898264e697791243e7f4aa85ddace305", - customUrl: "thegish", - country: "US", - twitch: null, - createdAt: 1733194304, - inGameName: "LN TheGish#6533", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29011, - username: "Arsynn", - discordId: "570619098036436993", - discordAvatar: "65f544d27ae686539ebd09daca24ab7e", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1733194307, - inGameName: "ln Arsynn#5022", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23082, - username: "Blueberry", - discordId: "783935177256075295", - discordAvatar: "a_f7084cc96307f0bdead3269042edebe1", - customUrl: "bluebrry", - country: "US", - twitch: "blueberry2849", - createdAt: 1733194308, - inGameName: "ln Blubrry#2022", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21549, - username: "Melo", - discordId: "535550649518129182", - discordAvatar: "a_386e65388ec654b8874db62bee8f50c8", - customUrl: "meloyelo", - country: "PR", - twitch: "meloyelo_", - createdAt: 1733194314, - inGameName: "LN✰Melo#1231", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45036, - username: "Frankie", - discordId: "574762240159514624", - discordAvatar: "b331d289e0a9af17bd44af4739ce4c64", - customUrl: "frankierod", - country: "US", - twitch: null, - createdAt: 1733605136, - inGameName: "LN Frankie #1631", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [40505, 29011, 23082, 21549, 45036], + ownerUserId: 40505, checkIns: [ { bracketIdx: null, @@ -10079,13 +7332,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3005, - customUrl: "loud-noises", - logoUrl: "yOTJfxFNZ1tt3jkVTq5dE-1721965075679.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "yOTJfxFNZ1tt3jkVTq5dE-1721965075679.webp", avgSeedingSkillOrdinal: 5.5969612712777215, }, { @@ -10094,87 +7342,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 30, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733195091, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 30122, - username: "StaticGeckos", - discordId: "158420798661591040", - discordAvatar: "4dde4f3d9208462f152460b8e8ee16c1", - customUrl: "staticgeckos", - country: "US", - twitch: "staticechoes", - createdAt: 1733195091, - inGameName: "R↑ Static#1144", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26820, - username: "AstridSteorra", - discordId: "338038378417356801", - discordAvatar: "7c65c2dc0f2801089fdacf0a86c63bdb", - customUrl: "steorra", - country: "US", - twitch: "astridsteorra", - createdAt: 1733195093, - inGameName: "R↑ Steorra#1628", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3513, - username: "PurplZebra", - discordId: "755884158479237212", - discordAvatar: "620d0c7368072a454c4b3d1871799164", - customUrl: "zebra", - country: "US", - twitch: null, - createdAt: 1733195093, - inGameName: "R↑ Zebra#1631", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10297, - username: "Yung", - discordId: "714673961555984445", - discordAvatar: "a88c8b49ae5aa44e24808f0fe50e28a4", - customUrl: "yungnc7", - country: "US", - twitch: "yung_spl", - createdAt: 1733195094, - inGameName: "YRN#1115", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30122, 26820, 3513, 10297], + ownerUserId: 30122, checkIns: [ { bracketIdx: null, @@ -10182,13 +7356,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1325, - customUrl: "squid-rollups", - logoUrl: "zNz78ZRywB9fAKIhkFprB-1702229910598.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "zNz78ZRywB9fAKIhkFprB-1702229910598.webp", avgSeedingSkillOrdinal: 8.9143192639354, }, { @@ -10197,105 +7366,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 31, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733364647, activeRosterUserIds: [22801, 31150, 35354, 27747], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 22801, - username: "Espi!", - discordId: "634080644019781642", - discordAvatar: "3a995ec827095a01baf79a7a782d84f8", - customUrl: "espi", - country: "US", - twitch: "v0rtex_spl", - createdAt: 1733364647, - inGameName: "<↑ Espi!#2714", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8953, - username: "h", - discordId: "321848470736601098", - discordAvatar: "873de7836d6e23901b69d57db4099255", - customUrl: "hspl", - country: "US", - twitch: null, - createdAt: 1733364648, - inGameName: "<↑ h#2774", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27747, - username: "Kattail", - discordId: "417360449340964866", - discordAvatar: "06d0d440f69b3dd56014af2f23714c04", - customUrl: "kattail_", - country: "US", - twitch: "kattail_", - createdAt: 1733364650, - inGameName: "<↑ Kattail#2820", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31150, - username: "Trafalgar Demolition Law", - discordId: "393523978758520852", - discordAvatar: "c4efd51aba5bdc2e76950532cf9872c7", - customUrl: "trafalgardemolitionlaw", - country: "US", - twitch: "trafalgardemolitionlaw", - createdAt: 1733364733, - inGameName: "<↑ DemoLaw#3133", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35354, - username: "toma", - discordId: "1153737068057460746", - discordAvatar: "ec0d000508672746237a635a24cca777", - customUrl: "totalmadnesstoma", - country: "US", - twitch: null, - createdAt: 1733702069, - inGameName: "<↑ ™toma#2584", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22801, 8953, 27747, 31150, 35354], + ownerUserId: 22801, checkIns: [ { bracketIdx: null, @@ -10303,13 +7380,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3811, - customUrl: "cooler-high", - logoUrl: "YzT4hWfYxOvbFB6GcxYdG-1727325383127.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "YzT4hWfYxOvbFB6GcxYdG-1727325383127.webp", avgSeedingSkillOrdinal: 7.650382581374538, }, { @@ -10318,87 +7390,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 32, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733374295, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 26441, - username: "Sniper", - discordId: "400828601970196490", - discordAvatar: "384717914229b2bde0bce6448c93b51f", - customUrl: "snipescythe", - country: "US", - twitch: "snipescythe", - createdAt: 1733374295, - inGameName: "εᴠₒ Sniper#5010", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38686, - username: "GalaxyKirby", - discordId: "1195758113593237700", - discordAvatar: "f4387d3f9d60bafcf8ddb7169e036b92", - customUrl: "galaxy-kirby", - country: "US", - twitch: null, - createdAt: 1733374297, - inGameName: "εᴠₒGalaxyK#2711", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12005, - username: "Waffle", - discordId: "548954191666741249", - discordAvatar: "19a61295ee812b12fd50071cf54e26f3", - customUrl: "waffle", - country: "US", - twitch: null, - createdAt: 1733374299, - inGameName: "εᴠₒWaffle#3295", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31295, - username: "Velvet", - discordId: "858425691087175751", - discordAvatar: "2b884ae20c54a3dc24b72fd821649bef", - customUrl: "velvet", - country: "GB", - twitch: "velvettmoon_", - createdAt: 1733697589, - inGameName: "εᴠ Velvet#6554", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [26441, 38686, 12005, 31295], + ownerUserId: 12005, checkIns: [ { bracketIdx: null, @@ -10406,13 +7404,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2252, - customUrl: "event-horizon", - logoUrl: "tVd7fzeIjm3JC43eqbCSn-1730746775651.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "tVd7fzeIjm3JC43eqbCSn-1730746775651.webp", avgSeedingSkillOrdinal: 7.589323736741802, }, { @@ -10421,131 +7414,16 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 33, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733433864, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 18574, - username: "Polon", - discordId: "563604973452001280", - discordAvatar: "56662bd15b3167fe81e73a23492d9ede", - customUrl: "polonbear", - country: "DE", - twitch: "polonbear0", - createdAt: 1733433864, - inGameName: "〒 Polon™#1827", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40636, - username: "999.Revo", - discordId: "703674873964265583", - discordAvatar: "a61c6843a64055b8d85b9092c34c3e05", - customUrl: "ts", - country: "DE", - twitch: null, - createdAt: 1733433867, - inGameName: "〒 999.Revo#1281", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44489, - username: "Fischi.jr", - discordId: "1162041554358259732", - discordAvatar: "47e8008f99a209a9b3a3bfe49bd05ae5", - customUrl: null, - country: "AT", - twitch: null, - createdAt: 1733433868, - inGameName: "Fischi.jr☆TSA#1331", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34314, - username: "Frill", - discordId: "800839895979130930", - discordAvatar: "373ae9d268229712a4fbbec89d2c6059", - customUrl: null, - country: "DE", - twitch: null, - createdAt: 1733433870, - inGameName: "〒 Gabbro#1991", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28247, - username: "POGnator", - discordId: "671419359058722826", - discordAvatar: "a672f64affba3e991f819838c1de5ada", - customUrl: "pognator", - country: "AT", - twitch: "pognator", - createdAt: 1733433871, - inGameName: "〒 №POGnatr#2144", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41628, - username: "SillyCat", - discordId: "795121076816314428", - discordAvatar: "7a8c18582ed73ece9519cacc07f2e2dd", - customUrl: null, - country: "DE", - twitch: null, - createdAt: 1733438268, - inGameName: "〒$illyCat.#1689", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [18574, 40636, 44489, 34314, 28247, 41628], + ownerUserId: 18574, checkIns: [], - mapPool: [], - team: { - id: 3268, - customUrl: "turbo-torben", - logoUrl: "nJamx-d1HgKqp06XolJsP-1721493712056.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "nJamx-d1HgKqp06XolJsP-1721493712056.webp", avgSeedingSkillOrdinal: 4.7051066279513565, }, { @@ -10554,87 +7432,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 34, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733513814, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 5037, - username: "Illusion", - discordId: "200350408214970369", - discordAvatar: "3f84fdbf147ea80f97f2046b3ee00cd8", - customUrl: "illusionsplat", - country: "GB", - twitch: "spinllusion", - createdAt: 1733513814, - inGameName: "ヨ。Illusion#3461", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26321, - username: "EebySleebyElla", - discordId: "584712799943393303", - discordAvatar: "324550af2c4e72a10ffcb6a18a3ab150", - customUrl: "veryderanged", - country: "GB", - twitch: "eepyella", - createdAt: 1733513817, - inGameName: "ヨ。Ella :3#1250", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22324, - username: "Squiffer giggleshitter", - discordId: "796124570838368258", - discordAvatar: "63bc988f9fb0d2f477872f27637d0584", - customUrl: "swaashy", - country: "GB", - twitch: "swaashybad", - createdAt: 1733513820, - inGameName: "ヨ。Swaashy#6189", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11088, - username: "twinbe", - discordId: "737260110274887701", - discordAvatar: "3ce1a3b2d33e7c8e1241ba563f2d29bc", - customUrl: "twinbe133", - country: "BE", - twitch: "twinbe133", - createdAt: 1733513821, - inGameName: "ヨ。twinbe#6647", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5037, 26321, 22324, 11088], + ownerUserId: 5037, checkIns: [ { bracketIdx: null, @@ -10642,13 +7446,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2430, - customUrl: "red-velvet-sea", - logoUrl: "rxLF6ENcxZwPV3Cn7i-q4-1726243170732.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "rxLF6ENcxZwPV3Cn7i-q4-1726243170732.webp", avgSeedingSkillOrdinal: 5.568120114059485, }, { @@ -10657,105 +7456,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 35, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733602400, activeRosterUserIds: [10826, 4248, 20419, 11180], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 11180, - username: "squishy", - discordId: "355070150241812482", - discordAvatar: "78016be0232c9563c560aef2ab04c511", - customUrl: "squishy27", - country: "US", - twitch: "squishysplatoon", - createdAt: 1733602400, - inGameName: "T☆squishy#1382", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20419, - username: "combo", - discordId: "368160407065460740", - discordAvatar: "0a17b77dfb947da337b8d2e24e53d634", - customUrl: "combo", - country: "US", - twitch: "combotchi", - createdAt: 1733602403, - inGameName: "combo#2339", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4248, - username: "koikoi!", - discordId: "238127126774022145", - discordAvatar: "88f485ac879797f45c1df140a7140347", - customUrl: null, - country: "US", - twitch: "mainko_koi", - createdAt: 1733602406, - inGameName: "T☆κοiκοi!#2065", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10826, - username: "Tachi Ko", - discordId: "448303478834724864", - discordAvatar: "a_1e50f0ae1de9faa2142f07595d0d801d", - customUrl: "tachiko", - country: "US", - twitch: "amotachi", - createdAt: 1733602409, - inGameName: "Tachi Ko#2736", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28504, - username: "Drewski", - discordId: "394177395340345344", - discordAvatar: "27929b4fe9d5d1f8af3b4e09d6e1ef27", - customUrl: "drewski", - country: "US", - twitch: null, - createdAt: 1734030318, - inGameName: "T☆Drewski#1157", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11180, 20419, 4248, 10826, 28504], + ownerUserId: 11180, checkIns: [ { bracketIdx: null, @@ -10763,13 +7470,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3180, - customUrl: "tamu-maroon", - logoUrl: "WA9C-V116gYC5aIaOw3Vt-1719626381068.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "WA9C-V116gYC5aIaOw3Vt-1719626381068.webp", avgSeedingSkillOrdinal: 1.56945131289459, }, { @@ -10778,105 +7480,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 36, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733753214, activeRosterUserIds: [27903, 28446, 34634, 30728], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 27903, - username: "Akira", - discordId: "994149869205860473", - discordAvatar: "c95c1e5d3be2f7110ee3fb06e08c4a95", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1733753214, - inGameName: "404 アキラ!#2667", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28446, - username: "PGP", - discordId: "760543865807175690", - discordAvatar: "9bbb3a94d46117d28ce63fcf76185712", - customUrl: "pgp", - country: "ES", - twitch: "pgp102", - createdAt: 1733753221, - inGameName: "404 PGP¹º²#2268", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30728, - username: "snip", - discordId: "741992639188172903", - discordAvatar: "64e3c310c920062d813105c0e0d71833", - customUrl: "snip", - country: "GB", - twitch: "hparsnip9", - createdAt: 1733753226, - inGameName: "404 snip#2287", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32158, - username: "Floke", - discordId: "813002304244023306", - discordAvatar: "bc6ffab4df0cbdd506e4496783fc9219", - customUrl: null, - country: "DE", - twitch: null, - createdAt: 1733753244, - inGameName: "404 Floke#1914", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34634, - username: "Stickbug", - discordId: "1158451375143919736", - discordAvatar: "30c3d292a6ca406d2b7e47d215e78f2f", - customUrl: "the404insect", - country: "GB", - twitch: null, - createdAt: 1733854036, - inGameName: "404 Stick#3636", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [27903, 28446, 30728, 32158, 34634], + ownerUserId: 27903, checkIns: [ { bracketIdx: null, @@ -10884,13 +7494,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1782, - customUrl: "error-404", - logoUrl: "7vMPDp8QfDMoE-V3eoRGU-1709031600316.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "7vMPDp8QfDMoE-V3eoRGU-1709031600316.webp", avgSeedingSkillOrdinal: 10.302803200737621, }, { @@ -10899,123 +7504,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 37, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733914001, activeRosterUserIds: [32909, 10190, 35922, 40304], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 32909, - username: "メи Rεиzø", - discordId: "997656864881918012", - discordAvatar: "40fcd442499c9b5546fdecceaf8c2dc4", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1733914001, - inGameName: "メи Rεиzø#1066", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31189, - username: "Saturn_splat", - discordId: "1006146682381152257", - discordAvatar: "d201141bcb461192f6fda3f92b257178", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1733914005, - inGameName: "Fx>>Saturn#1259", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10190, - username: "JasonJimnz", - discordId: "348086342816890880", - discordAvatar: "d03e2d4a49a0c50d0a0e912a5860a40e", - customUrl: "jasonjimnz", - country: "ES", - twitch: "jasonjimnz", - createdAt: 1733914010, - inGameName: "メи J-SON#1634", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37959, - username: "Lili", - discordId: "724545230954823742", - discordAvatar: "23b7f07f35094a58fa9ad815c803e554", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1733914024, - inGameName: "Ж «Лили» Ж#1963", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40304, - username: "Ryro", - discordId: "1160529949531316334", - discordAvatar: "25b0118ab117d20e97f7a81e0d90e310", - customUrl: null, - country: "ES", - twitch: "ryro20", - createdAt: 1733914036, - inGameName: "Ж Ryro Ж#3336", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35922, - username: "Rocko⚡", - discordId: "345996252032401408", - discordAvatar: "7b25f5ba43a3da4b8316c99ab7bc33f1", - customUrl: "rocko_spl", - country: "ES", - twitch: "rocko_spl", - createdAt: 1733914100, - inGameName: "Rocko_spl#1058", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [32909, 31189, 10190, 37959, 40304, 35922], + ownerUserId: 32909, checkIns: [ { bracketIdx: null, @@ -11023,13 +7518,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2955, - customUrl: "xname", - logoUrl: "MdVRaMqafGpcDv7eG9Sai-1723136022321.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "MdVRaMqafGpcDv7eG9Sai-1723136022321.webp", avgSeedingSkillOrdinal: 3.1773055351036033, }, { @@ -11038,105 +7528,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 38, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733966548, activeRosterUserIds: [35617, 37669, 37436, 35811], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 37246, - username: "Tommy!", - discordId: "622250350828716054", - discordAvatar: "13ddb99ce1974d00499b8230d39d5b03", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1733966548, - inGameName: "[BW] Tommy #2195", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35617, - username: "Neptune", - discordId: "756912433011884152", - discordAvatar: "faa1147e3ca62828461965750ec85c68", - customUrl: "neptangas", - country: "PA", - twitch: null, - createdAt: 1733966558, - inGameName: "[BW] Nep#6339", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37669, - username: "NoBru", - discordId: "1153520926529421334", - discordAvatar: "a_88439341200379ab3691596a227b16d1", - customUrl: null, - country: "CL", - twitch: "nobru_356", - createdAt: 1733966563, - inGameName: "[BW]☆⌢NB⌢☆#1633", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37436, - username: "Reg112", - discordId: "599643315280805889", - discordAvatar: "6f9e983097b65035b03150ff28ce0f57", - customUrl: null, - country: "MX", - twitch: null, - createdAt: 1733966565, - inGameName: "Reg112#1956", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35811, - username: "Parxecurita", - discordId: "758413758103289890", - discordAvatar: "d7471f78751dfe7d5ca0fb5c095b7a17", - customUrl: null, - country: "CL", - twitch: "parxecuritarw", - createdAt: 1733970531, - inGameName: "Parxe [BW]#2048", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [37246, 35617, 37669, 37436, 35811], + ownerUserId: 37669, checkIns: [ { bracketIdx: null, @@ -11144,13 +7542,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2805, - customUrl: "brigada-woomy", - logoUrl: "3d04NeWJsoKSYeMnMjdX7-1720567099646.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "3d04NeWJsoKSYeMnMjdX7-1720567099646.webp", avgSeedingSkillOrdinal: 4.71896371718947, }, { @@ -11159,87 +7552,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 39, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734032213, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 2990, - username: "Jupex", - discordId: "325993881625690114", - discordAvatar: "4574c03dc2d34e00e59941edb49b3b4a", - customUrl: "jupex26", - country: "ES", - twitch: "jupex26", - createdAt: 1734032213, - inGameName: "τァ Jupex#9503", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1925, - username: "Luigeon", - discordId: "203891734021668865", - discordAvatar: "e302c8d1ea0bab911ac63a8215a4aa99", - customUrl: null, - country: "ES", - twitch: "luigeon7", - createdAt: 1734032217, - inGameName: "τァ Luigeon#2301", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11391, - username: "Italics", - discordId: "708256385590099980", - discordAvatar: "560104edb81fcd81fe17dd350fced729", - customUrl: "its_italics", - country: "GB", - twitch: "itsitalics", - createdAt: 1734032220, - inGameName: "τァ Italics#3341", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27355, - username: "Aeroplano", - discordId: "643139984651452428", - discordAvatar: "5d87308bbc4fab7ccf3b390bbdcebb43", - customUrl: "plano", - country: "ES", - twitch: null, - createdAt: 1734032222, - inGameName: "τァ Plαnσ#1055", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [2990, 1925, 11391, 27355], + ownerUserId: 2990, checkIns: [ { bracketIdx: null, @@ -11247,13 +7566,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3512, - customUrl: "tidal-tempest", - logoUrl: "cRs64cJPKB75GuIR547Qr-1723816170415.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "cRs64cJPKB75GuIR547Qr-1723816170415.webp", avgSeedingSkillOrdinal: -1.336519579827905, }, { @@ -11262,105 +7576,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 40, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734106606, activeRosterUserIds: [37173, 43269, 43623, 16054], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 43623, - username: "Sky", - discordId: "1222127305258696767", - discordAvatar: "4112d5d0cfc52d01f55ac802ea8f478d", - customUrl: null, - country: "DE", - twitch: "skyfighter281", - createdAt: 1734106606, - inGameName: "アこ•ζκγ˜#1943", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43269, - username: "-2", - discordId: "440768626581307392", - discordAvatar: "5e6b9e722e1397b5f7d67e9613e41d13", - customUrl: "-two", - country: "NO", - twitch: null, - createdAt: 1734106608, - inGameName: "-2#1564", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37173, - username: "Elias", - discordId: "1133411176395575386", - discordAvatar: "b0657e3dfa4dbe4c0f53ac2f3b588b53", - customUrl: "elias", - country: "DE", - twitch: null, - createdAt: 1734106610, - inGameName: "アこ•Elias#2365", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34448, - username: "Angel", - discordId: "1096397660593852437", - discordAvatar: "f034daac38771eda86ffc55b0a822fee", - customUrl: null, - country: "DE", - twitch: null, - createdAt: 1734194642, - inGameName: "V³Aпgel»#2225", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 16054, - username: "Autumnal", - discordId: "247090600002846722", - discordAvatar: "b7e8ef76ec219e3a23b0382891dea1ff", - customUrl: "autumnalequinox", - country: "US", - twitch: null, - createdAt: 1734199465, - inGameName: "Autumnal!?#1691", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [43623, 43269, 37173, 34448, 16054], + ownerUserId: 43623, checkIns: [ { bracketIdx: null, @@ -11368,13 +7590,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3948, - customUrl: "pringle-cat", - logoUrl: "XCkpFEQEvGHxcToC1lPQq-1729182793730.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "XCkpFEQEvGHxcToC1lPQq-1729182793730.webp", avgSeedingSkillOrdinal: 4.705256335441828, }, { @@ -11383,123 +7600,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 41, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734116765, activeRosterUserIds: [25312, 10378, 46771, 26044], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 25312, - username: "Puddleduck", - discordId: "352680612617912320", - discordAvatar: "d639d5fa9f3e6c5413c53f837c96a0d4", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1734116765, - inGameName: "Puddleduck#9028", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10378, - username: "ctrlaltdog", - discordId: "102583399247540224", - discordAvatar: "d0fdd0049e858c51739d44d25006e8ee", - customUrl: "ctrlaltdog", - country: "CA", - twitch: null, - createdAt: 1734116829, - inGameName: "ctrlaltdog#3572", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46771, - username: "Strider", - discordId: "211050359798366208", - discordAvatar: "1b8254991323412b7c53e3fce92c91d4", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1734117640, - inGameName: "Polaris#6130", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5350, - username: "Th3bomb93", - discordId: "115256973347389447", - discordAvatar: "2d53beb3a7f453719c8afbf0decf9f06", - customUrl: "th3bomb93", - country: "CA", - twitch: "th3bomb93", - createdAt: 1734129026, - inGameName: "RKO*Bomb#2206", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12609, - username: "shaun", - discordId: "366640402519949315", - discordAvatar: "57367cc085f7c3e1ba32529c6a3dd89b", - customUrl: "revlushaun", - country: "CA", - twitch: null, - createdAt: 1734134255, - inGameName: "revlushaun#3043", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26044, - username: "zamuraı", - discordId: "195828976214605826", - discordAvatar: "2c442ee292e537663fcd054567e2b1b4", - customUrl: "zamurai", - country: "CA", - twitch: null, - createdAt: 1734134731, - inGameName: "zamuraı#9996", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25312, 10378, 46771, 5350, 12609, 26044], + ownerUserId: 25312, checkIns: [ { bracketIdx: null, @@ -11507,13 +7614,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 575, - customUrl: "cod-in-4k", - logoUrl: "lxpncQqwig7lWSyzBdJIG-1695863738076.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "lxpncQqwig7lWSyzBdJIG-1695863738076.webp", avgSeedingSkillOrdinal: -0.12289108753205302, }, { @@ -11522,87 +7624,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 42, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734125312, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 25806, - username: "KustKebab", - discordId: "418633919970410507", - discordAvatar: "8d010e68dd22f1de3a5c492ce74e77eb", - customUrl: null, - country: "GH", - twitch: null, - createdAt: 1734125312, - inGameName: "KUST#2446", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43060, - username: "☆CannedTuna", - discordId: "433483326666571777", - discordAvatar: "2abb63161381c6be9cd53db6878978c8", - customUrl: "cannedtuuna", - country: "JM", - twitch: null, - createdAt: 1734125320, - inGameName: "☆Tuna#9794", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22622, - username: "Heartble", - discordId: "691132391884062763", - discordAvatar: "1e33b2965892548a720291075951f69b", - customUrl: "heartble", - country: "US", - twitch: null, - createdAt: 1734125324, - inGameName: "Heartble#4140", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22968, - username: "grubhub", - discordId: "582614031479734293", - discordAvatar: "799df93770e69e8aa02bc737c482aa1c", - customUrl: "grubhub", - country: "US", - twitch: null, - createdAt: 1734125402, - inGameName: "grubhub#8941", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25806, 43060, 22622, 22968], + ownerUserId: 25806, checkIns: [ { bracketIdx: null, @@ -11610,13 +7638,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 281, - customUrl: "seasick", - logoUrl: "PjZcKx5f2-FiKfOigrpt7-1704692756270.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "PjZcKx5f2-FiKfOigrpt7-1704692756270.webp", avgSeedingSkillOrdinal: 13.280597962596577, }, { @@ -11625,105 +7648,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 43, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734134382, activeRosterUserIds: [26758, 25689, 42164, 44475], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 44475, - username: "happiness", - discordId: "960213930586824766", - discordAvatar: "c12b9f95cab77a47f45ed85338948c61", - customUrl: "simple", - country: "GB", - twitch: "s1mplesplatoon", - createdAt: 1734134382, - inGameName: "S1MPLE#1222", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42164, - username: "✩Bubu✩", - discordId: "1225145139866107974", - discordAvatar: "17b4fd6ff22ccf8313ca3e3aed22e885", - customUrl: "bubu", - country: "CA", - twitch: "bubu15", - createdAt: 1734134394, - inGameName: "✩Bubu✩#3042", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25689, - username: "Sundew", - discordId: "971877461149245460", - discordAvatar: "9538f9b9bba59d0898042baa01868f9f", - customUrl: "sundew", - country: "CA", - twitch: null, - createdAt: 1734134419, - inGameName: "モウセンゴケ#3613", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43524, - username: "JΔRΞD!!", - discordId: "1137881786555322559", - discordAvatar: "5c29055fd24f8b2ba018843e507fab62", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1734135118, - inGameName: "「łw」JΔRΞD#2421", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26758, - username: "Lianzi", - discordId: "421474055972061184", - discordAvatar: "23c177d15fb2a50b63c5087ea2547d82", - customUrl: null, - country: "CN", - twitch: "liyanzi", - createdAt: 1734267010, - inGameName: "Lianzi#3090", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [44475, 42164, 25689, 43524, 26758], + ownerUserId: 44475, checkIns: [ { bracketIdx: null, @@ -11731,8 +7662,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: 8.110733505900622, }, { @@ -11741,105 +7672,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 44, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733156802, activeRosterUserIds: [9036, 7434, 3738, 9112], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 3742, - username: "Thoma", - discordId: "124007565758693376", - discordAvatar: "ca9e37c9b31dfa39f88b2a2da2d4af21", - customUrl: "thoma", - country: "US", - twitch: "tthoma_", - createdAt: 1733156802, - inGameName: "Thoma...#7962", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9112, - username: "Albedo", - discordId: "296098578450087948", - discordAvatar: "dbc8a1e35ed25202445e2fa6125a48d1", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733156805, - inGameName: "Albedo...#3246", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3738, - username: "Firecorgi", - discordId: "190244324041031681", - discordAvatar: "75d5f16cedfbe4cbeb75c7342ee0e93f", - customUrl: "firecorgi", - country: "US", - twitch: "firecorgi1", - createdAt: 1733156806, - inGameName: "Firecorgi…#2846", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7434, - username: "lyra drop roller", - discordId: "134776998991101952", - discordAvatar: "8253330ec41fa10cb5a51b602a20bab2", - customUrl: "droproller", - country: "US", - twitch: null, - createdAt: 1733156808, - inGameName: "droproller#6887", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9036, - username: "sulli", - discordId: "324771107624452096", - discordAvatar: "fbd6690bc05ed8fb0ca87e8faabc2f83", - customUrl: "slommy", - country: "US", - twitch: null, - createdAt: 1733156810, - inGameName: "sulli...#2942", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3742, 9112, 3738, 7434, 9036], + ownerUserId: 9036, checkIns: [ { bracketIdx: null, @@ -11847,13 +7686,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 963, - customUrl: "sheer-cold", - logoUrl: "kJMc18bqmlZZCVoYMZyfN-1684783946318.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "kJMc18bqmlZZCVoYMZyfN-1684783946318.webp", avgSeedingSkillOrdinal: 0.513172337445617, }, { @@ -11862,123 +7696,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 45, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733157391, activeRosterUserIds: [5935, 38204, 3741, 8080], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 5935, - username: "I eat tennis balls", - discordId: "714512574888017921", - discordAvatar: "b198962096f3f686853ec841ee5a45d6", - customUrl: "maru", - country: "DE", - twitch: null, - createdAt: 1733157391, - inGameName: "wobblynuts#2103", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38204, - username: "av", - discordId: "459827933951819790", - discordAvatar: "63e476ede93d2de1db338cf5aa4b9a04", - customUrl: "htnnk", - country: "NL", - twitch: null, - createdAt: 1733157395, - inGameName: "ima div5?!#1610", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35506, - username: "Goro", - discordId: "513401185361985559", - discordAvatar: "15b2329707665c04c460f83ee56b0728", - customUrl: null, - country: "UA", - twitch: null, - createdAt: 1733157398, - inGameName: "ヨ。Goro.UA#1965", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3741, - username: "Sunflower", - discordId: "310384897007157259", - discordAvatar: "2200958a3087efbc7f1218188a482766", - customUrl: "asunflower", - country: "PT", - twitch: null, - createdAt: 1733157407, - inGameName: "Sun#2327", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31728, - username: "Blue", - discordId: "640950798183956490", - discordAvatar: "e3bd33e82ec080c5d6ec2d167855067e", - customUrl: "blue", - country: "SE", - twitch: null, - createdAt: 1733157410, - inGameName: "‘ב)Srblue#2726", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8080, - username: "OmaZen", - discordId: "340564347963310081", - discordAvatar: "4d6c570377ba2c0d77b927cceb4474bd", - customUrl: "omazen", - country: "US", - twitch: "omazen", - createdAt: 1733865047, - inGameName: "M■OmaZen#2168", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5935, 38204, 35506, 3741, 31728, 8080], + ownerUserId: 5935, checkIns: [ { bracketIdx: null, @@ -11986,13 +7710,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4002, - customUrl: "idiots-in-chat", - logoUrl: "iLyKPDs1KZwMmhlsLZDtz-1729681101271.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "iLyKPDs1KZwMmhlsLZDtz-1729681101271.webp", avgSeedingSkillOrdinal: 14.113239843848943, }, { @@ -12001,87 +7720,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 46, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733162274, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 40972, - username: "krakhead", - discordId: "696823685558042714", - discordAvatar: "a1ceec221694e56588243237bbb689c7", - customUrl: null, - country: "US", - twitch: "krakhead1", - createdAt: 1733162274, - inGameName: "¡ κrακhεαδ#6781", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42975, - username: "Tang the Tinsel", - discordId: "191861234063245312", - discordAvatar: "773079aee4da45e4d3eaa98b960de789", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1733162328, - inGameName: "¡ Tangy#2745", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20319, - username: "Starcole", - discordId: "320783496035434498", - discordAvatar: "465f3605be46f567b99e1faba3ba5126", - customUrl: null, - country: "US", - twitch: "starcole", - createdAt: 1733167848, - inGameName: "*Starcole#1814", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28054, - username: "C-53", - discordId: "624030760558395393", - discordAvatar: "241ec5c24730532795969c2a6ae14bd9", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733594188, - inGameName: "¡ C-53#1362", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [40972, 42975, 20319, 28054], + ownerUserId: 40972, checkIns: [ { bracketIdx: null, @@ -12089,13 +7734,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3241, - customUrl: "deep-sea-international", - logoUrl: "HiIN4PRs0Co-1y7qXO04x-1721391297952.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "HiIN4PRs0Co-1y7qXO04x-1721391297952.webp", avgSeedingSkillOrdinal: -1.1479382658716273, }, { @@ -12104,87 +7744,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 47, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733367806, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 46245, - username: "LINA", - discordId: "793650519519920139", - discordAvatar: "8ca19dbadc3c93e68ba5e6a00311d806", - customUrl: "angelinakumalo", - country: "US", - twitch: "angelinakumalo", - createdAt: 1733367806, - inGameName: "pen°®»#2456", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46586, - username: "A4Loveletter", - discordId: "1074570819197489285", - discordAvatar: "1ade27fa55f4d522b9e5d9fbff4c1307", - customUrl: "a4loveletter", - country: null, - twitch: "a4loveletter", - createdAt: 1733718486, - inGameName: "ring°®»#3381", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33790, - username: "AkiSweeti", - discordId: "530790657015676938", - discordAvatar: "6a214b9c5082289f076c2d1f0d7a1516", - customUrl: "akisweeti", - country: "GB", - twitch: "akisweeti", - createdAt: 1734040847, - inGameName: "★AkiSweeti#3326", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 18632, - username: "𝔥𝔦𝔫𝔞 |・ω・)", - discordId: "523369644195708928", - discordAvatar: "4e261fd44854e98505cea580dcd3332a", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1734116368, - inGameName: "hina°®»#3244", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [46245, 46586, 33790, 18632], + ownerUserId: 46245, checkIns: [ { bracketIdx: null, @@ -12192,13 +7758,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4120, - customUrl: "octo-rehab", - logoUrl: "V-0kmHyDAXM0FUO1TaT2o-1731624415022.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "V-0kmHyDAXM0FUO1TaT2o-1731624415022.webp", avgSeedingSkillOrdinal: -2.36246286793257, }, { @@ -12207,105 +7768,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 48, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733456080, activeRosterUserIds: [10386, 33369, 29617, 22942], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 34071, - username: "Peace", - discordId: "280531377345265664", - discordAvatar: "fe34f0b8edc0373d819e937353177087", - customUrl: null, - country: "US", - twitch: "peaceful_robin", - createdAt: 1733456080, - inGameName: "SBz☆ Peace#2232", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10386, - username: "DamageOverTime", - discordId: "266348994115010560", - discordAvatar: "7cecef7fc165554505aea6ca2d23ae19", - customUrl: "damage", - country: "US", - twitch: "time_", - createdAt: 1733456082, - inGameName: "S☆Damage#8219", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22942, - username: "mikeycat06", - discordId: "141416142051737600", - discordAvatar: "f2ed1fe58f4d4b35dc718f2e2bea8b1a", - customUrl: null, - country: null, - twitch: "mikeycat1000", - createdAt: 1733456084, - inGameName: "SBz☆Mikey#3048", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33369, - username: "Surimi", - discordId: "652829729593884682", - discordAvatar: "6aa2c580bc7e33b62a287199a02164da", - customUrl: null, - country: "FR", - twitch: null, - createdAt: 1733456085, - inGameName: "SBz☆surimi#6144", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29617, - username: "Matt", - discordId: "417838760466841600", - discordAvatar: "1674c0274bed6b4cb3c9cf7685cfae68", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1733456249, - inGameName: "SBz☆ Matt#3415", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [34071, 10386, 22942, 33369, 29617], + ownerUserId: 22942, checkIns: [ { bracketIdx: null, @@ -12313,13 +7782,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2949, - customUrl: "the-slam-blitzers", - logoUrl: null, - deletedAt: null, - }, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: -3.9789668493097876, }, { @@ -12328,95 +7792,16 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 49, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733579092, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 26089, - username: "イルカ", - discordId: "1055552154938646630", - discordAvatar: "2a19e5929ff2f7a3b9cb0302fd5ba1ee", - customUrl: "dolphin", - country: null, - twitch: null, - createdAt: 1733579092, - inGameName: "∴イルカ∵#2729", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14170, - username: "∴ ナナ ∵", - discordId: "453691040428457986", - discordAvatar: "e4af442de9d216f2aff8bb4975524ad9", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733579098, - inGameName: "∴ナナ∵#1150", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25419, - username: "ShiroZVM", - discordId: "508695953075863585", - discordAvatar: "6bf17a51c7c4c6c088700b400b6ea119", - customUrl: "shirozvm", - country: "US", - twitch: null, - createdAt: 1733579112, - inGameName: "∴ShiroZVM∵#1929", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14413, - username: "lockrai", - discordId: "371714963414450177", - discordAvatar: "354ca1c7664ac9941fc9e71373945cb8", - customUrl: "lockrai", - country: null, - twitch: "lockrai", - createdAt: 1733608177, - inGameName: "becky#3225", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [26089, 14170, 25419, 14413], + ownerUserId: 26089, checkIns: [], - mapPool: [], - team: { - id: 1376, - customUrl: "special-force", - logoUrl: "D_RIdaUVJkcp6ghZJQCzm-1722560589276.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "D_RIdaUVJkcp6ghZJQCzm-1722560589276.webp", avgSeedingSkillOrdinal: -2.36652535639316, }, { @@ -12425,123 +7810,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 50, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733769667, activeRosterUserIds: [3481, 38022, 41269, 43551], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 3481, - username: "Rose 🌹", - discordId: "724366661649563668", - discordAvatar: "0343199f1cba5729736cb10771fe584c", - customUrl: "rosellei", - country: "GB", - twitch: null, - createdAt: 1733769667, - inGameName: "8𝄞Rosellei#9315", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38022, - username: "Lightboy", - discordId: "814885529320423474", - discordAvatar: "2e568a62878fd8501b5e137ef5cb15d1", - customUrl: null, - country: "IE", - twitch: "lightboy71", - createdAt: 1733769672, - inGameName: "8♪Lightboy#3126", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41269, - username: "hannah", - discordId: "1231240601287262269", - discordAvatar: "a_44f58ce89c0f9a33d492ba1159f8736e", - customUrl: "sneakee", - country: "NL", - twitch: "sneakeespl", - createdAt: 1733769675, - inGameName: "「sneakee」#4337", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7935, - username: "Nick27", - discordId: "343894344740241408", - discordAvatar: "253f1433fe2aff3a78fa621bd7c9eb08", - customUrl: "nick27", - country: "IT", - twitch: null, - createdAt: 1733786868, - inGameName: "samy☆#1800", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43856, - username: "Cia 👻", - discordId: "417381687819763713", - discordAvatar: "2eb114ed404ad250678adac4776e698b", - customUrl: "ciaboo", - country: "GB", - twitch: null, - createdAt: 1733787437, - inGameName: "CiaB∞♪#1282", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43551, - username: "Mrpigthe2nd", - discordId: "1201584483728629770", - discordAvatar: "576255a321271a2b51b56723895a7a1a", - customUrl: null, - country: "IE", - twitch: null, - createdAt: 1733871853, - inGameName: "8🎵Mr.pig #3891", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3481, 38022, 41269, 7935, 43856, 43551], + ownerUserId: 3481, checkIns: [ { bracketIdx: null, @@ -12549,13 +7824,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3409, - customUrl: "octaves", - logoUrl: "88XsZ7xy0LPLzIctKDHff-1722168646745.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "88XsZ7xy0LPLzIctKDHff-1722168646745.webp", avgSeedingSkillOrdinal: 1.7504041251246116, }, { @@ -12564,123 +7834,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 51, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733794148, activeRosterUserIds: [22820, 29636, 27036, 28959], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 28959, - username: "Juancho1782", - discordId: "707620991500550235", - discordAvatar: "4742bb1e8d89326d223a759b76f6e3b2", - customUrl: "juancho1782", - country: "CO", - twitch: null, - createdAt: 1733794148, - inGameName: "⁀Juancho、#7824", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27036, - username: "Ace Astro", - discordId: "902654458335473675", - discordAvatar: "dd0b28da0009d5bec0533fd24f13aa62", - customUrl: "aceastro", - country: "US", - twitch: "aceastro22", - createdAt: 1733794151, - inGameName: "⁀Ace Astro#2380", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22820, - username: "jayjay", - discordId: "974080588246048768", - discordAvatar: "997211f9d2f54c39c968ad8433e8d7a2", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733794153, - inGameName: "⌒jay、#2743", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28021, - username: "rascal", - discordId: "262433544142323713", - discordAvatar: "295c83a8f4969100fae3342d421b439e", - customUrl: "rascalgator", - country: "US", - twitch: null, - createdAt: 1733794154, - inGameName: "⁀rascal、#1280", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1890, - username: "StarShower", - discordId: "543915575257202698", - discordAvatar: "47f0135ceee53090ca0a178eea1730c5", - customUrl: "starshower", - country: "US", - twitch: "starshowerespoir", - createdAt: 1733794165, - inGameName: "StarShower#1551", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29636, - username: "TerrariaIsBest", - discordId: "674384514554003466", - discordAvatar: "d7445637e35a5ff411f999c746faad64", - customUrl: "terrarian", - country: "US", - twitch: null, - createdAt: 1733794167, - inGameName: "⁀Terra、#1345", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [28959, 27036, 22820, 28021, 1890, 29636], + ownerUserId: 28959, checkIns: [ { bracketIdx: null, @@ -12688,13 +7848,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3779, - customUrl: "tide-breaker", - logoUrl: "71m7tq59Jsk4queH0i6Js-1727134294339.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "71m7tq59Jsk4queH0i6Js-1727134294339.webp", avgSeedingSkillOrdinal: 3.9253030778554248, }, { @@ -12703,87 +7858,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 52, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733820540, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-t2-mrQNINFqIoFNYuxbmW-1733820600291.webp", - members: [ - { - userId: 35310, - username: "ℵₒYuyu", - discordId: "309327923129745409", - discordAvatar: "0860a95be2688db98db415cd3b5a61ba", - customUrl: "yuri_hana", - country: "FR", - twitch: "yuyugd", - createdAt: 1733820540, - inGameName: "χ。 Yuyu#2869", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21989, - username: "Kyopon", - discordId: "689451152382754898", - discordAvatar: "a_a59b820f10bab0a7bfb9cd9784793d05", - customUrl: "kyopon", - country: "FR", - twitch: null, - createdAt: 1733820548, - inGameName: "K#1858a", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25242, - username: "Sigma727", - discordId: "420485156839882754", - discordAvatar: "03d632dad255231d030aae4d0c93a05f", - customUrl: "cronik", - country: "IT", - twitch: "cronik_osu", - createdAt: 1733820554, - inGameName: "Sigma727#2127", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43081, - username: "ƒ(x) Eli", - discordId: "1186351064690204686", - discordAvatar: "e8e4d64681b101288918df2e60c75f17", - customUrl: null, - country: null, - twitch: null, - createdAt: 1734119153, - inGameName: "f(x)Eli#1434", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [35310, 21989, 25242, 43081], + ownerUserId: 35310, checkIns: [ { bracketIdx: null, @@ -12791,8 +7872,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-t2-mrQNINFqIoFNYuxbmW-1733820600291.webp", avgSeedingSkillOrdinal: -1.9855652773268901, }, { @@ -12801,87 +7882,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 53, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733825084, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 4334, - username: "Roxymoron", - discordId: "635209020160081920", - discordAvatar: "d5b0f31c46ea4e0ae8053a75efffe154", - customUrl: "roxymoron", - country: "US", - twitch: null, - createdAt: 1733825084, - inGameName: "240 ˚ Roxy #2267", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24252, - username: "puddi", - discordId: "462327161630752769", - discordAvatar: "5da42ba1b95bb673a6fcad4f87d92d77", - customUrl: "puddi", - country: "US", - twitch: "puddibow", - createdAt: 1733825092, - inGameName: "puddi#1261", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32444, - username: "Nelus", - discordId: "1119782476966015048", - discordAvatar: "35aa5852bb6b33e987cfbf423475d578", - customUrl: "kore_nelus", - country: "CA", - twitch: "kore_nelus", - createdAt: 1733825098, - inGameName: "320°nelus#2340", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36113, - username: "ℕ𝕠𝕧𝕒 𝕤𝕥𝕒𝕣", - discordId: "1175647061027340370", - discordAvatar: "72e016e52a2f8cec9db2596df0f57ac2", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733825102, - inGameName: "106*Nova#6620", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [4334, 24252, 32444, 36113], + ownerUserId: 4334, checkIns: [ { bracketIdx: null, @@ -12889,13 +7896,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4099, - customUrl: "inferno", - logoUrl: "GW7PNVN9aw-VaSLSE7vS0-1731797632741.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "GW7PNVN9aw-VaSLSE7vS0-1731797632741.webp", avgSeedingSkillOrdinal: 8.223082457581194, }, { @@ -12904,105 +7906,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 54, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733865890, activeRosterUserIds: [15425, 41975, 28938, 8587], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 15425, - username: "LPpikachu", - discordId: "318024383438520320", - discordAvatar: "a_1f96835fa2107875ca271183d0bd5101", - customUrl: "lppikachu", - country: "CH", - twitch: "lppikachu2001", - createdAt: 1733865890, - inGameName: "★ŁPρīᴋα₵нʊ#4923", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27828, - username: "◇Nao◇", - discordId: "380724691997949953", - discordAvatar: "cef11ec358ca075049ac2b54802dea67", - customUrl: null, - country: "DE", - twitch: "xdark_ciax", - createdAt: 1733865934, - inGameName: "mş◇Nao◇#1197", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41975, - username: "Noswet", - discordId: "776728243616612393", - discordAvatar: "9a3917119706628feacef40d2b40fa67", - customUrl: null, - country: "DE", - twitch: null, - createdAt: 1733866368, - inGameName: "mş◇noswet#3230", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28938, - username: "Gamer_59", - discordId: "1027261470729314375", - discordAvatar: "552e5c8a7e3c90f5f5d2065628f22733", - customUrl: "gamer_59", - country: "DE", - twitch: null, - createdAt: 1733866415, - inGameName: "mş◇Femboy#2761", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8587, - username: "Vytalic", - discordId: "505832570521649152", - discordAvatar: "d802da2cc51ba4d0a8fa1cdde5c39e43", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1734198266, - inGameName: "ミ》Vγτãłîç#3075", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [15425, 27828, 41975, 28938, 8587], + ownerUserId: 15425, checkIns: [ { bracketIdx: null, @@ -13010,13 +7920,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 924, - customUrl: "moonslice", - logoUrl: "rDNlrxvnACJ-AGBcnBljT-1683966126118.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "rDNlrxvnACJ-AGBcnBljT-1683966126118.webp", avgSeedingSkillOrdinal: -3.552225799948411, }, { @@ -13025,123 +7930,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 55, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733873149, activeRosterUserIds: [40550, 7115, 29674, 30031], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 40550, - username: "Smolie", - discordId: "523656457497870336", - discordAvatar: "e179ae603fffe64b7eb8daae5f582ed0", - customUrl: null, - country: "US", - twitch: "smolitvoids", - createdAt: 1733873149, - inGameName: "⁰³ Smolie#2959", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7115, - username: "°³Xylophonia", - discordId: "403582600163360780", - discordAvatar: "094b1eaee478b1e0a06f04c2a84ee85a", - customUrl: "xylophonia", - country: "US", - twitch: null, - createdAt: 1733873154, - inGameName: "°³Xyюfonia#2523", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29674, - username: "Crescent", - discordId: "593575792076652545", - discordAvatar: "549f1db5164c9fb28be24c82b74d9d1d", - customUrl: null, - country: "US", - twitch: "crescent_moore", - createdAt: 1733873160, - inGameName: "°³Crescent#2342", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 39569, - username: "Joryu", - discordId: "532981806413119508", - discordAvatar: "e725dcf2f9a20f56492896385fd454f7", - customUrl: "joryu", - country: null, - twitch: null, - createdAt: 1733873164, - inGameName: "°³ Joryu#2761", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30031, - username: "「Hudsonic502」", - discordId: "275066705569382410", - discordAvatar: "a_c5294e7a582b11e7b3178caa1f401cba", - customUrl: "hudsonic", - country: "US", - twitch: "hudsonictv", - createdAt: 1734059096, - inGameName: "°³Hudsonic#1758", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28866, - username: "°³ ★DonQui ★#3798", - discordId: "833407376421814284", - discordAvatar: "2b31adfedf9a84d3de05aeb31cf2ac46", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1734059098, - inGameName: "heathcliff#2173", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [40550, 7115, 29674, 39569, 30031, 28866], + ownerUserId: 40550, checkIns: [ { bracketIdx: null, @@ -13149,13 +7944,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2671, - customUrl: "splatscad-orange", - logoUrl: "3kOrJZqXncynZ-qBRXmXH-1711746681007.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "3kOrJZqXncynZ-qBRXmXH-1711746681007.webp", avgSeedingSkillOrdinal: -0.8101768723884282, }, { @@ -13164,87 +7954,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 56, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733875608, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 15110, - username: "DHVF", - discordId: "723172867893887107", - discordAvatar: "ce25cf0fc3ec0465f5ed5a20605b66ff", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733875608, - inGameName: "ЯГ DHVF#2103", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33824, - username: "ЯГdemondaz", - discordId: "1103094974628761620", - discordAvatar: "849de175b8e870c91c1849d885ccc8ec", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733875614, - inGameName: "ЯГdemONdaz#1133", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35608, - username: "present", - discordId: "442814939229585408", - discordAvatar: "d791eef91ce410c9d090aee2742d6d70", - customUrl: null, - country: "US", - twitch: "present_loves_sope", - createdAt: 1733875621, - inGameName: "ЯГ^catboy^#2774", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22677, - username: "Enoki", - discordId: "275701398790733825", - discordAvatar: "ec73b86c408c8e175677f575d10681ec", - customUrl: "enokitake", - country: "US", - twitch: null, - createdAt: 1733875625, - inGameName: "ЯГ Enoki#6301", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [15110, 33824, 35608, 22677], + ownerUserId: 15110, checkIns: [ { bracketIdx: null, @@ -13252,13 +7968,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2130, - customUrl: "reignfall", - logoUrl: "i0sn43uSr4VcmZTPbNqW0-1728083290870.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "i0sn43uSr4VcmZTPbNqW0-1728083290870.webp", avgSeedingSkillOrdinal: 6.128352408228365, }, { @@ -13267,87 +7978,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 57, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733888417, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-c9a1igcMT4m2otyRdTs_0-1733888672873.webp", - members: [ - { - userId: 26269, - username: "Void!", - discordId: "464200539442511922", - discordAvatar: "3198face7533d0c90ea3ace41eb8e897", - customUrl: "fearless", - country: "US", - twitch: null, - createdAt: 1733888417, - inGameName: "C ☆VOID#1573", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30030, - username: "Blixout209", - discordId: "789883221524611082", - discordAvatar: "fd79e08a120f2ca08f0626389b9ef6d1", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733888595, - inGameName: "Blixout #2868", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21454, - username: "Miz!", - discordId: "850652270969618433", - discordAvatar: "8f1b83a536e86f6b9c1f2108d69f6e8e", - customUrl: "mizuyu", - country: "AE", - twitch: null, - createdAt: 1733924130, - inGameName: "C☆Mizuyu#1106", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42483, - username: "En", - discordId: "1112782629150916688", - discordAvatar: "b767a2eebce5d63b6810a4a7d86bf37d", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733932409, - inGameName: "C☆ ᗴnzo#2034", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [26269, 30030, 21454, 42483], + ownerUserId: 26269, checkIns: [ { bracketIdx: null, @@ -13355,8 +7992,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-c9a1igcMT4m2otyRdTs_0-1733888672873.webp", avgSeedingSkillOrdinal: 0.4682437836627621, }, { @@ -13365,105 +8002,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 58, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734008857, activeRosterUserIds: [30266, 37341, 22699, 28145], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 30266, - username: "Tipo", - discordId: "1006710260263825468", - discordAvatar: "89257a0ac1a80ff5a7eb09560488d58d", - customUrl: "sleepyhead", - country: "US", - twitch: null, - createdAt: 1734008857, - inGameName: "ØĐ Tipo#2728", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37341, - username: "BrightBees", - discordId: "1189613098429075558", - discordAvatar: "1c4c7c6d69d0fc5e39da550d35bd46ed", - customUrl: "beeschurger", - country: "US", - twitch: null, - createdAt: 1734008860, - inGameName: "ØÐ Bees#7729", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22699, - username: "Giraffe05", - discordId: "788087977128624159", - discordAvatar: "6d114c402dccbabff8f39ff9796c27c7", - customUrl: "giraffe05", - country: "US", - twitch: null, - createdAt: 1734008861, - inGameName: "ØÐ Giraffe#1937", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28145, - username: "Madman46i", - discordId: "862732702360928286", - discordAvatar: "24cd818473330cd9316c2e74b451e5ad", - customUrl: "madman46i", - country: "US", - twitch: null, - createdAt: 1734008862, - inGameName: "ØĐ Madman#1438", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 39363, - username: "SMGalactic", - discordId: "874765789905948715", - discordAvatar: "565e1c39bd7c3bfbf42e68543f371cd7", - customUrl: null, - country: "US", - twitch: "smgalacticyt", - createdAt: 1734008862, - inGameName: "SMGalactic#2705", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30266, 37341, 22699, 28145, 39363], + ownerUserId: 30266, checkIns: [ { bracketIdx: null, @@ -13471,13 +8016,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1602, - customUrl: "overdive", - logoUrl: "cY8Zp6QjCUNNrapRvT4UD-1695509201401.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "cY8Zp6QjCUNNrapRvT4UD-1695509201401.webp", avgSeedingSkillOrdinal: 11.017664721280145, }, { @@ -13486,87 +8026,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 59, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734018352, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 34147, - username: "MonoGray", - discordId: "336253949839540236", - discordAvatar: "6f060bdafc2874cb1039d6ba324f26a8", - customUrl: "monogray", - country: "US", - twitch: null, - createdAt: 1734018352, - inGameName: ">つ Gray#2584", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20990, - username: "maruru", - discordId: "579365441844281364", - discordAvatar: "81ddc3ed1474a619d6b1a50d94a7a542", - customUrl: "maruru", - country: "US", - twitch: "c0rnsyrup_", - createdAt: 1734018468, - inGameName: "peepeepoop#1111", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22469, - username: "ari ఌ", - discordId: "342478310267289600", - discordAvatar: "6bc1be463c33e45fb855498bd4613170", - customUrl: "ari", - country: "US", - twitch: null, - createdAt: 1734018744, - inGameName: ">つ ari#6831", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41594, - username: "Aris", - discordId: "1254697686800531492", - discordAvatar: "187e14505d70a782f3c388f4efe42b7e", - customUrl: "flamingaris", - country: "FR", - twitch: "flamingaris", - createdAt: 1734018745, - inGameName: "Aris!#3219", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [34147, 20990, 22469, 41594], + ownerUserId: 34147, checkIns: [ { bracketIdx: null, @@ -13574,13 +8040,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4054, - customUrl: "fish-paste", - logoUrl: "RC9Y8kzop6BtW8JewaYkq-1731073874001.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "RC9Y8kzop6BtW8JewaYkq-1731073874001.webp", avgSeedingSkillOrdinal: 1.23482177726168, }, { @@ -13589,123 +8050,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 60, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734019701, activeRosterUserIds: [35421, 33524, 22500, 32802], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-u4oKxXYjamTXZ1x-bgNFp-1734019701188.webp", - members: [ - { - userId: 32802, - username: "DERLEON", - discordId: "673854669516308510", - discordAvatar: "ba69a83cad3ad3ba875e6b0d91e8d064", - customUrl: "derleon", - country: "DE", - twitch: null, - createdAt: 1734019701, - inGameName: "1κ DERLEON#2716", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35421, - username: "RizzmasCat", - discordId: "1168981487601860699", - discordAvatar: "a888d3239542b6f0cd8d1771388cb0d7", - customUrl: null, - country: "DE", - twitch: null, - createdAt: 1734019708, - inGameName: "∴FATcat∵#9026", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33524, - username: "Wunini", - discordId: "569271521776762896", - discordAvatar: "a4b0ab742ba9f94ba49420496beb59e3", - customUrl: null, - country: "DE", - twitch: "wunini_", - createdAt: 1734019712, - inGameName: "∴Wunini∵#3998", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22500, - username: "N", - discordId: "526132017838948352", - discordAvatar: "1c3fce0a8f3ac0f9e981b3b394bf2eba", - customUrl: "nderechte", - country: "DE", - twitch: "nderechte_", - createdAt: 1734021864, - inGameName: "N#2648", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42081, - username: "JuliDuli", - discordId: "1055377351199961108", - discordAvatar: "65acb2a911caa1641b143601e957bf05", - customUrl: null, - country: "JP", - twitch: "6juliduli9", - createdAt: 1734105680, - inGameName: "∴JuliDuli∵#1274", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20063, - username: "Froody", - discordId: "693508072391311450", - discordAvatar: "1856ed2d28de4ece5aff26331e9d4d6c", - customUrl: "djfroody", - country: "DE", - twitch: "djfroody", - createdAt: 1734105830, - inGameName: "moo Froody#2483", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [32802, 35421, 33524, 22500, 42081, 20063], + ownerUserId: 32802, checkIns: [ { bracketIdx: null, @@ -13713,8 +8064,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-u4oKxXYjamTXZ1x-bgNFp-1734019701188.webp", avgSeedingSkillOrdinal: 5.287464928011563, }, { @@ -13723,105 +8074,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 61, prefersNotToHost: 1, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734023441, activeRosterUserIds: [1852, 2898, 25763, 3466], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 1852, - username: "magnanimousmilk", - discordId: "353768144294379520", - discordAvatar: "5d2ee66713124a89dea816c9f0b9534a", - customUrl: "magnanimousmilk", - country: "US", - twitch: "magnanimousmilk", - createdAt: 1734023441, - inGameName: "κs/Milk#1291", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2898, - username: "Camo", - discordId: "175010806776201216", - discordAvatar: "b7922fcee42b30701dc213be5372b3f6", - customUrl: "camo", - country: "US", - twitch: null, - createdAt: 1734023445, - inGameName: "κs/Camo#7584", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25763, - username: "mart", - discordId: "392482276841357314", - discordAvatar: "ba02eaef4ec2ba5d59329c063b00789b", - customUrl: "mart", - country: "US", - twitch: null, - createdAt: 1734023449, - inGameName: "κs/mart#8857", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3466, - username: "NovaTide", - discordId: "395415903120130048", - discordAvatar: "4ae6ed002f15b66d70619835c7b837ea", - customUrl: null, - country: "US", - twitch: "novatide21", - createdAt: 1734023452, - inGameName: "κs/Nova#1858", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34662, - username: "gingersn4pp", - discordId: "282976701158391809", - discordAvatar: "293ad599e80a9a7e8336938658604a9e", - customUrl: null, - country: "US", - twitch: "gingersn4pp", - createdAt: 1734023471, - inGameName: "ks×Arlo#3183", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [1852, 2898, 25763, 3466, 34662], + ownerUserId: 1852, checkIns: [ { bracketIdx: null, @@ -13829,13 +8088,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 612, - customUrl: "krill-streak", - logoUrl: "FYxpIPdFhvYOuwmgeCpDL-1695090715809.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "FYxpIPdFhvYOuwmgeCpDL-1695090715809.webp", avgSeedingSkillOrdinal: 5.521241881934206, }, { @@ -13844,105 +8098,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 62, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734099744, activeRosterUserIds: [39098, 22624, 28137, 2769], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 2769, - username: "DblCookies", - discordId: "229636674215346176", - discordAvatar: "711d692ca2bb0381250f8a8e479fc2b0", - customUrl: "dblcookies", - country: null, - twitch: null, - createdAt: 1734099744, - inGameName: "DblCookies#1157", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7461, - username: "Asri", - discordId: "553653885110321192", - discordAvatar: "11e187d5881ef7e59dcf405c79f98aae", - customUrl: "asri", - country: "RU", - twitch: null, - createdAt: 1734099747, - inGameName: "FFA Asri#1196", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 39098, - username: "Hinata🍊", - discordId: "860613155888562216", - discordAvatar: "8083f6cc3823c247cdf3cf45d281d2f3", - customUrl: null, - country: "RU", - twitch: null, - createdAt: 1734099748, - inGameName: "MLG VESNA#1357", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22624, - username: "Хлебушек", - discordId: "485120250640072735", - discordAvatar: "27d5207ddf81297b6bd3c4a427c03a48", - customUrl: null, - country: "RU", - twitch: null, - createdAt: 1734099751, - inGameName: "Хлебушек#2205", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28137, - username: "⭐Pitoy", - discordId: "630834387755204625", - discordAvatar: "53fc42f257d8447781e715536aeefb24", - customUrl: "pitoy", - country: "RU", - twitch: "ipitoy", - createdAt: 1734099753, - inGameName: "⭐Pitoy#1990", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [2769, 7461, 39098, 22624, 28137], + ownerUserId: 2769, checkIns: [ { bracketIdx: null, @@ -13950,13 +8112,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 218, - customUrl: "ewfish", - logoUrl: "rFHubwY2nMT_9D6ixJPcS-1673949437993.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "rFHubwY2nMT_9D6ixJPcS-1673949437993.webp", avgSeedingSkillOrdinal: 5.656051300010121, }, { @@ -13965,123 +8122,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 63, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734109256, activeRosterUserIds: [29661, 15158, 35067, 31655], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-An13SrR78qDNIM2t95ujb-1734109256283.webp", - members: [ - { - userId: 15158, - username: "Marc", - discordId: "692063838803066971", - discordAvatar: "d302ec1c7b4d2bef5711c767c6b343a7", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1734109256, - inGameName: "Mαrc ★#2004", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29661, - username: "Oydamer", - discordId: "715819364611522573", - discordAvatar: "19959a3666f07664d4767b9078c06959", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1734109262, - inGameName: "Oydα!★#2446", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10333, - username: "Shogunyan333", - discordId: "837728997022498938", - discordAvatar: "e05b9f4f51f78c4e2adc7e39a3f0ff39", - customUrl: null, - country: "ES", - twitch: "shogunyan333", - createdAt: 1734109264, - inGameName: "Shogunyan★#1907", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35067, - username: "AleXviC", - discordId: "396080097771257867", - discordAvatar: "d7a3ec94bbad284f82e673b86e2c60f6", - customUrl: null, - country: "ES", - twitch: "alexzanderviar", - createdAt: 1734115341, - inGameName: "メи αlεχvιç#9786", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31655, - username: "Nite/Nesquik", - discordId: "884946995704377344", - discordAvatar: "a95b385080b9704085464fa40801c426", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1734118067, - inGameName: "α▽Nite! ツ#1126", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40743, - username: "尼諾", - discordId: "1011776865666601042", - discordAvatar: "6c66fa6d042f40c67a49e127776e76fe", - customUrl: "nino", - country: "ES", - twitch: null, - createdAt: 1734118251, - inGameName: "Bkl#3359", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [15158, 29661, 10333, 35067, 31655, 40743], + ownerUserId: 15158, checkIns: [ { bracketIdx: null, @@ -14089,8 +8136,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-An13SrR78qDNIM2t95ujb-1734109256283.webp", avgSeedingSkillOrdinal: 2.807063387896238, }, { @@ -14099,123 +8146,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 64, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734125682, activeRosterUserIds: [36575, 30425, 32430, 24290], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 30425, - username: "Painter", - discordId: "344039723515510785", - discordAvatar: null, - customUrl: "painter", - country: "DE", - twitch: null, - createdAt: 1734125682, - inGameName: "zм Painter#1599", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32430, - username: "bandana waddle dee", - discordId: "813795527232847882", - discordAvatar: "8cc4ec0fab130b0a861a6f2d5f955a10", - customUrl: "fan", - country: "PL", - twitch: null, - createdAt: 1734125687, - inGameName: "zм fan★アハト#9121", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26701, - username: "Cinnaluna☁🍂", - discordId: "721944960055902249", - discordAvatar: "cffa2c204b86ffad8dec31e488aa5da8", - customUrl: "cinnaluna_", - country: "PH", - twitch: null, - createdAt: 1734125692, - inGameName: "zм★Cinna#3115", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30584, - username: "eggs♪", - discordId: "1138538770560462968", - discordAvatar: "098a29a5514dbf2c5eda78425dae2c75", - customUrl: "eggs", - country: "CN", - twitch: "other_egg", - createdAt: 1734125694, - inGameName: "zм eggs♪#2417", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24290, - username: "Kensa", - discordId: "492081280327090186", - discordAvatar: "026da1f4078cd48eeb1844712fa86de4", - customUrl: "kensa", - country: "US", - twitch: null, - createdAt: 1734125695, - inGameName: "zмKensa™#3419", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36575, - username: "lumi_nn", - discordId: "1073908950195511296", - discordAvatar: "664c1a8e2ae3942ad2aa72f60f1c86cb", - customUrl: null, - country: "DE", - twitch: null, - createdAt: 1734125696, - inGameName: "zм lumi★#2628", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30425, 32430, 26701, 30584, 24290, 36575], + ownerUserId: 30425, checkIns: [ { bracketIdx: null, @@ -14223,13 +8160,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1230, - customUrl: "zero-magnum", - logoUrl: "HTVXcvhYXDxLnoPaD4puu-1690044779679.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "HTVXcvhYXDxLnoPaD4puu-1690044779679.webp", avgSeedingSkillOrdinal: -0.6635628411464888, }, { @@ -14238,87 +8170,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 65, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733515005, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 25543, - username: "Lucky☆", - discordId: "593825111933583403", - discordAvatar: "32571a6a06e6773854fa91a7009fc06f", - customUrl: "luckyy718", - country: "FR", - twitch: null, - createdAt: 1733515005, - inGameName: "[L]ucky☆#2554", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36921, - username: "Melon Musk", - discordId: "840898098220761108", - discordAvatar: "f919beda89616d037580c12f26f217a4", - customUrl: "melonmusk", - country: "FR", - twitch: null, - createdAt: 1733515009, - inGameName: "melon musk#2999", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37563, - username: "Oβιiνiση★※", - discordId: "1029797563735478342", - discordAvatar: "b4febda861a02b93e01b512f912bb899", - customUrl: null, - country: "FR", - twitch: "oblivion_neon", - createdAt: 1733515013, - inGameName: "Oβιiνiση★※#9105", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37665, - username: "BURGER", - discordId: "719491875907698749", - discordAvatar: "be06e976efb06958e38e5079a5e4fca0", - customUrl: null, - country: "FR", - twitch: null, - createdAt: 1733515016, - inGameName: "SteveRoger#6300", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25543, 36921, 37563, 37665], + ownerUserId: 25543, checkIns: [ { bracketIdx: null, @@ -14326,13 +8184,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3502, - customUrl: "citronnade", - logoUrl: "WcGwSWAMMvADbnWhh88aJ-1723590240835.webp", - deletedAt: 1734302144, - }, + hasMapPool: false, + logoUrl: "WcGwSWAMMvADbnWhh88aJ-1723590240835.webp", avgSeedingSkillOrdinal: -2.06563905175954, }, { @@ -14341,105 +8194,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 66, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733521735, activeRosterUserIds: [44772, 38912, 36853, 42599], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 44772, - username: "Pre", - discordId: "166644936047853568", - discordAvatar: "ce8dfb1309a8cc2958d8f3ba8b0c7b09", - customUrl: "pre", - country: "CA", - twitch: null, - createdAt: 1733521735, - inGameName: "ζ☆Pre#2676", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38912, - username: "Cyanide☆", - discordId: "501848052563443732", - discordAvatar: "9cb4007148f45cef2c3aa6df4ff664a7", - customUrl: "cyanidesplatoon", - country: null, - twitch: null, - createdAt: 1733521737, - inGameName: "cyanide☆#1025", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23357, - username: "Shiber", - discordId: "906707094739238963", - discordAvatar: "0f50036e1d6cc58c3b22c5fbd55e0177", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733521742, - inGameName: "ζ☆Shiber#1520", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36853, - username: "Turtle", - discordId: "602695036500574210", - discordAvatar: "66d3fb8a2ef3e8035df15ac7b3683143", - customUrl: null, - country: "US", - twitch: "poji_uwu", - createdAt: 1733521744, - inGameName: "ζ☆Turtle#3399", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42599, - username: "Scruffy", - discordId: "1234603867769929771", - discordAvatar: "bad775611aead0d038738918267e734f", - customUrl: "scruffy", - country: "US", - twitch: null, - createdAt: 1734062084, - inGameName: "し-Scruffy#2981", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [44772, 38912, 23357, 36853, 42599], + ownerUserId: 44772, checkIns: [ { bracketIdx: null, @@ -14447,13 +8208,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4072, - customUrl: "milkyway", - logoUrl: "YCXIdevXnBBwc-mGtlTJd-1730642259448.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "YCXIdevXnBBwc-mGtlTJd-1730642259448.webp", avgSeedingSkillOrdinal: -0.9234733707844281, }, { @@ -14462,87 +8218,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 67, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733525617, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 11783, - username: "SilverTusk", - discordId: "594602760670806029", - discordAvatar: "56e8c255c8d597a6b961d9fdcc1c5ac4", - customUrl: "silvertusk", - country: "US", - twitch: null, - createdAt: 1733525617, - inGameName: "«!» Silver#3048", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21818, - username: "jamer", - discordId: "660359813871566859", - discordAvatar: "44f3d458b26d00a75f4d101b4042aaad", - customUrl: "squibinator", - country: "US", - twitch: null, - createdAt: 1733525636, - inGameName: "«!» jamer#2432", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22991, - username: "オクシーoxii", - discordId: "386971721359556621", - discordAvatar: "098bef9d1e595b6aa7629a98822f6619", - customUrl: "oxiicleandotcom", - country: "US", - twitch: "oxiicleab", - createdAt: 1733525638, - inGameName: "«!» oxii#1863", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2266, - username: "Show-", - discordId: "524114794178019328", - discordAvatar: "94b97e3bb2d4cdac8b59821f157af52a", - customUrl: "show-", - country: "US", - twitch: "show_spl", - createdAt: 1733550589, - inGameName: "«!» Show-#3347", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11783, 21818, 22991, 2266], + ownerUserId: 11783, checkIns: [ { bracketIdx: null, @@ -14550,13 +8232,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3599, - customUrl: "crisis-averted", - logoUrl: "xdjopiwoQvO2QdheuMBvU-1725600196168.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "xdjopiwoQvO2QdheuMBvU-1725600196168.webp", avgSeedingSkillOrdinal: 6.131536948897647, }, { @@ -14565,105 +8242,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 68, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733847805, activeRosterUserIds: [33615, 32015, 45778, 32970], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 33615, - username: "Gyrum?", - discordId: "452545635472637953", - discordAvatar: "6048e40b9b0935b9a3eb0e34b321a87e", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733847805, - inGameName: "|+| Gyrum?#1429", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32015, - username: "goldie", - discordId: "597140815625846824", - discordAvatar: "6b68590e9242c71ba7ff6f9f02c5616c", - customUrl: null, - country: null, - twitch: "barkwoofwowow", - createdAt: 1733847808, - inGameName: "|+| goldie#1823", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30663, - username: "horseshoe", - discordId: "772208638399479818", - discordAvatar: "6ea9f4c0d0260e5ed9300c540e91c761", - customUrl: null, - country: null, - twitch: null, - createdAt: 1733847813, - inGameName: "l+lRegret#9365", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45778, - username: "KO", - discordId: "1297671901883142286", - discordAvatar: "6c4a02267435ff671d203a73e4041e2f", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1733847820, - inGameName: "|+| KO#7634", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32970, - username: "hi lol", - discordId: "754188663147200565", - discordAvatar: "2fd53caee851851af1bd6340507a2500", - customUrl: "hi_lol", - country: "US", - twitch: null, - createdAt: 1733847825, - inGameName: "hi lol#1052", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [33615, 32015, 30663, 45778, 32970], + ownerUserId: 33615, checkIns: [ { bracketIdx: null, @@ -14671,13 +8256,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3260, - customUrl: "the-british-empire", - logoUrl: "Cfyv-Qht8xzTdpm1aMEF--1729051667691.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "Cfyv-Qht8xzTdpm1aMEF--1729051667691.webp", avgSeedingSkillOrdinal: -5.534960700906551, }, { @@ -14686,105 +8266,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 69, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733858126, activeRosterUserIds: [34545, 35567, 41108, 41255], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 41255, - username: "JoshI", - discordId: "310123279593766914", - discordAvatar: "55bbe9511b20e45ed324c9800c12d48c", - customUrl: "joshi", - country: "DE", - twitch: "joshelboshel", - createdAt: 1733858126, - inGameName: "☐ JoshI#3168", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35567, - username: "Koyomi onii-chan", - discordId: "418504875408621579", - discordAvatar: "b67e7da5dee87052ae05ec8cead0e683", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1733858131, - inGameName: "☐ Koyomi#8668", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41108, - username: "VVu", - discordId: "252829724215083008", - discordAvatar: "a_c85bc3596822c764aa6995ed86e2774e", - customUrl: "vvu", - country: "DE", - twitch: null, - createdAt: 1733858133, - inGameName: "☐ √VVu#1515", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34545, - username: "Wonkels", - discordId: "446621719822729216", - discordAvatar: "f7f3249c4eccffe8befc16ab61bdc4d1", - customUrl: null, - country: "NL", - twitch: null, - createdAt: 1733858134, - inGameName: "☐ Womkel#1682", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26564, - username: "初音ミク", - discordId: "785164793232752640", - discordAvatar: "67db17957493de3713fa771eca7a884d", - customUrl: "touhoufan404", - country: "NL", - twitch: "jelly_the_yandere", - createdAt: 1733858136, - inGameName: "☐Jelly...#3387", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [41255, 35567, 41108, 34545, 26564], + ownerUserId: 41255, checkIns: [ { bracketIdx: null, @@ -14792,13 +8280,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3957, - customUrl: "pixel-per-ink", - logoUrl: "w_6_oDuz4kPDNwFOkiugk-1729433022180.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "w_6_oDuz4kPDNwFOkiugk-1729433022180.webp", avgSeedingSkillOrdinal: 2.684362163348299, }, { @@ -14807,105 +8290,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 70, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733966096, activeRosterUserIds: [39470, 42874, 32878, 25741], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 10788, - username: "Tom / LimnL", - discordId: "918166984921858098", - discordAvatar: "9330b5b5d1ea0ba83d57a898a4e2fc24", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1733966096, - inGameName: "§ LimnL#1167", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25741, - username: "Toast", - discordId: "797289292808454174", - discordAvatar: "058e0b514530bccafdfd73e46fccd479", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733966173, - inGameName: "Toast!#9282", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42874, - username: "rian_shade", - discordId: "873380849075249173", - discordAvatar: "61e8d0bbd3518286405870ee5a5585e0", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733966255, - inGameName: "QS§ shade#8976", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 39470, - username: "Koiia", - discordId: "1202719493583929414", - discordAvatar: "60ce5becd2c577e3350c85dd3ecb7333", - customUrl: "koiia", - country: "DK", - twitch: "koiia_", - createdAt: 1733995042, - inGameName: "Vi♪#2860", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32878, - username: "rzor", - discordId: "1136820403562627234", - discordAvatar: "2fba2eedf00888c2fe763277ea28c08f", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1734008017, - inGameName: "§ rzor#3175", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [10788, 25741, 42874, 39470, 32878], + ownerUserId: 10788, checkIns: [ { bracketIdx: null, @@ -14913,13 +8304,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2881, - customUrl: "paladins", - logoUrl: "1KdT9Pp_9zSCFSDOTW9gP-1732752273998.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "1KdT9Pp_9zSCFSDOTW9gP-1732752273998.webp", avgSeedingSkillOrdinal: -3.497590044951734, }, { @@ -14928,105 +8314,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 71, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734021147, activeRosterUserIds: [45250, 45174, 6976, 10222], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-v3boyVjbFsTyMlQylz4Dn-1734021152539.webp", - members: [ - { - userId: 45250, - username: "Pokelynx", - discordId: "867894125852753943", - discordAvatar: "3e5432961ae173f06368774f5a48f783", - customUrl: "pokelynx", - country: "DK", - twitch: null, - createdAt: 1734021147, - inGameName: "⊂²⊃Lynx#2645", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45174, - username: "Bisc", - discordId: "601827323267907584", - discordAvatar: "d597f9ea0968e0cef90bd49801c1c920", - customUrl: "biscuit", - country: "PL", - twitch: null, - createdAt: 1734021215, - inGameName: "⊂²⊃Bisc#2044", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10222, - username: "despair", - discordId: "451988308709605377", - discordAvatar: "92c663b143b3f5543444bfa792811c95", - customUrl: "despairdotwav", - country: "GB", - twitch: null, - createdAt: 1734021280, - inGameName: "⊂²⊃Despair#2742", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6976, - username: "Camexrn", - discordId: "707516160572129290", - discordAvatar: "a_ae2089588cb07209782456386de10467", - customUrl: "camexrn", - country: "GB", - twitch: "camexrn", - createdAt: 1734031699, - inGameName: "⊂²⊃Camexrn#9414", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46504, - username: "J", - discordId: "729812057679200327", - discordAvatar: "884f627b2df1088acdf451d6e823c46c", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1734032940, - inGameName: "⊂²⊃ J#1795", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [45250, 45174, 10222, 6976, 46504], + ownerUserId: 45250, checkIns: [ { bracketIdx: null, @@ -15034,13 +8328,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4225, - customUrl: "baguette-squad", - logoUrl: null, - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "pickup-logo-v3boyVjbFsTyMlQylz4Dn-1734021152539.webp", avgSeedingSkillOrdinal: -3.648677156823137, }, { @@ -15049,87 +8338,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 73, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734040772, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-Jx6JnhFJQjOnM10s_79ld-1734041234919.webp", - members: [ - { - userId: 33573, - username: "kaye", - discordId: "724697331789725738", - discordAvatar: "7a2a94b439ebda3676bab1dabfc0467c", - customUrl: "kaye", - country: "GB", - twitch: null, - createdAt: 1734040772, - inGameName: "$2 kαye#1141", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43753, - username: "Henk", - discordId: "1129967981091356772", - discordAvatar: "7026e0fb1a5a71fb3db51df962301fca", - customUrl: "henk", - country: "US", - twitch: null, - createdAt: 1734040792, - inGameName: "$2 Henk#3060", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45806, - username: "Nyanja", - discordId: "1198056251637104758", - discordAvatar: "a36fb4022f0a6e0d2dba535237dee05e", - customUrl: "akashi", - country: "US", - twitch: null, - createdAt: 1734040795, - inGameName: "Bodi#1083", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46648, - username: "ouroboros94", - discordId: "188961998677999616", - discordAvatar: "93a9a92b8731982d4a7ddf45988d4e53", - customUrl: "ouroboros94", - country: null, - twitch: null, - createdAt: 1734041012, - inGameName: "$2 Boros#1605", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [33573, 43753, 45806, 46648], + ownerUserId: 33573, checkIns: [ { bracketIdx: null, @@ -15137,13 +8352,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4142, - customUrl: "job-application", - logoUrl: "ea8uiYpTsO0oEB7PzPW_0-1734041570365.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "ea8uiYpTsO0oEB7PzPW_0-1734041570365.webp", avgSeedingSkillOrdinal: -7.760008749875247, }, { @@ -15152,105 +8362,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 74, prefersNotToHost: 1, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734033803, activeRosterUserIds: [27800, 12235, 30044, 29531], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 27800, - username: "tariq", - discordId: "754368445910614046", - discordAvatar: "3823727b8d8bb0aa4d9b5af58eeecf32", - customUrl: "tariq", - country: "SA", - twitch: "totihhha", - createdAt: 1734033803, - inGameName: "CH◆tariq#2613", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44328, - username: "CH 🌌 ✦ splat 🇦🇪", - discordId: "906833727345266749", - discordAvatar: "6b8e1d16e54ef47c8b672ff61ab83f24", - customUrl: null, - country: "AE", - twitch: "thebestsplatoonplayer", - createdAt: 1734033808, - inGameName: "CH✦(Splat)#1396", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12235, - username: "wooble", - discordId: "971401856955850822", - discordAvatar: "866b47df8232badc1f4e6099b8808faf", - customUrl: null, - country: "SA", - twitch: "wooble_gooble", - createdAt: 1734033810, - inGameName: "★W⦶⦶b⦵⦵b★#1331", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29531, - username: "Eight", - discordId: "527953365003403265", - discordAvatar: "dab0f8a435310532edb045f308dab3c2", - customUrl: "shady", - country: null, - twitch: null, - createdAt: 1734124051, - inGameName: "とづ 8#1129", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30044, - username: "Addy!", - discordId: "739983837584425050", - discordAvatar: "1bc28a28d89b94447e2a15da9a217348", - customUrl: null, - country: "US", - twitch: "addymist", - createdAt: 1734198626, - inGameName: "Addy!#2572", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [27800, 44328, 12235, 29531, 30044], + ownerUserId: 27800, checkIns: [ { bracketIdx: null, @@ -15258,13 +8376,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3545, - customUrl: "cosmic-hunters", - logoUrl: "UROJ9mFWftvcsXfEVISuC-1729777909011.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "UROJ9mFWftvcsXfEVISuC-1729777909011.webp", avgSeedingSkillOrdinal: 5.320412925638217, }, { @@ -15273,105 +8386,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 75, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734099612, activeRosterUserIds: [24572, 7058, 37641, 33913], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-RrPQW5kG_K1cvjdU5TKcF-1734099611923.webp", - members: [ - { - userId: 7058, - username: "nxJuan", - discordId: "203860251789754368", - discordAvatar: "8b02d1a5c6afe04e82e0a47e0371eb6d", - customUrl: "juan", - country: "ES", - twitch: null, - createdAt: 1734099612, - inGameName: "nx★Juan★#2469", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37641, - username: "veater_27", - discordId: "807728130156396555", - discordAvatar: "2ae836cd079ff652ceb73d705d7fcbb1", - customUrl: null, - country: "ES", - twitch: "veater_27", - createdAt: 1734105791, - inGameName: "Veater_27#7110", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33913, - username: "Pablitodmd", - discordId: "719236676844519464", - discordAvatar: "d3bc4961a062baf85d97eb2e64eaa652", - customUrl: "pablitoodmd", - country: "ES", - twitch: "pablitodmd", - createdAt: 1734106106, - inGameName: "Pablitodmd#1039", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42597, - username: "marco", - discordId: "530308126860378112", - discordAvatar: "ec2a37cee2b0ecf8529a551bda68add2", - customUrl: "marcomarco", - country: "MX", - twitch: null, - createdAt: 1734130054, - inGameName: "marco#8993", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24572, - username: "kira", - discordId: "593476878891745301", - discordAvatar: "6028e1e960c35f513453cfd793e5735e", - customUrl: null, - country: "ES", - twitch: "0_kiara_00", - createdAt: 1734130213, - inGameName: "kira#1088", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [7058, 37641, 33913, 42597, 24572], + ownerUserId: 7058, checkIns: [ { bracketIdx: null, @@ -15379,8 +8400,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-RrPQW5kG_K1cvjdU5TKcF-1734099611923.webp", avgSeedingSkillOrdinal: -0.8897094040537803, }, { @@ -15389,87 +8410,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 76, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734113463, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 20209, - username: "Dumb Knight", - discordId: "549924949238874114", - discordAvatar: "5cf6096f667aa585bfb5bbc584fdf215", - customUrl: "dumbknight1", - country: "NL", - twitch: null, - createdAt: 1734113463, - inGameName: "DumbKnight#2534", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33276, - username: "Bronze!", - discordId: "955486101550805032", - discordAvatar: "6957a604514efa358ed8ff64a554eca2", - customUrl: "stillstuckinbronze", - country: "GB", - twitch: null, - createdAt: 1734119726, - inGameName: "Bronze!#5994", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41038, - username: "Jammy", - discordId: "1058077452766814279", - discordAvatar: "aa189716ed686efee96543d0c44daad0", - customUrl: "jammy", - country: "GB", - twitch: null, - createdAt: 1734119729, - inGameName: "SnC Jammy#1610", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11198, - username: "Tomatty", - discordId: "811132066707669072", - discordAvatar: "d5fdf642dbe1b3781012c15690116e1e", - customUrl: "tomatty", - country: "PL", - twitch: null, - createdAt: 1734119850, - inGameName: "Tomatty#1655", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [20209, 33276, 41038, 11198], + ownerUserId: 20209, checkIns: [ { bracketIdx: null, @@ -15477,13 +8424,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4302, - customUrl: "chirpy-chips-crusaders", - logoUrl: null, - deletedAt: null, - }, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: -1.62142856022919, }, { @@ -15492,95 +8434,16 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 77, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734118202, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 9200, - username: "Thardus", - discordId: "139823201353072640", - discordAvatar: "9dbb82f9b253ed6809069040031fd3a1", - customUrl: "thardus", - country: "GB", - twitch: null, - createdAt: 1734118202, - inGameName: "AI thds#1117", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14927, - username: "Alphi🐧", - discordId: "328507050214555648", - discordAvatar: "28d5edcca19c73a00d96fcba043891af", - customUrl: "alphiqus", - country: "ES", - twitch: null, - createdAt: 1734118214, - inGameName: "AI Alphi#3562", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1236, - username: "TailsPikachu", - discordId: "140449357550845954", - discordAvatar: "f719e6a2e9d281cf1c302593b1a1655b", - customUrl: "tailsmelv025", - country: "GB", - twitch: "tailsmelv025", - createdAt: 1734118218, - inGameName: "Melvo#8510", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27069, - username: "Wither :3", - discordId: "313370087040221184", - discordAvatar: "33b6e51702668258b2042c501170be3a", - customUrl: "seaottair", - country: "GB", - twitch: null, - createdAt: 1734118221, - inGameName: "Wither :3#1655", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [9200, 14927, 1236, 27069], + ownerUserId: 9200, checkIns: [], - mapPool: [], - team: { - id: 2453, - customUrl: "abyss-ink", - logoUrl: "zL797gYTFkbBbI-wxCql--1708262753995.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "zL797gYTFkbBbI-wxCql--1708262753995.webp", avgSeedingSkillOrdinal: -2.504643303946978, }, { @@ -15589,105 +8452,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 78, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734134334, activeRosterUserIds: [11186, 27611, 25952, 23481], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 27544, - username: "hypercube", - discordId: "728779543413784677", - discordAvatar: "cfda242378be2ecfdbfaccfb40bfbd2a", - customUrl: "hypercube", - country: "US", - twitch: null, - createdAt: 1734134334, - inGameName: "6pk hype#2205", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25952, - username: "coneco", - discordId: "271132167331905536", - discordAvatar: "1b6cc6b8ab08b932467dd0d1292d4aa8", - customUrl: "coneco", - country: "US", - twitch: null, - createdAt: 1734134336, - inGameName: "6pk coneco#3350", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27611, - username: "vowels", - discordId: "114264133716803587", - discordAvatar: "66de4a42378cd5c83ffc7560c9226515", - customUrl: "vowels", - country: "US", - twitch: null, - createdAt: 1734134344, - inGameName: "6pk vowels#1832", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11186, - username: "6pSomesing", - discordId: "117726765006323716", - discordAvatar: "a8eb78534c351a8ea859ba6b806cde2d", - customUrl: "somesing", - country: "US", - twitch: null, - createdAt: 1734134349, - inGameName: "6pSomesing#8428", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23481, - username: "Squidoku", - discordId: "215706879794348032", - discordAvatar: "a_a50b907e11c79560142967d565d2c847", - customUrl: "squidoku", - country: "US", - twitch: null, - createdAt: 1734136034, - inGameName: "Squidoku#3096", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [27544, 25952, 27611, 11186, 23481], + ownerUserId: 27544, checkIns: [ { bracketIdx: null, @@ -15695,13 +8466,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 885, - customUrl: "six-pack-yokes", - logoUrl: "60Rf2272Y8d2bIe_QAHB7-1718063421556.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "60Rf2272Y8d2bIe_QAHB7-1718063421556.webp", avgSeedingSkillOrdinal: 0.6591562173556433, }, { @@ -15710,87 +8476,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 79, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733169181, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 31145, - username: "MB20", - discordId: "987870195374784622", - discordAvatar: "f7318d6a13d276a30187720707916c66", - customUrl: null, - country: "US", - twitch: "mb20__", - createdAt: 1733169181, - inGameName: "SR★MB20YT#1798", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38610, - username: "Philmmaker", - discordId: "1084948943768662122", - discordAvatar: "e5667a33bbaa41ff29760dfb24d094cf", - customUrl: null, - country: "PL", - twitch: null, - createdAt: 1733169320, - inGameName: "SR★Phil#1761", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40713, - username: "Loha :3", - discordId: "691353759170953326", - discordAvatar: "74cdf058caeb7c24330ca0cc7bccb7b4", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733169508, - inGameName: "SR★Loha#3062", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40766, - username: '☆Goggles"', - discordId: "601901575388004384", - discordAvatar: "764e6069b1e658aa2ff1e63a2a925493", - customUrl: "gogglesrendezvous", - country: "US", - twitch: "sr_goggles", - createdAt: 1733191023, - inGameName: "SR★Goggles#9276", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [31145, 38610, 40713, 40766], + ownerUserId: 31145, checkIns: [ { bracketIdx: null, @@ -15798,13 +8490,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3347, - customUrl: "squids-rendezvous", - logoUrl: "KVH1eRB-F8kB-w1HdAuwN-1729212688426.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "KVH1eRB-F8kB-w1HdAuwN-1729212688426.webp", avgSeedingSkillOrdinal: -3.90031734952777, }, { @@ -15813,87 +8500,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 80, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733247691, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo--fZF6IGlzuuHeotc6Z00p-1733762912138.webp", - members: [ - { - userId: 46518, - username: "Yolo_Is_Here", - discordId: "1219754381939839008", - discordAvatar: "f8fb0480a4160b4be7a4cc5b81153fae", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733247691, - inGameName: "Yolo#4117", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46538, - username: "Dark Super Sonic", - discordId: "371387310844936202", - discordAvatar: "3e3dd2287aceb726ed869b23f4ab9df0", - customUrl: null, - country: "US", - twitch: "redacted_yt", - createdAt: 1733248120, - inGameName: "REDACTED™#2445", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46523, - username: "Realm", - discordId: "643462675829096468", - discordAvatar: "07a463bcc2993e0f7862db97d439b18b", - customUrl: null, - country: null, - twitch: null, - createdAt: 1733254364, - inGameName: "яєαℓм#2823", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46501, - username: "khi", - discordId: "847118603043602483", - discordAvatar: "03fe323ce953c5a812fbc61727901e28", - customUrl: "khi", - country: "US", - twitch: null, - createdAt: 1733255832, - inGameName: "ira#5400", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [46518, 46538, 46523, 46501], + ownerUserId: 46518, checkIns: [ { bracketIdx: null, @@ -15901,13 +8514,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4243, - customUrl: "morning-struggles", - logoUrl: null, - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "pickup-logo--fZF6IGlzuuHeotc6Z00p-1733762912138.webp", avgSeedingSkillOrdinal: -5.92473058066649, }, { @@ -15916,108 +8524,16 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 81, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733452618, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 42089, - username: "myelin", - discordId: "812742140081471488", - discordAvatar: "23e833db4ffaf1b11ff23685fe8cb486", - customUrl: "myelin", - country: "US", - twitch: null, - createdAt: 1733452618, - inGameName: "lavie♪#1025", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 17049, - username: "✨Shimmer✨", - discordId: "807339640599347220", - discordAvatar: "cbcf4e92ecb9eebd01eaa7f8977ecfa4", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733452664, - inGameName: "♪Sunshine♪#1855", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36888, - username: "LoftTheSkyWarrior", - discordId: "964173225271635999", - discordAvatar: "729ae9154b234a9b4ccc477b50e9ed9f", - customUrl: "lofttheskywarrior", - country: "US", - twitch: null, - createdAt: 1733452675, - inGameName: "LoftKnight#2145", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46546, - username: "Squiggly", - discordId: "536304021003042816", - discordAvatar: "bef7b70ab0125b1f5f00f39f119d3c1f", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733727932, - inGameName: "Squiggly#1806", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42172, - username: "MerryChi", - discordId: "827707288432541767", - discordAvatar: "fa95925af43b551258c07bbcddd3f838", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733782852, - inGameName: "Verchi#2950", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [42089, 17049, 36888, 46546, 42172], + ownerUserId: 42089, checkIns: [], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: -2.28097750589621, }, { @@ -16026,113 +8542,16 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 82, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733481710, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 44893, - username: "V", - discordId: "701204526123974728", - discordAvatar: "fed5ed31ea73c435fffb560e995ece72", - customUrl: null, - country: "ES", - twitch: null, - createdAt: 1733481710, - inGameName: "★*мvstang#2813", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40912, - username: "Neven", - discordId: "1096003280506728468", - discordAvatar: "d8e47d33483bce43e3858aca30f707ac", - customUrl: "neven", - country: "DE", - twitch: null, - createdAt: 1733481731, - inGameName: "★*Neven#5092", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30455, - username: "miles", - discordId: "846951634029903883", - discordAvatar: "0bcfcfb3676eaf87c3087188820ae659", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733481736, - inGameName: "★*Miles#2639", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27649, - username: "Pulfis", - discordId: "803276531559301145", - discordAvatar: "2912ac38cb3a9f4344aaf5795531f178", - customUrl: "pulfis_hu", - country: "IT", - twitch: null, - createdAt: 1733481739, - inGameName: "★*Pulfis#2895", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43703, - username: "φ; Spud ★", - discordId: "730431813016879164", - discordAvatar: "06b1bab46cd197478b257e915f79dca9", - customUrl: null, - country: "GB", - twitch: null, - createdAt: 1733502639, - inGameName: "Φ; Spud ★#3135", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [44893, 40912, 30455, 27649, 43703], + ownerUserId: 44893, checkIns: [], - mapPool: [], - team: { - id: 2744, - customUrl: "luminaria", - logoUrl: "vlJdK1mXrROy1OtxIUroi-1713712339037.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "vlJdK1mXrROy1OtxIUroi-1713712339037.webp", avgSeedingSkillOrdinal: null, }, { @@ -16141,87 +8560,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 83, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733508949, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 44493, - username: "skgrizz", - discordId: "1119633376563970128", - discordAvatar: "033d23e49f4fc3d83748ff4939f4ecbe", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733508949, - inGameName: "skgrizz#8819", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46451, - username: "Pestilence", - discordId: "1311040130965966958", - discordAvatar: "23f69d4786c02d294a141e235b18ca9b", - customUrl: null, - country: null, - twitch: null, - createdAt: 1733525710, - inGameName: "Pestilence#4777", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44412, - username: "folly", - discordId: "493527220384432148", - discordAvatar: "f5558262125487f4541622e3fcd0c46e", - customUrl: "folly", - country: "IT", - twitch: "soaringmk", - createdAt: 1733527279, - inGameName: "folly#5759", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45194, - username: "Crumbdog", - discordId: "734909623240360046", - discordAvatar: "641dab36252a280464ee4623d1594e9f", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733528514, - inGameName: "Crumbs#1223", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [44493, 46451, 44412, 45194], + ownerUserId: 44493, checkIns: [ { bracketIdx: null, @@ -16229,13 +8574,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3950, - customUrl: "c", - logoUrl: "LhO8O_xbd9Tr9HPe7ZRgL-1731520138837.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "LhO8O_xbd9Tr9HPe7ZRgL-1731520138837.webp", avgSeedingSkillOrdinal: -4.75917450591674, }, { @@ -16244,87 +8584,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 84, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733611261, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 18149, - username: "lepton", - discordId: "607961719746068482", - discordAvatar: "e306c68930c754aca6f907154da3fdcc", - customUrl: null, - country: "US", - twitch: "lepton15", - createdAt: 1733611261, - inGameName: "lepton#2586", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21755, - username: "brrrbo 🥶❄", - discordId: "365239309940293634", - discordAvatar: "533e8a0fe7660f6d64dd5dd642c1de62", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733801424, - inGameName: "borbo =3#1160", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27984, - username: "Orange_Peel", - discordId: "228702843824111616", - discordAvatar: "ed32effb587015b8c7734f4faa15147a", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733805620, - inGameName: "Orange_ =3#1571", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27990, - username: "chip", - discordId: "713866837632352316", - discordAvatar: "2988daf9c1f823ab056ee5dfe0259520", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733806448, - inGameName: "chip =3#3160", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [18149, 21755, 27984, 27990], + ownerUserId: 18149, checkIns: [ { bracketIdx: null, @@ -16332,8 +8598,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: -3.63698631246152, }, { @@ -16342,105 +8608,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 85, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733841846, activeRosterUserIds: [41943, 46289, 45290, 46394], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 46289, - username: "MILENKO", - discordId: "1226737254370771079", - discordAvatar: "1013fcf22f929a0d8e6e436eb20296cf", - customUrl: "milenkoshall", - country: "US", - twitch: null, - createdAt: 1733841846, - inGameName: "★S→MILENKO#1628", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41943, - username: "Ashes360", - discordId: "1213726996283002904", - discordAvatar: "05b2431951260ef1a55b5bfa51956262", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1733841861, - inGameName: "Ashes360#2691", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45290, - username: "Charli", - discordId: "1135373029313101895", - discordAvatar: "1f22cac481b40237d89fe1f0a5efbaa7", - customUrl: "charli", - country: "US", - twitch: null, - createdAt: 1733841865, - inGameName: "Charli#3401", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46394, - username: "Leshy", - discordId: "1309725338477133926", - discordAvatar: "9e9ebe746f99d1c6df770e31830a7b7d", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733841867, - inGameName: "Leshy#7700", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46400, - username: "Salvo!!", - discordId: "1099545144837017691", - discordAvatar: "47d2b6d15b564ccba231a1f999ddbffc", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733841868, - inGameName: "⭐S->Salvo#2510", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [46289, 41943, 45290, 46394, 46400], + ownerUserId: 46289, checkIns: [ { bracketIdx: null, @@ -16448,13 +8622,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4200, - customUrl: "starstrikerz", - logoUrl: "ck7qA86KTf0mXaYxhEghW-1732661023972.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "ck7qA86KTf0mXaYxhEghW-1732661023972.webp", avgSeedingSkillOrdinal: -7.581095055782905, }, { @@ -16463,87 +8632,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 86, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1733878153, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 40484, - username: "chicken", - discordId: "878798196606906389", - discordAvatar: "a64060f1c44a0e91d3938e422b811127", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733878153, - inGameName: "chicken#3343", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38960, - username: "caustic", - discordId: "1176652332453330957", - discordAvatar: "e656ee8cb75c4a66714a77ad27cba272", - customUrl: "jumpscare", - country: null, - twitch: null, - createdAt: 1733878225, - inGameName: "caustic#7812", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32199, - username: "Ducky", - discordId: "1112848371347116092", - discordAvatar: "3570c71842c039dc7e753e894ff0ea4e", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1733931535, - inGameName: "Ducky/DC#9919", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40126, - username: "Reiyu", - discordId: "711334425627197480", - discordAvatar: "ead18d29dad3f24f58e04b69a021502a", - customUrl: null, - country: null, - twitch: null, - createdAt: 1734124484, - inGameName: "[∞B]Mochi#4755", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [40484, 38960, 32199, 40126], + ownerUserId: 40484, checkIns: [ { bracketIdx: null, @@ -16551,13 +8646,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4215, - customUrl: "name-pending", - logoUrl: null, - deletedAt: null, - }, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: -3.2090244234437577, }, { @@ -16566,87 +8656,13 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ seed: 87, prefersNotToHost: 0, droppedOut: 1, - inviteCode: null, startingBracketIdx: null, abDivision: null, createdAt: 1734135144, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-obQfxdRnJg0CsbrE6OXdl-1734135144301.webp", - members: [ - { - userId: 44839, - username: "Perijove", - discordId: "351785613646888960", - discordAvatar: "2b0b6f958c0f3cca17bbe406297112ab", - customUrl: "perijove", - country: "US", - twitch: null, - createdAt: 1734135144, - inGameName: "Perijove#1632", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44866, - username: "Dr.Ness", - discordId: "1177836887789027368", - discordAvatar: "0e70e352465656b2057767a88b7d3b77", - customUrl: null, - country: null, - twitch: null, - createdAt: 1734135149, - inGameName: "Dr. Ness#3373", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44642, - username: "Endee", - discordId: "769709019051982848", - discordAvatar: "9256baaa3fc6793a7b10ede0242233db", - customUrl: "endee", - country: "US", - twitch: null, - createdAt: 1734135638, - inGameName: "Endee#4738", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45391, - username: "Cledesol", - discordId: "277635230033248256", - discordAvatar: "9e51e9106ee090d003aef03f54f67744", - customUrl: null, - country: null, - twitch: null, - createdAt: 1734136833, - inGameName: "Cledesol#0674", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [44839, 44866, 44642, 45391], + ownerUserId: 44839, checkIns: [ { bracketIdx: null, @@ -16654,8 +8670,8 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-obQfxdRnJg0CsbrE6OXdl-1734135144301.webp", avgSeedingSkillOrdinal: -5.653760133881115, }, ], @@ -16734,43 +8750,6 @@ export const LOW_INK_DECEMBER_2024 = (): TournamentData => ({ stageId: 21, }, ], - participatedUsers: [ - 1661, 1852, 1925, 1959, 1961, 2266, 2279, 2319, 2769, 2898, 2990, 3362, - 3466, 3481, 3513, 3566, 3738, 3741, 3742, 4248, 4334, 4533, 5037, 5261, - 5708, 5861, 5906, 5935, 6051, 6309, 6696, 6976, 7058, 7115, 7126, 7430, - 7434, 7461, 7690, 7958, 7959, 8080, 8395, 8587, 8840, 8953, 8993, 9036, - 9112, 9379, 9404, 10028, 10190, 10222, 10297, 10378, 10386, 10670, 10714, - 10788, 10826, 11085, 11088, 11117, 11180, 11186, 11198, 11226, 11391, - 11783, 12005, 12235, 12418, 12434, 14309, 14837, 15110, 15158, 15425, - 16054, 16387, 17310, 17352, 17532, 18090, 18149, 18632, 18698, 19717, - 20209, 20292, 20319, 20419, 20774, 20807, 20990, 21063, 21181, 21454, - 21588, 21670, 21685, 21755, 21818, 21989, 22324, 22396, 22403, 22469, - 22500, 22577, 22622, 22624, 22677, 22699, 22801, 22820, 22942, 22968, - 22991, 23082, 23164, 23357, 23481, 23974, 24013, 24252, 24275, 24290, - 24459, 24510, 24572, 25242, 25312, 25543, 25591, 25689, 25741, 25763, - 25806, 25875, 25952, 26044, 26103, 26162, 26269, 26285, 26321, 26441, - 26509, 26564, 26711, 26747, 26758, 26807, 26820, 27036, 27260, 27292, - 27355, 27529, 27544, 27611, 27747, 27800, 27903, 27984, 27990, 28021, - 28054, 28137, 28145, 28170, 28410, 28446, 28938, 28959, 29011, 29267, - 29425, 29433, 29531, 29617, 29636, 29661, 29674, 30030, 30031, 30044, - 30122, 30204, 30263, 30266, 30425, 30466, 30488, 30495, 30584, 30619, - 30685, 30686, 30728, 30870, 31143, 31145, 31150, 31154, 31189, 31195, - 31295, 31395, 31524, 31556, 31597, 31655, 31728, 32002, 32015, 32107, - 32158, 32160, 32199, 32430, 32444, 32670, 32802, 32878, 32909, 32970, - 33276, 33369, 33373, 33402, 33524, 33573, 33615, 33632, 33790, 33824, - 33913, 33954, 34071, 34147, 34355, 34424, 34448, 34545, 34589, 34634, - 34842, 35067, 35310, 35354, 35421, 35506, 35567, 35608, 35617, 35674, - 35811, 35922, 36007, 36113, 36575, 36853, 36921, 36962, 37000, 37173, - 37341, 37436, 37563, 37641, 37665, 37669, 37835, 37959, 38022, 38046, - 38204, 38610, 38686, 38896, 38912, 38960, 39098, 39470, 39480, 40126, - 40304, 40484, 40505, 40550, 40713, 40743, 40766, 40851, 40972, 41038, - 41108, 41255, 41269, 41594, 41682, 41739, 41943, 41975, 42081, 42164, - 42350, 42483, 42597, 42599, 42638, 42703, 42704, 42874, 42975, 43060, - 43073, 43081, 43269, 43524, 43551, 43608, 43623, 43753, 44033, 44378, - 44412, 44475, 44493, 44642, 44772, 44839, 44866, 45036, 45102, 45174, - 45194, 45250, 45290, 45295, 45391, 45778, 45806, 46245, 46289, 46305, - 46394, 46451, 46501, 46518, 46523, 46538, 46586, 46637, 46648, 46771, - ], - castStreams: [], + latestTeamIdByDuplicatedUserId: {}, }, }); diff --git a/app/features/tournament-bracket/core/tests/mocks-sos.ts b/app/features/tournament-bracket/core/tests/mocks-sos.ts index e38a27899..c184e3234 100644 --- a/app/features/tournament-bracket/core/tests/mocks-sos.ts +++ b/app/features/tournament-bracket/core/tests/mocks-sos.ts @@ -4,6 +4,7 @@ import type { TournamentData } from "../Tournament.server"; export const SWIM_OR_SINK_167 = ( overrides?: TournamentData["ctx"]["bracketProgressionOverrides"], ): TournamentData => ({ + streams: [], data: { stage: [ { @@ -1663,6 +1664,25 @@ export const SWIM_OR_SINK_167 = ( }, ], }, + participatedUsers: [ + 44, 65, 73, 163, 190, 241, 267, 331, 373, 460, 590, 863, 986, 1038, 1059, + 1338, 1548, 1616, 1736, 1894, 1953, 1961, 2059, 2088, 2670, 2672, 2888, + 3181, 3275, 3449, 3513, 3657, 3930, 4307, 4504, 5001, 5106, 5187, 5227, + 5261, 5334, 5368, 5471, 5584, 5679, 6051, 7008, 7216, 7807, 7994, 8080, + 8297, 8552, 8587, 8760, 8830, 8852, 9001, 9034, 9235, 9454, 10181, 10200, + 10265, 10611, 11244, 11495, 11815, 11951, 12585, 12610, 13671, 14007, 15188, + 15278, 16387, 17310, 19035, 19093, 20240, 20731, 20774, 20807, 21205, 21249, + 21339, 21487, 22026, 22344, 22396, 22409, 22614, 22706, 22744, 22903, 23016, + 23082, 23115, 23132, 23292, 23505, 23712, 23946, 24514, 25053, 25168, 25218, + 25464, 25469, 25622, 25856, 26103, 26428, 26801, 26820, 26988, 26989, 27113, + 27222, 27438, 27440, 27474, 27485, 27917, 28097, 28145, 28391, 28671, 28700, + 29011, 29120, 29182, 29467, 29531, 29643, 29823, 29855, 29897, 30122, 30204, + 30266, 30591, 30612, 30685, 30686, 31195, 31259, 31395, 31526, 31580, 31868, + 32203, 33067, 33116, 33402, 33825, 34014, 34071, 34414, 34594, 34657, 34724, + 35169, 35225, 35571, 35724, 36265, 36898, 37341, 37677, 38176, 39363, 40169, + 40505, 41797, 42409, 42703, 43847, 43850, 44751, 45163, 45635, 45980, 46045, + 46099, 46101, + ], ctx: { id: 672, parentTournamentId: null, @@ -2130,121 +2150,11 @@ export const SWIM_OR_SINK_167 = ( seed: 1, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730771673, activeRosterUserIds: [8852, 34724, 9403, 27222], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 8852, - username: "liam", - discordId: "730965705159082077", - discordAvatar: "e490d565e5073c2f9dc99750b86e21f9", - customUrl: "mocha", - country: null, - twitch: null, - createdAt: 1730771673, - inGameName: "dx mocher#3333", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9403, - username: "harshi", - discordId: "752042543046197268", - discordAvatar: "2ecae10b2e615594f431fd9043dd5849", - customUrl: "harshi", - country: "CA", - twitch: null, - createdAt: 1730771744, - inGameName: "R <3#1254", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31868, - username: "pty", - discordId: "522732152396316672", - discordAvatar: "1fad6f4adf2cbe276e2fa8f3694fa844", - customUrl: null, - country: null, - twitch: null, - createdAt: 1730771772, - inGameName: "Addict#4811", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13562, - username: "‎", - discordId: "707603025090445392", - discordAvatar: null, - customUrl: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - country: "BR", - twitch: null, - createdAt: 1730790990, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34724, - username: "tickle", - discordId: "1037752233477029958", - discordAvatar: "38039fdb697910627e39d7e2d4e326e7", - customUrl: "splatickle", - country: null, - twitch: null, - createdAt: 1730848243, - inGameName: "( >‿< ) #1925", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27222, - username: "hayden", - discordId: "995224811892637777", - discordAvatar: "b846a9c237399451ce1a3e9075962302", - customUrl: "haydne", - country: null, - twitch: null, - createdAt: 1730941117, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [8852, 9403, 31868, 13562, 34724, 27222], + ownerUserId: 8852, checkIns: [ { bracketIdx: null, @@ -2272,8 +2182,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -2284,85 +2194,11 @@ export const SWIM_OR_SINK_167 = ( seed: 2, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730931681, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 23016, - username: "Lexi", - discordId: "869690273725284392", - discordAvatar: "c0cf724da4f51266090fe93bd04dd7f8", - customUrl: "lexi", - country: "US", - twitch: "lexi_spl3", - createdAt: 1730931681, - inGameName: "(?)#1719", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 331, - username: "kera", - discordId: "678848011090264075", - discordAvatar: "e31366f51681b1d3450ab9b4f5938f26", - customUrl: "kera", - country: "US", - twitch: null, - createdAt: 1730931818, - inGameName: "kera#1797", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44, - username: "redshell1", - discordId: "264591659776344064", - discordAvatar: "c3bd2ce4509db5801273f6c8c1b680d8", - customUrl: "redshell1", - country: "US", - twitch: "redshell1", - createdAt: 1730932211, - inGameName: "dM_rshell1#2568", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 65, - username: "DriftyToky0", - discordId: "295283215462170624", - discordAvatar: "9eed7fbcd2577638299c6f2831b19028", - customUrl: "driftea", - country: "KP", - twitch: "drifty_toky0", - createdAt: 1730936191, - inGameName: "dM_vexen#1559", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [23016, 331, 44, 65], + ownerUserId: 23016, checkIns: [ { bracketIdx: null, @@ -2390,8 +2226,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -2402,103 +2238,11 @@ export const SWIM_OR_SINK_167 = ( seed: 3, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730864603, activeRosterUserIds: [22344, 1038, 1059, 10200], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 22344, - username: "Nilla", - discordId: "809863658549149766", - discordAvatar: "eff49b64d2bcc8d368e90d1bd878ae0c", - customUrl: "nilla", - country: "DO", - twitch: null, - createdAt: 1730864603, - inGameName: "コントロール <3#1605", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10200, - username: "IB Woomy", - discordId: "673622543696920607", - discordAvatar: "8aea6b82c57412e21090e111e654e3da", - customUrl: "ibwoomy", - country: "CA", - twitch: "woomy284", - createdAt: 1730864607, - inGameName: "Woomy#1265", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1038, - username: "Kabi", - discordId: "326532846959329280", - discordAvatar: "ab267f4e84c11c4458a2ee88f6028ccd", - customUrl: "kabi", - country: "US", - twitch: null, - createdAt: 1730864614, - inGameName: "Kabi#5484", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1059, - username: "Taro", - discordId: "296309302682189824", - discordAvatar: "4c79cab2a953c05e0ced931a871eec77", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730864617, - inGameName: "Taro#2443", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 267, - username: "Hiyah", - discordId: "561954805384478730", - discordAvatar: "fdfa1e54c7b2bdad3db7fde2604dfe50", - customUrl: null, - country: "US", - twitch: "hiyah_no", - createdAt: 1730939914, - inGameName: "Hiyah#3200", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22344, 10200, 1038, 1059, 267], + ownerUserId: 22344, checkIns: [ { bracketIdx: null, @@ -2526,8 +2270,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -2538,85 +2282,11 @@ export const SWIM_OR_SINK_167 = ( seed: 4, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730932511, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-gYdQMQEToU9InodFy5P0z-1730936760761.webp", - members: [ - { - userId: 9001, - username: "cap", - discordId: "1190074509319999501", - discordAvatar: "bda58bc0467e303ba54d9c4d8362229b", - customUrl: "cap", - country: "US", - twitch: null, - createdAt: 1730932511, - inGameName: "titan#1102", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9034, - username: "tobii", - discordId: "553988208627679234", - discordAvatar: "e3233bb35e3c58c46dd224bfbabd92d4", - customUrl: "tobii", - country: null, - twitch: null, - createdAt: 1730932518, - inGameName: "zephyr#2292", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 590, - username: "sunny", - discordId: "375444333693763605", - discordAvatar: "d19edc16b88e969703cd0a0ddd3666b7", - customUrl: "aespa", - country: "GL", - twitch: "sushist0re", - createdAt: 1730932538, - inGameName: "closure#2716", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29643, - username: "mechanical katz", - discordId: "925453863430025256", - discordAvatar: "dbf0eabc8f8a0acaafd45b3938e7aaf1", - customUrl: "sblast_strong", - country: "US", - twitch: null, - createdAt: 1730933208, - inGameName: "《ƒr》к∀†§#8079", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [9001, 9034, 590, 29643], + ownerUserId: 9001, checkIns: [ { bracketIdx: null, @@ -2644,8 +2314,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-gYdQMQEToU9InodFy5P0z-1730936760761.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -2656,85 +2326,11 @@ export const SWIM_OR_SINK_167 = ( seed: 5, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730922495, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-EwC2mgMiWfx54bSWSPhr3-1730922495444.webp", - members: [ - { - userId: 3930, - username: "Yushi4Ever", - discordId: "268425076221804554", - discordAvatar: "2212b551d535a945261451e2266cf5ae", - customUrl: "yushi4ever", - country: "DE", - twitch: "yushi4ever", - createdAt: 1730922495, - inGameName: "7 nova#2185", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5368, - username: "Dismaqe", - discordId: "643538243396042868", - discordAvatar: "393b72bafe14e65d680caf3dd6ec532f", - customUrl: "dismaqe", - country: "EE", - twitch: "odismaqe", - createdAt: 1730922504, - inGameName: "Bl!Dismaqe#2590", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 373, - username: "Ňiightmare", - discordId: "723698508045221941", - discordAvatar: "facf4185c3f2bdedde5e52fcca69e0e6", - customUrl: "niightmare", - country: "US", - twitch: "niightmarelive", - createdAt: 1730922735, - inGameName: "Niightmare#3052", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37677, - username: "Miyono", - discordId: "1131499467602931723", - discordAvatar: "21fb6bce5ad309855db659f53cb5ca31", - customUrl: "miyono", - country: "PR", - twitch: "miyonohime", - createdAt: 1730925935, - inGameName: "M∀LISS :)#2207", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3930, 5368, 373, 37677], + ownerUserId: 3930, checkIns: [ { bracketIdx: null, @@ -2762,8 +2358,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-EwC2mgMiWfx54bSWSPhr3-1730922495444.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -2774,121 +2370,11 @@ export const SWIM_OR_SINK_167 = ( seed: 6, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730788095, activeRosterUserIds: [7807, 11815, 5001, 7216], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 7807, - username: "Кraкen Mare", - discordId: "158733178713014273", - discordAvatar: "a_ccecfe929c2471cd5ace0ad47256953c", - customUrl: "krakenmare77", - country: "US", - twitch: "krakenmare77", - createdAt: 1730788095, - inGameName: "КraкenMare#2266", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11143, - username: "DRF", - discordId: "283480526336163840", - discordAvatar: "703179a350380f7c53f40217e34db8bc", - customUrl: "drf", - country: "US", - twitch: "tritondrf", - createdAt: 1730788096, - inGameName: "DRF#2937", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20311, - username: "Mewtwo (smiley face)", - discordId: "315317302931226634", - discordAvatar: "ee5a17f6d9d16b1a4902ebb7909eaa19", - customUrl: "iloveboeing", - country: "US", - twitch: null, - createdAt: 1730788097, - inGameName: "Mewtwo :)#2309", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11815, - username: "Pepé", - discordId: "105033373495332864", - discordAvatar: "acf7f482bea7001e6cc1ef3a2ba55960", - customUrl: "pepe", - country: "US", - twitch: null, - createdAt: 1730788098, - inGameName: "Pepé#1340", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5001, - username: "Pork Smork", - discordId: "310515692501860354", - discordAvatar: "bf60ffa8489796409db7dba9b5706422", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730788099, - inGameName: "Smork#1828", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7216, - username: "Vapor", - discordId: "454390267072479265", - discordAvatar: "3a77e3f85e1f9553fb42cd9d009346d5", - customUrl: "v4p0r", - country: "US", - twitch: "v4p0r_spl", - createdAt: 1730788099, - inGameName: "v4p0я#3011", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [7807, 11143, 20311, 11815, 5001, 7216], + ownerUserId: 7807, checkIns: [ { bracketIdx: null, @@ -2916,13 +2402,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 395, - customUrl: "triggerfish-zones-supremacy", - logoUrl: "SWEVe96pht4lcJ8JrNiYY-1675571506802.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "SWEVe96pht4lcJ8JrNiYY-1675571506802.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -2933,103 +2414,11 @@ export const SWIM_OR_SINK_167 = ( seed: 7, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730774561, activeRosterUserIds: [3657, 5227, 25622, 25053], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 3657, - username: "Scribys", - discordId: "954391688388968499", - discordAvatar: "494e653e0649163d360dc5ecc636aeda", - customUrl: "scribys", - country: null, - twitch: null, - createdAt: 1730774561, - inGameName: "⦾ ▽Scribys#7872", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20026, - username: "Mecog", - discordId: "552592818565152777", - discordAvatar: "5e52fdae45b4c4561e923ea883a64f3a", - customUrl: "mecog", - country: null, - twitch: "mecogami", - createdAt: 1730774563, - inGameName: "⦾▽Mecog#1866", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5227, - username: "Neea", - discordId: "519378792012054528", - discordAvatar: "d7cc778f23282ea6bb26aebdc6e6b3d4", - customUrl: "insomneea", - country: "US", - twitch: "insomneea", - createdAt: 1730774565, - inGameName: "⦾▽Neea!#4244", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25622, - username: "rice :3", - discordId: "528851510222782474", - discordAvatar: "5db18614fe83f01eaeb1b17bb0b16159", - customUrl: "ricebowl", - country: "US", - twitch: null, - createdAt: 1730774567, - inGameName: "⦾▽rice:3#5034", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25053, - username: "SlimeSer64", - discordId: "456870129976737794", - discordAvatar: "f3b3b594c2a81eeb8bfb42357ffc8905", - customUrl: "slimeser64", - country: "US", - twitch: null, - createdAt: 1730774568, - inGameName: "⦾▽SlimeSer#3009", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3657, 20026, 5227, 25622, 25053], + ownerUserId: 3657, checkIns: [ { bracketIdx: null, @@ -3057,13 +2446,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3485, - customUrl: "retro-records", - logoUrl: "zGYGW4B6KJnaNOKl_lxCI-1725763023114.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "zGYGW4B6KJnaNOKl_lxCI-1725763023114.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -3074,103 +2458,11 @@ export const SWIM_OR_SINK_167 = ( seed: 8, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730935243, activeRosterUserIds: [73, 8760, 1548, 163], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 73, - username: "Soveliss", - discordId: "319135856403283969", - discordAvatar: "31c480fe6595ba2b2a37399e0b44bcab", - customUrl: "soveliss", - country: "US", - twitch: null, - createdAt: 1730935243, - inGameName: "Soveliss#2381", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5947, - username: "an_Arbiter", - discordId: "152839298889154560", - discordAvatar: "81cd7a774f3b3278f44edc936be876d1", - customUrl: "an_arbiter", - country: "US", - twitch: "an_arbiter", - createdAt: 1730935247, - inGameName: "an_Arbiter#4805", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8760, - username: "Kaiser", - discordId: "529957601169899532", - discordAvatar: "c7e5b63f81a63b35aabaf4dd63b26bfd", - customUrl: "kaiser", - country: "US", - twitch: null, - createdAt: 1730935248, - inGameName: "Kaiser#2891", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1548, - username: "Sapphire", - discordId: "149181692916137984", - discordAvatar: "1293be4c50e8d4f235e9b6089d2f2438", - customUrl: "sapphireredux", - country: "US", - twitch: "sapphireredux", - createdAt: 1730935250, - inGameName: "ashura!#9386", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 163, - username: "Zonink", - discordId: "107661716824809472", - discordAvatar: "5ec3f6a7bc392170d2bccb5f655a8961", - customUrl: "zonink", - country: "US", - twitch: "zonink", - createdAt: 1730935251, - inGameName: "Zon#1975", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [73, 5947, 8760, 1548, 163], + ownerUserId: 73, checkIns: [ { bracketIdx: null, @@ -3198,13 +2490,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 981, - customUrl: "impulse", - logoUrl: "kvwovgrlfI1qeGHELFUK5-1690036636015.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "kvwovgrlfI1qeGHELFUK5-1690036636015.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -3215,85 +2502,11 @@ export const SWIM_OR_SINK_167 = ( seed: 9, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730851309, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 19093, - username: "Trεcε •°", - discordId: "375332840306376705", - discordAvatar: "33eb822ef60065d1c37d12709a747ba4", - customUrl: "trece", - country: "ES", - twitch: "srta13", - createdAt: 1730851309, - inGameName: "<<∀>> Trece°#2886", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2670, - username: "Horshio", - discordId: "194751580225011713", - discordAvatar: "18ecfdd7582541ac67a33c3c102a9027", - customUrl: null, - country: "US", - twitch: "horshio", - createdAt: 1730851310, - inGameName: "Horshio #9328", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36265, - username: "seiðr", - discordId: "1043808190581702656", - discordAvatar: "5a5b4c6fe3953d9017fd10c22ffebe5a", - customUrl: "incipitkvasir", - country: "US", - twitch: null, - createdAt: 1730851312, - inGameName: "Seiðr#1805", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23505, - username: "Hinamu♱", - discordId: "484752209742004226", - discordAvatar: "dfdd73ac45222f7c9e82212520338ab4", - customUrl: "hinanamu", - country: "FR", - twitch: null, - createdAt: 1730908087, - inGameName: "Hnm?#hnmm", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [19093, 2670, 36265, 23505], + ownerUserId: 19093, checkIns: [ { bracketIdx: null, @@ -3321,13 +2534,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2587, - customUrl: "wave-breaker", - logoUrl: "tEcOeDG8e2O_eSd6ifZ1p-1713480995391.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "tEcOeDG8e2O_eSd6ifZ1p-1713480995391.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -3338,103 +2546,11 @@ export const SWIM_OR_SINK_167 = ( seed: 10, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730870818, activeRosterUserIds: [22614, 11244, 3181, 11495], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 22614, - username: "JJaeigh", - discordId: "326150039275831306", - discordAvatar: "6702ed701a3b3d848e0e4c58b757f79d", - customUrl: "jjaeigh", - country: "US", - twitch: "jjaeigh", - createdAt: 1730870818, - inGameName: "~JJaeigh~#1248", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11244, - username: "Blu🦋", - discordId: "309078437283495937", - discordAvatar: "a_447d3e6a4e57c4c1de672c27b19d8595", - customUrl: "somecallmeblu", - country: "US", - twitch: "somecallmeblu", - createdAt: 1730870821, - inGameName: "Blu?#2930", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3181, - username: "Cakes", - discordId: "410957477463457792", - discordAvatar: "9f62b042d73ac0cafd0a1b4eeff64475", - customUrl: null, - country: "US", - twitch: "xneocakes", - createdAt: 1730870823, - inGameName: "~Cakes~#2092", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11495, - username: "Parx", - discordId: "751471859530334318", - discordAvatar: "6f545e40c8cb9789a47d6ad89168ad4e", - customUrl: "parx", - country: "US", - twitch: "parxmarx", - createdAt: 1730870825, - inGameName: "~Parx~#1833", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31073, - username: "Shinds", - discordId: "378593455938600960", - discordAvatar: "0ecc233e8d5917ed43e3e51604fed43a", - customUrl: null, - country: "US", - twitch: "its_shinds", - createdAt: 1730870827, - inGameName: "~Shinds~#2929", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22614, 11244, 3181, 11495, 31073], + ownerUserId: 22614, checkIns: [ { bracketIdx: null, @@ -3457,13 +2573,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 455, - customUrl: "freeflow", - logoUrl: "IwYRerD5YKWV4W15unPGw-1688332800701.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "IwYRerD5YKWV4W15unPGw-1688332800701.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -3474,103 +2585,11 @@ export const SWIM_OR_SINK_167 = ( seed: 11, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730872875, activeRosterUserIds: [21487, 28391, 23292, 13854], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-b-J9byWINvtDmLv24gzeJ-1730872875114.webp", - members: [ - { - userId: 13854, - username: "Mini 💚💜", - discordId: "154334321275174912", - discordAvatar: "bcf7d710f4e7bd3fd9ec02295c1eab23", - customUrl: "mini", - country: "US", - twitch: "miniepiphany", - createdAt: 1730872875, - inGameName: "BIG.Mini#6901", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21487, - username: "Nep2ne", - discordId: "345165157942558722", - discordAvatar: "5c5ee07ff07504bca6373d377875c0e5", - customUrl: "nep2ne_", - country: "US", - twitch: "nep2ne_", - createdAt: 1730872878, - inGameName: "Nep2ne#2294", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28391, - username: "FairyLightLux", - discordId: "234094033616502786", - discordAvatar: "6fa43ca8354d6e58564ae15396b4c689", - customUrl: null, - country: null, - twitch: "fairylightlux", - createdAt: 1730872879, - inGameName: "SylphLux#1917", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23292, - username: "TotoStar", - discordId: "396849384798683137", - discordAvatar: "63821f1346a2117afe5c1cebe93bdb14", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730872880, - inGameName: "BIG Toto⭐️#1933", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27438, - username: "Sgt.Cooki", - discordId: "724798017747681360", - discordAvatar: "ae6045669ad94b613599d0024e019a7d", - customUrl: "sgtcooki", - country: "US", - twitch: "sgt_cooki627", - createdAt: 1730927365, - inGameName: "Coolo☆#3251", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [13854, 21487, 28391, 23292, 27438], + ownerUserId: 13854, checkIns: [ { bracketIdx: null, @@ -3598,8 +2617,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-b-J9byWINvtDmLv24gzeJ-1730872875114.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -3610,85 +2629,11 @@ export const SWIM_OR_SINK_167 = ( seed: 12, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730934390, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 3449, - username: "takobon", - discordId: "654725200595910656", - discordAvatar: "37b13f183aee9fdade16711e0729fae5", - customUrl: "takobon", - country: "US", - twitch: null, - createdAt: 1730934390, - inGameName: "takobon#6183", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4307, - username: "Ezio!", - discordId: "747592200887599195", - discordAvatar: "21e485f30ce4f5ec5cbad2683e101f22", - customUrl: "eziooooo", - country: "CA", - twitch: "ezio_streams", - createdAt: 1730934493, - inGameName: "Ezio! ^#3340", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20731, - username: "mel0mania", - discordId: "178733052762128385", - discordAvatar: "084e045739a0d155ef557e65547ef64e", - customUrl: "mel0mania", - country: "CA", - twitch: "mel0_mania", - createdAt: 1730934504, - inGameName: "MEL0MANIA★#1137", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22706, - username: "Tyflo", - discordId: "87279561787592704", - discordAvatar: "e8c1245afb622b997312832b372fe01e", - customUrl: null, - country: null, - twitch: "tyflo09", - createdAt: 1730934958, - inGameName: "Tyflo#3737", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3449, 4307, 20731, 22706], + ownerUserId: 3449, checkIns: [ { bracketIdx: null, @@ -3716,8 +2661,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -3728,103 +2673,11 @@ export const SWIM_OR_SINK_167 = ( seed: 13, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730925172, activeRosterUserIds: [863, 34414, 27917, 15278], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 27917, - username: "DeeZy", - discordId: "1091400500978647122", - discordAvatar: "f06117c9a0d6ab3d19f222b17208d668", - customUrl: null, - country: "US", - twitch: "deezy_spl", - createdAt: 1730925172, - inGameName: "DeeZy#8797", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15278, - username: "-C", - discordId: "203662255428993024", - discordAvatar: "18f3849f454e6a4e664ef212cedc49b6", - customUrl: "saypil", - country: "VN", - twitch: null, - createdAt: 1730925174, - inGameName: "teh-c#7843", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34414, - username: "Spritzu", - discordId: "218883697007394816", - discordAvatar: "e0d5d0f4dd968f0a70a68d383b1c8740", - customUrl: "spritzu", - country: "US", - twitch: "spritzuuu", - createdAt: 1730925178, - inGameName: "★spritzu#1225", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 863, - username: "kilokilo", - discordId: "214523097905102849", - discordAvatar: "9bcd39a227b2cb05359e95c37a8dbaab", - customUrl: "kilokilo", - country: "CA", - twitch: "kilotimestwo", - createdAt: 1730925182, - inGameName: "kilokilo#2652", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31526, - username: "JoJo", - discordId: "496120964275372032", - discordAvatar: "3660dd5033077ba60bafd87dea91fd83", - customUrl: "splatoon", - country: null, - twitch: null, - createdAt: 1730939317, - inGameName: "caravaggio#1994", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [27917, 15278, 34414, 863, 31526], + ownerUserId: 27917, checkIns: [ { bracketIdx: null, @@ -3852,13 +2705,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3766, - customUrl: "petrichor", - logoUrl: "jHALqGsodfc3oXJPTPYL8-1727310541049.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "jHALqGsodfc3oXJPTPYL8-1727310541049.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -3869,121 +2717,11 @@ export const SWIM_OR_SINK_167 = ( seed: 14, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730526186, activeRosterUserIds: [1736, 986, 25464, 2300], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 31259, - username: "Minty!", - discordId: "1136186639887114283", - discordAvatar: "1fba4c537da1a0fd709850c940616975", - customUrl: "mintyfox", - country: "US", - twitch: "mintthearcticfox", - createdAt: 1730526186, - inGameName: "ξヨ Minty!↑#2932", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1736, - username: "Draconif", - discordId: "468490984427225099", - discordAvatar: "63f9263b1004f75c1971f589317ea891", - customUrl: "draconif", - country: "US", - twitch: "draconif", - createdAt: 1730526191, - inGameName: "Draconif#1259", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 986, - username: "Latios", - discordId: "158074707067928577", - discordAvatar: "d9e2731d801d353de2d922ed770dcee4", - customUrl: "latios", - country: "US", - twitch: "epicsoniclatios", - createdAt: 1730526191, - inGameName: "Latios#2323", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2300, - username: "osa", - discordId: "968442484973781022", - discordAvatar: "c4b365fc8050aaa098e2668d01ea8697", - customUrl: "osa", - country: null, - twitch: null, - createdAt: 1730526191, - inGameName: "osa?#9356", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25464, - username: "Irrlusfml", - discordId: "873195011712352276", - discordAvatar: "b66cc3d99db068fd069c3c76010a11f5", - customUrl: "irrlus", - country: null, - twitch: null, - createdAt: 1730526191, - inGameName: "ξヨ IRRLUS#2192", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30204, - username: "Marcus", - discordId: "789943264370884708", - discordAvatar: "e8b16fc440deb2332cae4faed441e7a4", - customUrl: "marcus", - country: "US", - twitch: "marcushatesshot", - createdAt: 1730838396, - inGameName: "m#31926", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [31259, 1736, 986, 2300, 25464, 30204], + ownerUserId: 31259, checkIns: [ { bracketIdx: null, @@ -4011,13 +2749,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3853, - customUrl: "new-wave", - logoUrl: "6Kb1rvGmgT80cB1xsqcYI-1728868059287.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "6Kb1rvGmgT80cB1xsqcYI-1728868059287.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4028,70 +2761,14 @@ export const SWIM_OR_SINK_167 = ( seed: 15, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730940438, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-nETHLw8QQ0_AzfiPsuBwQ-1730940553743.webp", - members: [ - { - userId: 11350, - username: "aah?", - discordId: "317489836866928640", - discordAvatar: "9dd169691fa0306bac7d83f8ecde7d45", - customUrl: "aah", - country: "US", - twitch: "flamitez", - createdAt: 1730940438, - inGameName: "PANDORA#1510", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11275, - username: "DyS", - discordId: "251418401912782849", - discordAvatar: "6c517412c1f3d7cb30779bf5eb78208d", - customUrl: "dys", - country: "US", - twitch: "dys_splat", - createdAt: 1730940441, - inGameName: "HOMUNCULUS#1638", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9718, - username: "ori_", - discordId: "561371938383986698", - discordAvatar: "c548a73deb79f2608d03ffd4b29a35c8", - customUrl: "ori_", - country: "US", - twitch: null, - createdAt: 1730940948, - inGameName: "GOODBYE!!!#5140", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11350, 11275, 9718], + ownerUserId: 11350, checkIns: [], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-nETHLw8QQ0_AzfiPsuBwQ-1730940553743.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4102,85 +2779,11 @@ export const SWIM_OR_SINK_167 = ( seed: 16, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730912708, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-bXW8Qb1mvrgvqCr0J-cq7-1730912708301.webp", - members: [ - { - userId: 19035, - username: "Magyk", - discordId: "271823983429550081", - discordAvatar: "73b4e9b8ddf9d275b5cde3e859e608b9", - customUrl: "magyk", - country: "US", - twitch: null, - createdAt: 1730912708, - inGameName: "Magyk♪ :•:#2624", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2088, - username: "★ ichigo", - discordId: "732376196012179567", - discordAvatar: "7b6ad3e6bb2adab2bb0a2d9b3f17a28d", - customUrl: "ichigo", - country: "US", - twitch: null, - createdAt: 1730912712, - inGameName: "Ichie.deco#1196", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9454, - username: "Pixel <3", - discordId: "445312367526543372", - discordAvatar: "99c049f3c690daa8b8bb852b0751ecbf", - customUrl: "pixelhearts", - country: "CA", - twitch: "pixel__hearts", - createdAt: 1730920131, - inGameName: "Pixel <3#1912", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2059, - username: "Cactus", - discordId: "156592091818885120", - discordAvatar: "f1d49e4dc9e9903ac5fae0b3df33639b", - customUrl: "glitchedcactus", - country: "US", - twitch: "glitchedcactus1", - createdAt: 1730929082, - inGameName: "Cactus#3214", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [19035, 2088, 9454, 2059], + ownerUserId: 19035, checkIns: [ { bracketIdx: null, @@ -4208,8 +2811,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-bXW8Qb1mvrgvqCr0J-cq7-1730912708301.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4220,85 +2823,11 @@ export const SWIM_OR_SINK_167 = ( seed: 17, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730936919, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-_wB0IydnUgDBkskX8eq35-1730936919244.webp", - members: [ - { - userId: 35571, - username: "Comma", - discordId: "971600524875030599", - discordAvatar: "e4323497e2627b35dd58f005f8f8f00b", - customUrl: "commatose", - country: "US", - twitch: null, - createdAt: 1730936919, - inGameName: "shawrk#4318", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25168, - username: "Drag?", - discordId: "280507650288910336", - discordAvatar: "fc1acd8cb920b752a867746d576d004c", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730936940, - inGameName: "Drag?#1163", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27485, - username: "🗿", - discordId: "502183610506412032", - discordAvatar: "b02f7164844ebee5bbd768ffb7dab662", - customUrl: "rook", - country: "KP", - twitch: null, - createdAt: 1730936960, - inGameName: "BigFish♪#2829", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14007, - username: "Thyme", - discordId: "815157329313923093", - discordAvatar: "72af87d127baeb3f376c870776f34c3e", - customUrl: "freshsquiffer", - country: "CA", - twitch: "freshsquiffer", - createdAt: 1730937813, - inGameName: "アロハ#2443", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [35571, 25168, 27485, 14007], + ownerUserId: 35571, checkIns: [ { bracketIdx: null, @@ -4326,8 +2855,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-_wB0IydnUgDBkskX8eq35-1730936919244.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4338,85 +2867,11 @@ export const SWIM_OR_SINK_167 = ( seed: 18, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730937337, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-jdoLt7-S9ClBnQNRtqOze-1730937337828.webp", - members: [ - { - userId: 460, - username: "avril", - discordId: "533510530321743872", - discordAvatar: "b277968419c91569d9ce009b80e4ea69", - customUrl: "a__vril", - country: "HK", - twitch: null, - createdAt: 1730937337, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1338, - username: "Cytrus", - discordId: "346396687209594890", - discordAvatar: "38f3450730ee18580b609a2333a71577", - customUrl: "cytrus", - country: null, - twitch: null, - createdAt: 1730937342, - inGameName: "Cytrus#1239", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5679, - username: "Ping", - discordId: "655921179185643530", - discordAvatar: "bf47493b5f285cda911207732c54e30b", - customUrl: "pingaling", - country: "HK", - twitch: null, - createdAt: 1730937348, - inGameName: "after you…#2794", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 241, - username: "mars", - discordId: "767716380833087489", - discordAvatar: "46ef58f7da673fecdc583dc6a16a57c8", - customUrl: "mars", - country: "US", - twitch: null, - createdAt: 1730937354, - inGameName: "mars#1311", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [460, 1338, 5679, 241], + ownerUserId: 460, checkIns: [ { bracketIdx: null, @@ -4444,8 +2899,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-jdoLt7-S9ClBnQNRtqOze-1730937337828.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4456,121 +2911,11 @@ export const SWIM_OR_SINK_167 = ( seed: 19, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730769135, activeRosterUserIds: [33116, 34014, 44751, 22756], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-ItBKhtBOvsxcD9yMJDrsP-1730769135503.webp", - members: [ - { - userId: 11951, - username: "Andric", - discordId: "363517227535826958", - discordAvatar: "a_20b679d75edb247374a22f11e285999b", - customUrl: "typos", - country: "US", - twitch: "typos_tv", - createdAt: 1730769135, - inGameName: "FREEEWIN#3363", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33116, - username: "Andric", - discordId: "425766799590686720", - discordAvatar: "e4cd4b0cd25014f6b103d9c58e89c4e1", - customUrl: "andric", - country: "US", - twitch: null, - createdAt: 1730769143, - inGameName: "Andric#3010", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34014, - username: "Jay", - discordId: "1085814336645247039", - discordAvatar: "6a30c2ad557d52f000ae07de9576966e", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730769146, - inGameName: "Jay★#1846", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44751, - username: "Koki!", - discordId: "727570085199347864", - discordAvatar: "246bce33108dec97d506f49dc2ddd2c3", - customUrl: "koki", - country: "US", - twitch: null, - createdAt: 1730769149, - inGameName: "lc...Koki#3019", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 44198, - username: "sango", - discordId: "1225182177096896512", - discordAvatar: "2eb0fad7ff62c9c3e49e749f7fac219f", - customUrl: "sango", - country: "CA", - twitch: null, - createdAt: 1730772612, - inGameName: "4K#2192", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22756, - username: "ceiling!", - discordId: "588400582939901972", - discordAvatar: "d5851eb4f258741c0ab8cdeec7051456", - customUrl: "ceiling", - country: "US", - twitch: null, - createdAt: 1730929021, - inGameName: "↓ ceiling!#2229", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11951, 33116, 34014, 44751, 44198, 22756], + ownerUserId: 11951, checkIns: [ { bracketIdx: null, @@ -4598,13 +2943,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4079, - customUrl: "sweet-espresso", - logoUrl: null, - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "pickup-logo-ItBKhtBOvsxcD9yMJDrsP-1730769135503.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4615,103 +2955,11 @@ export const SWIM_OR_SINK_167 = ( seed: 20, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730836875, activeRosterUserIds: [1616, 17310, 34657, 22409], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 1616, - username: "Vertigo_95", - discordId: "208047154982289412", - discordAvatar: "7086d6ec8e1e78832495a7ff742d065b", - customUrl: "vertigo_95", - country: "US", - twitch: "vertigo_95", - createdAt: 1730836875, - inGameName: "Vertigø_c#5295", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1487, - username: "Brock.com", - discordId: "123514351641559042", - discordAvatar: "66a1487a86a78c29771f0f80ce727a77", - customUrl: "brockdotcom", - country: "US", - twitch: "brockdotcom", - createdAt: 1730836878, - inGameName: "BrΘck.c©m#1845", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 17310, - username: "OhkoXar", - discordId: "706358528599916586", - discordAvatar: "b39a02338ed3a0267ab509eb084feb00", - customUrl: "ohkoxar", - country: "US", - twitch: "ohkoxar", - createdAt: 1730836887, - inGameName: "Θ© OhkoXar#1431", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34657, - username: "NateFH", - discordId: "899408090007494707", - discordAvatar: "60731a6bad0e2656faa1deb422de32c7", - customUrl: "natefh", - country: "US", - twitch: "natefh", - createdAt: 1730836891, - inGameName: "NateFH#1930", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22409, - username: "Cupid", - discordId: "586536527085961237", - discordAvatar: "c7b854ef3e36092fb7545fdb7babbe86", - customUrl: "cupidangel", - country: "AU", - twitch: null, - createdAt: 1730938882, - inGameName: "Pinot Noir#3156", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [1616, 1487, 17310, 34657, 22409], + ownerUserId: 1616, checkIns: [ { bracketIdx: null, @@ -4739,13 +2987,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3501, - customUrl: "outcast", - logoUrl: "7wZUJ0SboJ0-FJmhvX_9N-1725500479007.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "7wZUJ0SboJ0-FJmhvX_9N-1725500479007.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4756,85 +2999,11 @@ export const SWIM_OR_SINK_167 = ( seed: 21, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730844165, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 5471, - username: "Bebrop", - discordId: "100322457579163648", - discordAvatar: "4e31b3722fb846398b2cd6cad9458687", - customUrl: "bebrop", - country: "US", - twitch: null, - createdAt: 1730844165, - inGameName: "Ж∵Bebrop#8946", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2672, - username: "AyJae", - discordId: "335211569514545154", - discordAvatar: "2ac0f6661b3d69029719199a3267aa80", - customUrl: "ayjae", - country: "US", - twitch: "ayjae_5488", - createdAt: 1730844167, - inGameName: "Ж∵ĄyJαe#1696", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4504, - username: "Lord Espurr", - discordId: "262788885879324672", - discordAvatar: "5dc90e5653993f22a04c813dac92c21c", - customUrl: "lordespurr", - country: "KP", - twitch: "lordespurr", - createdAt: 1730844171, - inGameName: "LordEspurr#2800", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25856, - username: "Hyper", - discordId: "267027958294773762", - discordAvatar: "ded7b2d6b51680e6255f2986b2ac3d19", - customUrl: null, - country: "US", - twitch: "thehyperactived3", - createdAt: 1730844174, - inGameName: "¤*°4Nishi#1810", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5471, 2672, 4504, 25856], + ownerUserId: 5471, checkIns: [ { bracketIdx: null, @@ -4862,13 +3031,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3153, - customUrl: "memento-moray", - logoUrl: "E2r_hRrbGpa4r4sMmVrlf-1723605518416.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "E2r_hRrbGpa4r4sMmVrlf-1723605518416.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4879,85 +3043,11 @@ export const SWIM_OR_SINK_167 = ( seed: 22, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730926359, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-p3UgTkOwvFWBT2Cxvuhuq-1730926358900.webp", - members: [ - { - userId: 5334, - username: "Davfernape", - discordId: "200066011616116737", - discordAvatar: "c3f51dbce14c8d0526579e783d7cf7b2", - customUrl: null, - country: "US", - twitch: "davfernape", - createdAt: 1730926359, - inGameName: "↑MONK£¥#3265", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34071, - username: "Peace", - discordId: "280531377345265664", - discordAvatar: "a5145f4018aea32942d16da30db6f71e", - customUrl: null, - country: "US", - twitch: "peaceful_robin", - createdAt: 1730926611, - inGameName: "SBz☆ Peace#2232", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23946, - username: ".!", - discordId: "365882248341487618", - discordAvatar: "bb229388bbae62b8cddf6a95771cefc5", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730926770, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21339, - username: "Soro", - discordId: "984782488595496971", - discordAvatar: "5fff63c5cc8b474ce560bdd7fa3234fa", - customUrl: "soro", - country: "BB", - twitch: null, - createdAt: 1730927035, - inGameName: "DogBoySoro#1928", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5334, 34071, 23946, 21339], + ownerUserId: 5334, checkIns: [ { bracketIdx: null, @@ -4985,8 +3075,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-p3UgTkOwvFWBT2Cxvuhuq-1730926358900.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -4997,85 +3087,11 @@ export const SWIM_OR_SINK_167 = ( seed: 23, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730928135, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 23115, - username: "flowerss", - discordId: "614073583295135744", - discordAvatar: "f67a16ae805ce2837831f85a94697b06", - customUrl: "flowerss", - country: "US", - twitch: null, - createdAt: 1730928135, - inGameName: "λ...flowerss#2664", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5261, - username: "Koda", - discordId: "312053525171535872", - discordAvatar: "4d304e52ae21dfc9f9adc8099b2855a8", - customUrl: "starfaller__", - country: "US", - twitch: "starfaller__", - createdAt: 1730928142, - inGameName: "ƒ¿¡Koda!?#1726", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 190, - username: "tart", - discordId: "401894176498647041", - discordAvatar: "f1c2f67c842dd20bc9fe9594ea75eaf0", - customUrl: "tart", - country: "US", - twitch: null, - createdAt: 1730928155, - inGameName: "λ...tart^#2174", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12585, - username: "Atlas", - discordId: "700313515709300802", - discordAvatar: "15f90e8cde83df5eb065cad6be6236f6", - customUrl: "atlas", - country: "US", - twitch: null, - createdAt: 1730931277, - inGameName: "Chaeri#3358", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [23115, 5261, 190, 12585], + ownerUserId: 23115, checkIns: [ { bracketIdx: null, @@ -5103,8 +3119,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -5115,111 +3131,14 @@ export const SWIM_OR_SINK_167 = ( seed: 24, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730880730, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 5662, - username: "Plus", - discordId: "461787942478675978", - discordAvatar: "7823246af514d7c6f6880ccb58c2138c", - customUrl: "plussy", - country: "AU", - twitch: "plus218", - createdAt: 1730880730, - inGameName: "Plussy#1291", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2731, - username: "VanNoah", - discordId: "239188345240944640", - discordAvatar: "3317c012ad307d9dbb0f8e76ae2b51d5", - customUrl: "vannoah", - country: "AU", - twitch: "van_noah2004", - createdAt: 1730880736, - inGameName: "VanNoah#1555", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31764, - username: "Rider🦦", - discordId: "491384276282114048", - discordAvatar: "973c09f6e329313f650f52fe6de7b3d2", - customUrl: "ridercoroika", - country: "AU", - twitch: null, - createdAt: 1730880862, - inGameName: "Bara Rider#1679", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25133, - username: "jinx", - discordId: "319752115625000961", - discordAvatar: "067ac92f4e34af259d56f821208b7a2b", - customUrl: "oak", - country: "AU", - twitch: null, - createdAt: 1730894461, - inGameName: "☆jinx☰∵#1970", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 17855, - username: "explosion wizard", - discordId: "916459853738819624", - discordAvatar: "d6058e069627eae0bd432bb29b0230ae", - customUrl: "kojuke", - country: "NZ", - twitch: null, - createdAt: 1730936268, - inGameName: "paracelsus#2947", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5662, 2731, 31764, 25133, 17855], + ownerUserId: 5662, checkIns: [], - mapPool: [], - team: { - id: 3586, - customUrl: "meows-the-chance", - logoUrl: "PEhmJbnYx3ArswBI2lelI-1725362369276.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "PEhmJbnYx3ArswBI2lelI-1725362369276.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -5230,103 +3149,11 @@ export const SWIM_OR_SINK_167 = ( seed: 25, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730939363, activeRosterUserIds: [21205, 1953, 32885, 2888], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 21205, - username: "Young Bob", - discordId: "285136375198777344", - discordAvatar: "e2eb4d6d375cf1c234f7cec427280e86", - customUrl: "youngbob776", - country: "US", - twitch: "youngbob1", - createdAt: 1730939363, - inGameName: "Young⇔Bob#2564", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32885, - username: "Skippy⇔Tox", - discordId: "791870633361145857", - discordAvatar: "8fb10c2e96e83f8e1f5ea923c9f2b49f", - customUrl: null, - country: "US", - twitch: "businessasusuai", - createdAt: 1730939368, - inGameName: "Skippy⇔Tox#5504", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1953, - username: "Bored asf", - discordId: "759144458247471104", - discordAvatar: "2983c29473a1e73eb9e2d74368133604", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730939370, - inGameName: "Bored⇔asf#1000", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15188, - username: "91Yugo", - discordId: "276813383771095041", - discordAvatar: "ece459f119bb8a9503e31430cb7e75a8", - customUrl: "91yugo", - country: "FR", - twitch: "91yugo", - createdAt: 1730939376, - inGameName: "91Yugo#1966", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2888, - username: "Wiz", - discordId: "187294752209633280", - discordAvatar: "569029ccb4052b5386314f6c02e367ee", - customUrl: "w1zb1zz", - country: "US", - twitch: "w1zb1zz", - createdAt: 1730939459, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [21205, 32885, 1953, 15188, 2888], + ownerUserId: 21205, checkIns: [ { bracketIdx: null, @@ -5354,13 +3181,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2075, - customUrl: "shellfire", - logoUrl: "EB6RH7dngs-DpuK65F_0f-1722735283161.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "EB6RH7dngs-DpuK65F_0f-1722735283161.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -5371,85 +3193,11 @@ export const SWIM_OR_SINK_167 = ( seed: 26, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730838132, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 5106, - username: "Sukuna", - discordId: "791121402068467723", - discordAvatar: "3d44033a0632e794d0482ad53d2aeaa4", - customUrl: "devil", - country: "US", - twitch: "d3vilsfall", - createdAt: 1730838132, - inGameName: "Sυκμη⍺´ω`#1959", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8297, - username: "Alice 🌸", - discordId: "120213357205651457", - discordAvatar: "57083139274550597536cb85fa45a053", - customUrl: "alyred54", - country: "US", - twitch: null, - createdAt: 1730838136, - inGameName: "Pizzasquid #1740", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8830, - username: "cødy...", - discordId: "211702334953226240", - discordAvatar: "e31e22805d9774476a8d51ce2342e89c", - customUrl: null, - country: "US", - twitch: "soulreaper0081", - createdAt: 1730838136, - inGameName: "Yuta...#2764", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38176, - username: "BrushMommy", - discordId: "338806780446638082", - discordAvatar: "3f39bcd2cc40fa7cce16172299201dd9", - customUrl: "dreamyveemo", - country: "US", - twitch: "brushmommy", - createdAt: 1730903083, - inGameName: "BrushMommy#1405", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5106, 8297, 8830, 38176], + ownerUserId: 5106, checkIns: [ { bracketIdx: null, @@ -5477,13 +3225,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3100, - customUrl: "eepy-dreepy", - logoUrl: "CyuF3pr4kcYXl4g0ryqmn-1720710900144.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "CyuF3pr4kcYXl4g0ryqmn-1720710900144.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -5494,57 +3237,14 @@ export const SWIM_OR_SINK_167 = ( seed: 27, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730917380, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 23731, - username: "Nero_", - discordId: "639619317213691904", - discordAvatar: "dcb9c4e3719923d220d287b8512286bb", - customUrl: "nero_gx", - country: "ES", - twitch: null, - createdAt: 1730917380, - inGameName: "ψ Nero#1025", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36215, - username: "Heaven", - discordId: "934847760551792672", - discordAvatar: "0199d20cf17e71cf9f050855fa21e043", - customUrl: "heaven", - country: "MX", - twitch: null, - createdAt: 1730917384, - inGameName: "Heaven#1583", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [23731, 36215], + ownerUserId: 23731, checkIns: [], - mapPool: [], - team: { - id: 2170, - customUrl: "blitz-wave", - logoUrl: "WO6kHARXtq8344_OvrwXC-1706824485076.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "WO6kHARXtq8344_OvrwXC-1706824485076.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -5555,85 +3255,11 @@ export const SWIM_OR_SINK_167 = ( seed: 28, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730832667, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 16387, - username: "Bubble", - discordId: "559843245023166484", - discordAvatar: "17dc04814dc84cea0241aafc4b67baf4", - customUrl: "sockz", - country: "US", - twitch: "splatzparty", - createdAt: 1730832667, - inGameName: "Bubble.mp4#3578", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6051, - username: "ACECT", - discordId: "136664437431074816", - discordAvatar: "12b56514f1e79987842d3e968015e3c0", - customUrl: "acect", - country: "US", - twitch: "acectttt", - createdAt: 1730832669, - inGameName: "ACECT.mp4#2681", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22903, - username: "NELLF1RE", - discordId: "208275341427343360", - discordAvatar: "46214c065055955526d982a3550948b8", - customUrl: "nellf1re", - country: "US", - twitch: "nellf1re", - createdAt: 1730832670, - inGameName: "NELL.mp4#6192", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23132, - username: "soap!!", - discordId: "139948794149076993", - discordAvatar: "a_02368878ec1314461a304eb1d888fe8e", - customUrl: "soap", - country: "US", - twitch: "soapful_", - createdAt: 1730832675, - inGameName: "☆! soap c:#2845", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [16387, 6051, 22903, 23132], + ownerUserId: 16387, checkIns: [ { bracketIdx: null, @@ -5661,8 +3287,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -5673,103 +3299,11 @@ export const SWIM_OR_SINK_167 = ( seed: 29, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730853887, activeRosterUserIds: [29120, 35225, 8587, 27440], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 27440, - username: "Auto~ጀ", - discordId: "856661678740865024", - discordAvatar: "5364b775e8114163cf7d8e2df4ad6a64", - customUrl: "auto_z0178", - country: "US", - twitch: null, - createdAt: 1730853887, - inGameName: "ミ》Auto#8936", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29120, - username: "AwesIce", - discordId: "950545592097063002", - discordAvatar: "05bbb7db212e0bf948290229e3e552b8", - customUrl: "awesice", - country: "US", - twitch: null, - createdAt: 1730853889, - inGameName: "ミ》AwesIce#4299", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35225, - username: "Kolos", - discordId: "617298179968335872", - discordAvatar: "644cf13a332893d1339c15182d27fbab", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1730853890, - inGameName: "ミ》Kolos#1649", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8587, - username: "Vytalic", - discordId: "505832570521649152", - discordAvatar: "d802da2cc51ba4d0a8fa1cdde5c39e43", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730853891, - inGameName: "ミ》Vγτãłîç#3075", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23333, - username: "ItsJustRin", - discordId: "387418302336729091", - discordAvatar: "90ac5649ce3fb15122313f8805af3145", - customUrl: "itsjustrin", - country: "US", - twitch: "iitsjustrin", - createdAt: 1730927852, - inGameName: "☆_★ rin#5714", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [27440, 29120, 35225, 8587, 23333], + ownerUserId: 27440, checkIns: [ { bracketIdx: null, @@ -5797,13 +3331,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2175, - customUrl: "wavelength", - logoUrl: "Wlt2RZEetRwHvDNs02Adf-1720814629409.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "Wlt2RZEetRwHvDNs02Adf-1720814629409.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -5814,103 +3343,11 @@ export const SWIM_OR_SINK_167 = ( seed: 30, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730928986, activeRosterUserIds: [26103, 31395, 33402, 31195], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-tEtTINjP6iHk01HpA1rQ2-1730928986789.webp", - members: [ - { - userId: 26103, - username: "sawyer but cat", - discordId: "303164813851230209", - discordAvatar: "537fe6f7e29788c83774bc55edf243e5", - customUrl: null, - country: "US", - twitch: "boba_lisa", - createdAt: 1730928986, - inGameName: "「F」sawyer #7539", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31395, - username: "InfiniTy", - discordId: "426082473257205760", - discordAvatar: "e2b5897800261915f3e8302584e9d68d", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730929028, - inGameName: "In 「F」iniTy#1007", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31195, - username: "Cotni", - discordId: "164695301007998979", - discordAvatar: "5aef110a8b1eff52d2d34ee4b543cd61", - customUrl: "cotni", - country: "CA", - twitch: null, - createdAt: 1730929043, - inGameName: "「F」Cotni#3521", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28700, - username: "Kanga", - discordId: "208801825816576000", - discordAvatar: "aab1f787eeb4944ea3b04951a118ad22", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730929068, - inGameName: "Kanga#2476", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33402, - username: "flyNn#3071", - discordId: "644743772407726088", - discordAvatar: "aea0fa0b8c9203b8dc30337d00689f4f", - customUrl: "spsflynn", - country: "US", - twitch: "flynn3071", - createdAt: 1730929154, - inGameName: "*~*flyNn#2174", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [26103, 31395, 31195, 28700, 33402], + ownerUserId: 26103, checkIns: [ { bracketIdx: null, @@ -5938,8 +3375,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-tEtTINjP6iHk01HpA1rQ2-1730928986789.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -5950,85 +3387,11 @@ export const SWIM_OR_SINK_167 = ( seed: 31, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730775625, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 30685, - username: "Theresa", - discordId: "152359818206642176", - discordAvatar: "de7085667353da6f6cc53d3df063dcea", - customUrl: "theresa", - country: "US", - twitch: "los_theresa", - createdAt: 1730775625, - inGameName: "LosTheresa#3238", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30686, - username: "=", - discordId: "141142141492527104", - discordAvatar: "ec3a898760654e86d5dd724f89e2c3d1", - customUrl: null, - country: null, - twitch: null, - createdAt: 1730775627, - inGameName: "Los Equals#2851", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22396, - username: "Hammy", - discordId: "196033193718185985", - discordAvatar: "2225b304639968dae8851688aadfb95f", - customUrl: "hammy", - country: "CA", - twitch: "hammyinthewall", - createdAt: 1730775628, - inGameName: "Los Hammy#4656", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1961, - username: "Slug", - discordId: "278951839003705344", - discordAvatar: "60b073c73757d1d2c775081af816aa1a", - customUrl: "seaslug", - country: "US", - twitch: "serventseaslug", - createdAt: 1730775632, - inGameName: "Los SeaSlug#2211", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30685, 30686, 22396, 1961], + ownerUserId: 30685, checkIns: [ { bracketIdx: null, @@ -6056,13 +3419,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1349, - customUrl: "los-inklings", - logoUrl: "d4l_fEYo7pQlMN0gRXMFn-1692066468630.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "d4l_fEYo7pQlMN0gRXMFn-1692066468630.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -6073,103 +3431,11 @@ export const SWIM_OR_SINK_167 = ( seed: 32, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730605037, activeRosterUserIds: [24514, 5187, 29823, 22744], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 24514, - username: "Tusk", - discordId: "281549533379428352", - discordAvatar: "a41a8de469d5f53496fbcbf14fdfb167", - customUrl: null, - country: "US", - twitch: "recycled_king", - createdAt: 1730605037, - inGameName: "н°Tusk#7435", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5187, - username: "Kahlium", - discordId: "100956973356302336", - discordAvatar: "8eadb2e1cf376598caac8d52785cfa5b", - customUrl: "kahlium", - country: "MX", - twitch: "kahlium", - createdAt: 1730605040, - inGameName: "н°Kahlium#1387", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10265, - username: "Soda.Chip", - discordId: "382722372853039114", - discordAvatar: "5f543ad51c89244ae88c6c1ff99e5b4f", - customUrl: "sodachip", - country: "US", - twitch: "sodachip_spl", - createdAt: 1730605043, - inGameName: "н°SodaChip#6437", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22744, - username: "Dustt 🍒", - discordId: "544379242687758361", - discordAvatar: "e3e068ffd68c0835630175221bb1919e", - customUrl: "dustyleggs", - country: "US", - twitch: "dustyleggs", - createdAt: 1730605046, - inGameName: "н°Dυstt♪#4897", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29823, - username: "Mage", - discordId: "275327890793562112", - discordAvatar: "f19d0ffdd06bc99ea9dd287c5e6eaf3d", - customUrl: "solmage", - country: "US", - twitch: "blackmageult", - createdAt: 1730936575, - inGameName: "Doritos 4D#2929", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [24514, 5187, 10265, 22744, 29823], + ownerUserId: 24514, checkIns: [ { bracketIdx: null, @@ -6197,13 +3463,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2592, - customUrl: "high-point", - logoUrl: "ARTJt7_GNn1MxMYQtZqwO-1717642183140.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "ARTJt7_GNn1MxMYQtZqwO-1717642183140.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -6214,103 +3475,11 @@ export const SWIM_OR_SINK_167 = ( seed: 33, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730862741, activeRosterUserIds: [5584, 30612, 13671, 36898], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 5584, - username: "yoshido", - discordId: "261999910042206208", - discordAvatar: "a_73829e0d85865fd539dcbdc1c09be4b2", - customUrl: "yoshido", - country: "CA", - twitch: "yoshido8", - createdAt: 1730862741, - inGameName: "σ*°yoshido#3235", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13671, - username: "Nutella🍊", - discordId: "744321370359333048", - discordAvatar: "ad83ba632be824313d7bf6219b35f43b", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730862749, - inGameName: "σ*°Nutella#7762", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30612, - username: "Crazy!?", - discordId: "692819852531990580", - discordAvatar: "915ab54a042abd26989766ff951d7e4a", - customUrl: "s-blast9291", - country: "US", - twitch: "literallycrazy92", - createdAt: 1730862751, - inGameName: "σ*°Crazy!?#2260", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36898, - username: "Town Of Salem", - discordId: "423974234075693076", - discordAvatar: "a_6fe993c18acdb5a068c7f1befcc97c83", - customUrl: "town", - country: "US", - twitch: null, - createdAt: 1730862753, - inGameName: "σ*°Town#1561", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31580, - username: "💚Mint&Me💚", - discordId: "1111427379424940103", - discordAvatar: "38a5ff15d6943967a8ab2ee4f64ee103", - customUrl: null, - country: null, - twitch: null, - createdAt: 1730862754, - inGameName: "Saicadelic#2256", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5584, 13671, 30612, 36898, 31580], + ownerUserId: 5584, checkIns: [ { bracketIdx: null, @@ -6338,13 +3507,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2733, - customUrl: "magic-beans", - logoUrl: "7VPROm50d_TI5PFxuUVRH-1719853192293.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "7VPROm50d_TI5PFxuUVRH-1719853192293.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -6355,111 +3519,14 @@ export const SWIM_OR_SINK_167 = ( seed: 34, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730840221, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 29645, - username: "MastaMario", - discordId: "216653023252840449", - discordAvatar: "118198be86984d8f628b7eaded9f41ab", - customUrl: "mastamario", - country: "MX", - twitch: "mastermario124", - createdAt: 1730840221, - inGameName: "はい [Masta]#2933", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31533, - username: "Bird", - discordId: "409245959822770181", - discordAvatar: "a1ce437396a2f9ed40c4b66f048216c9", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730840228, - inGameName: "はいheheheha#1181", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29483, - username: "Mr. Miu", - discordId: "833912768985563156", - discordAvatar: "7ec449c9e89576acf0992e54591980e6", - customUrl: null, - country: "MX", - twitch: "mui_888", - createdAt: 1730840230, - inGameName: "はい Mr.Miu#2064", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42118, - username: "anny", - discordId: "975260464151953418", - discordAvatar: "0a1e4c867af896c2e1ab280758f6c9ca", - customUrl: null, - country: "MX", - twitch: null, - createdAt: 1730840247, - inGameName: "ネオ :)#2395", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36800, - username: "Octo_Shrimp", - discordId: "345321359112667136", - discordAvatar: "7325a53446fc0678dd2d6a1c4da363dd", - customUrl: "shrimpster", - country: "MX", - twitch: null, - createdAt: 1730840250, - inGameName: "ネオ【Shrimp】#2715", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [29645, 31533, 29483, 42118, 36800], + ownerUserId: 29645, checkIns: [], - mapPool: [], - team: { - id: 2135, - customUrl: "sonora-inkamita-de-iztapalapa", - logoUrl: "59Zjn_0vQZ3J9HV8XnadM-1705892386595.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "59Zjn_0vQZ3J9HV8XnadM-1705892386595.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -6470,121 +3537,11 @@ export const SWIM_OR_SINK_167 = ( seed: 35, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730770163, activeRosterUserIds: [25469, 3513, 26820, 30122], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 30122, - username: "StaticGeckos", - discordId: "158420798661591040", - discordAvatar: "4dde4f3d9208462f152460b8e8ee16c1", - customUrl: "staticgeckos", - country: "US", - twitch: null, - createdAt: 1730770163, - inGameName: "R↑ Static#1144", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26820, - username: "AstridSteorra", - discordId: "338038378417356801", - discordAvatar: "7c65c2dc0f2801089fdacf0a86c63bdb", - customUrl: "steorra", - country: "US", - twitch: "astridsteorra", - createdAt: 1730770166, - inGameName: "R↑ Steorra#1628", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31154, - username: "Renzo", - discordId: "79007222360702976", - discordAvatar: "06a945f71d4d6b11fc000cd9fd029c9d", - customUrl: "renzo", - country: "US", - twitch: "renzoandknuckles", - createdAt: 1730770170, - inGameName: "Renzo™#3392", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10297, - username: "Yung", - discordId: "714673961555984445", - discordAvatar: "9e731c1961c2771e4761cded3ee52bb4", - customUrl: "yungnc7", - country: "US", - twitch: null, - createdAt: 1730770171, - inGameName: "R↑ Yung#3273", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3513, - username: "PurplZebra", - discordId: "755884158479237212", - discordAvatar: "620d0c7368072a454c4b3d1871799164", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730930402, - inGameName: "R↑ Zebra#1631", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25469, - username: "Nэon", - discordId: "332302478101970944", - discordAvatar: "9c21b047cc3a36727996147a576c85b5", - customUrl: "n3on", - country: "US", - twitch: null, - createdAt: 1730940399, - inGameName: "Nэon#2724", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30122, 26820, 31154, 10297, 3513, 25469], + ownerUserId: 30122, checkIns: [ { bracketIdx: null, @@ -6612,13 +3569,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1325, - customUrl: "squid-rollups", - logoUrl: "zNz78ZRywB9fAKIhkFprB-1702229910598.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "zNz78ZRywB9fAKIhkFprB-1702229910598.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -6629,93 +3581,14 @@ export const SWIM_OR_SINK_167 = ( seed: 36, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730753582, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 37477, - username: "Star", - discordId: "288116514924658688", - discordAvatar: "e19830a7664e74364cc80b986a9cf817", - customUrl: "estrella", - country: "MX", - twitch: null, - createdAt: 1730753582, - inGameName: "⌒★ Star#3354", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3635, - username: "Jam", - discordId: "585562452544978954", - discordAvatar: "8993b6ad4d8945c51538025a803e8f32", - customUrl: "james", - country: "CA", - twitch: null, - createdAt: 1730753589, - inGameName: "⌒★ Jam#3645", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7433, - username: "soap", - discordId: "644277747631390747", - discordAvatar: "57707e04c437fcf9e10420fd006d8532", - customUrl: "soapsopa_", - country: "US", - twitch: null, - createdAt: 1730753592, - inGameName: "soapsopa_#1192", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6647, - username: "Snivo!", - discordId: "319687833784942592", - discordAvatar: "1650f9cc9313362236b5974215fb03b2", - customUrl: "snivo", - country: "US", - twitch: "serviine", - createdAt: 1730753597, - inGameName: "Snivo ♪#1911", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [37477, 3635, 7433, 6647], + ownerUserId: 37477, checkIns: [], - mapPool: [], - team: { - id: 3510, - customUrl: "strawberry-supernova", - logoUrl: null, - deletedAt: null, - }, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -6726,85 +3599,11 @@ export const SWIM_OR_SINK_167 = ( seed: 37, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730929508, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 20774, - username: "BajaBlastr", - discordId: "785678909555474462", - discordAvatar: "a31ef6cb5eac1a9b525f92dd0f32efb1", - customUrl: "bajablastr", - country: "US", - twitch: "bajablastr_", - createdAt: 1730929508, - inGameName: "βαjαβlαstr#1203", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20807, - username: "✧ Tea ✧", - discordId: "475220573941661706", - discordAvatar: "8c2eca5b19f76ab8d2acac655bb0c450", - customUrl: "splatea", - country: "US", - twitch: "splatea", - createdAt: 1730929511, - inGameName: "SplaTea TV#9482", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42703, - username: "gameing", - discordId: "863790839132848139", - discordAvatar: "4afdbdbcaa55dc59b47522c3bbbfb58b", - customUrl: "gameing", - country: null, - twitch: null, - createdAt: 1730929514, - inGameName: "gameing#2389", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 42409, - username: "Axo", - discordId: "1245573170623156325", - discordAvatar: "439c27d40687693e5ec007b70a967055", - customUrl: "axo", - country: null, - twitch: null, - createdAt: 1730929826, - inGameName: "☆メンタリーイル☆#1319", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [20774, 20807, 42703, 42409], + ownerUserId: 20774, checkIns: [ { bracketIdx: null, @@ -6832,13 +3631,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 2963, - customUrl: "moonshine", - logoUrl: "Bs9LiXeN-t0NPnkePFUwl-1715752330445.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "Bs9LiXeN-t0NPnkePFUwl-1715752330445.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -6849,88 +3643,14 @@ export const SWIM_OR_SINK_167 = ( seed: 38, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730918770, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 28170, - username: "Eon", - discordId: "397117179465564160", - discordAvatar: "b98d5670dae1d53a9580074baae6f8ee", - customUrl: "eon3000", - country: "US", - twitch: null, - createdAt: 1730918770, - inGameName: "[шя] Eon#1465", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11941, - username: "'Sium", - discordId: "787918226272681986", - discordAvatar: "260dcadbb17b2b2f5703027f77f0bc9a", - customUrl: "elysium", - country: "US", - twitch: "elysium_09", - createdAt: 1730918777, - inGameName: "Elysium#1821", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 715, - username: "Craft", - discordId: "253984054901342210", - discordAvatar: "120cd1d63298df38ad533bada3620f79", - customUrl: null, - country: "US", - twitch: "craft_spl", - createdAt: 1730918781, - inGameName: "☆°Craft#1704", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11409, - username: "Sapphi", - discordId: "424775108775903242", - discordAvatar: "54808e29add71071091cde7f296c681a", - customUrl: "sapphi", - country: "US", - twitch: null, - createdAt: 1730918861, - inGameName: "≡□> Sapphi#7100", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [28170, 11941, 715, 11409], + ownerUserId: 28170, checkIns: [], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -6941,85 +3661,11 @@ export const SWIM_OR_SINK_167 = ( seed: 39, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730851475, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 26428, - username: "Neo$Crist", - discordId: "391399666849153024", - discordAvatar: "8a460ead8e2eea2bfcdd4a70a36939b9", - customUrl: null, - country: "PR", - twitch: "neocrist", - createdAt: 1730851475, - inGameName: "Neo☆PR#2944", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29182, - username: "Macha", - discordId: "1076939750994346054", - discordAvatar: "60a3ca71c6c44aa53da0eecc1d29f8ea", - customUrl: "machalatays", - country: "CA", - twitch: null, - createdAt: 1730852187, - inGameName: "macha/まちゃ#1856", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9235, - username: "ジャルディン (J)", - discordId: "548854827619188748", - discordAvatar: "3a264a8cf1b9b6254ab94ef53519ba41", - customUrl: null, - country: null, - twitch: "tyandjtz", - createdAt: 1730853415, - inGameName: "「TK」Tyandj#2146", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30591, - username: "Fr0stα", - discordId: "373620234520756235", - discordAvatar: "dcde4fbf2bfc347ade65b572bf5fff93", - customUrl: "fr0sta", - country: "US", - twitch: null, - createdAt: 1730855938, - inGameName: "Fr0sta#1091", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [26428, 29182, 9235, 30591], + ownerUserId: 26428, checkIns: [ { bracketIdx: null, @@ -7047,8 +3693,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -7059,111 +3705,14 @@ export const SWIM_OR_SINK_167 = ( seed: 40, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730726309, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 25247, - username: "Xx_plinkomster505_xX", - discordId: "573943989825437706", - discordAvatar: "530c678a941cf20246ee9d2180437236", - customUrl: "chronic", - country: "US", - twitch: "chronicbackpainhitshard_", - createdAt: 1730726309, - inGameName: "DΔ Shumper#2224", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2279, - username: "Ark", - discordId: "459834973667459083", - discordAvatar: "ded8d4cdfde824462e69cd0c502ae15f", - customUrl: "ark", - country: "US", - twitch: null, - createdAt: 1730726312, - inGameName: "DΔ Ark#1872", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26162, - username: "e", - discordId: "382325712641720321", - discordAvatar: "8fc767bae73c45036c82e6f872fd2c97", - customUrl: "noobino", - country: "CA", - twitch: null, - createdAt: 1730726313, - inGameName: "e#5440", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4334, - username: "Roxymoron", - discordId: "635209020160081920", - discordAvatar: "d5bdfb0d9d360e344a5db89383bf51a6", - customUrl: "roxymoron", - country: "US", - twitch: null, - createdAt: 1730726315, - inGameName: "240 ˚ Roxy #2267", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24013, - username: "Ryo", - discordId: "845489270261153822", - discordAvatar: "0ca30085625a2b5a4d7da3893aba0ce6", - customUrl: "ryochan", - country: "US", - twitch: null, - createdAt: 1730726317, - inGameName: "[R]yosaan*#2427", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25247, 2279, 26162, 4334, 24013], + ownerUserId: 25247, checkIns: [], - mapPool: [], - team: { - id: 3470, - customUrl: "distortion", - logoUrl: "ns-MDQchEe5E4_ouZxX3k-1728181018528.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "ns-MDQchEe5E4_ouZxX3k-1728181018528.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -7174,103 +3723,11 @@ export const SWIM_OR_SINK_167 = ( seed: 41, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730840643, activeRosterUserIds: [41797, 29855, 34594, 26801], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 41797, - username: "NathanIn603", - discordId: "943649609006317660", - discordAvatar: "e0484180e9ca694358d796678245a221", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730840643, - inGameName: "MF śþí4ł_dz#1260", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26801, - username: "Boneley", - discordId: "842781250111799296", - discordAvatar: "35a95ab061089f77491ecbfdc75a58aa", - customUrl: null, - country: null, - twitch: null, - createdAt: 1730840650, - inGameName: "MF Boneley#2386", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29855, - username: "Lil Draco", - discordId: "935931906225209344", - discordAvatar: "1e339c6e07532b80e3d206ec0aa111b9", - customUrl: null, - country: "US", - twitch: "lil_draco02x", - createdAt: 1730840695, - inGameName: "v° Draco#2626", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34594, - username: "Louse", - discordId: "1053727472295886898", - discordAvatar: "f5de74b64a6b2192e1840045b80aca96", - customUrl: "lordlouse", - country: "US", - twitch: null, - createdAt: 1730846237, - inGameName: "LordLouse#1726", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33825, - username: "Sibirrino", - discordId: "510994518397419530", - discordAvatar: "2a0762082bdeb0f0bada3d33d5250160", - customUrl: "sibirrino", - country: "US", - twitch: "sibirrino", - createdAt: 1730850473, - inGameName: "Σ∞| 仝Rino #1305", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [41797, 26801, 29855, 34594, 33825], + ownerUserId: 41797, checkIns: [ { bracketIdx: null, @@ -7298,8 +3755,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -7310,103 +3767,11 @@ export const SWIM_OR_SINK_167 = ( seed: 42, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730827259, activeRosterUserIds: [25218, 26988, 26989, 12610], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 25218, - username: "shmarlow", - discordId: "177207289680363520", - discordAvatar: "9b23754279cb9d9209eff0d148764cf5", - customUrl: "shmarlow", - country: "CA", - twitch: null, - createdAt: 1730827259, - inGameName: "nme✰marlow#2474", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26988, - username: "mysstari", - discordId: "185178170302005250", - discordAvatar: "c70e17eed23e52dc7ce95554f1f660d0", - customUrl: null, - country: "US", - twitch: "mysstari", - createdAt: 1730827265, - inGameName: "nme☆tari#1818", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26989, - username: "SixRLTM", - discordId: "188471737711722496", - discordAvatar: "da5104b19628544eaad41788842a3e01", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730827270, - inGameName: "nme✰6rew#3232", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12610, - username: "PinkSunrise", - discordId: "431970203996389397", - discordAvatar: "97ff627c4e50298226849a3e13bc3e21", - customUrl: "pinksunrise", - country: "US", - twitch: null, - createdAt: 1730827274, - inGameName: "nme☆Pink#2363", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25755, - username: "Gay Shark", - discordId: "269178050711781376", - discordAvatar: "573002dfc4fe06218bb86cd33b7179f1", - customUrl: "gay_shark", - country: "US", - twitch: null, - createdAt: 1730827431, - inGameName: "→△GayShark#2051", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25218, 26988, 26989, 12610, 25755], + ownerUserId: 25218, checkIns: [ { bracketIdx: null, @@ -7434,13 +3799,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 788, - customUrl: "anenemies", - logoUrl: "LOQ8WIgIo5nZ-c1nOBrXd-1688356491833.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "LOQ8WIgIo5nZ-c1nOBrXd-1688356491833.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -7451,121 +3811,11 @@ export const SWIM_OR_SINK_167 = ( seed: 43, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730863477, activeRosterUserIds: [37341, 30266, 22699, 39363], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 30266, - username: "Tipo", - discordId: "1006710260263825468", - discordAvatar: "89257a0ac1a80ff5a7eb09560488d58d", - customUrl: "sleepyhead", - country: "US", - twitch: null, - createdAt: 1730863477, - inGameName: "ØĐ Tipo#2728", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37341, - username: "BrightBees", - discordId: "1189613098429075558", - discordAvatar: "1c4c7c6d69d0fc5e39da550d35bd46ed", - customUrl: "beeschurger", - country: "US", - twitch: null, - createdAt: 1730863535, - inGameName: "ØÐ Bees#7729", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22699, - username: "Giraffe05", - discordId: "788087977128624159", - discordAvatar: "6d114c402dccbabff8f39ff9796c27c7", - customUrl: "giraffe05", - country: "US", - twitch: null, - createdAt: 1730863538, - inGameName: "ØÐ Giraffe#1937", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28145, - username: "Madman46i", - discordId: "862732702360928286", - discordAvatar: "24cd818473330cd9316c2e74b451e5ad", - customUrl: "madman46i", - country: "US", - twitch: null, - createdAt: 1730863540, - inGameName: "ØĐ Madman#1438", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 39363, - username: "SMGalactic", - discordId: "874765789905948715", - discordAvatar: "565e1c39bd7c3bfbf42e68543f371cd7", - customUrl: null, - country: "US", - twitch: "smgalacticyt", - createdAt: 1730863556, - inGameName: "SMGalactic#2705", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27113, - username: "Frenzy#1136", - discordId: "167818016803913728", - discordAvatar: "287972491d2bf0867ab78942d3c3f682", - customUrl: "frenzy", - country: "US", - twitch: null, - createdAt: 1730942622, - inGameName: "Frenzy#1136", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30266, 37341, 22699, 28145, 39363, 27113], + ownerUserId: 30266, checkIns: [ { bracketIdx: null, @@ -7593,13 +3843,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 1602, - customUrl: "overdive", - logoUrl: "cY8Zp6QjCUNNrapRvT4UD-1695509201401.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "cY8Zp6QjCUNNrapRvT4UD-1695509201401.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -7610,85 +3855,11 @@ export const SWIM_OR_SINK_167 = ( seed: 44, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730907528, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-CsXMAg2pGXBRBfZeRBBqa-1730907542690.webp", - members: [ - { - userId: 22026, - username: "strings 🎻", - discordId: "182994907907096585", - discordAvatar: "31da63dcb6dd1dbe4c3f135c105f07e7", - customUrl: "strings", - country: "US", - twitch: "stringssection", - createdAt: 1730907528, - inGameName: "カニ strings#3288", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29467, - username: "glumbaron", - discordId: "367803257717784599", - discordAvatar: "b8ad30de9487a9699093b728098e01d0", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730907532, - inGameName: "カニ glum#2981", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10611, - username: "ash", - discordId: "83391620019388416", - discordAvatar: "40df17e16b18a9f86a454ac53bd7ab52", - customUrl: "asheevee_", - country: "US", - twitch: "asheevee_", - createdAt: 1730907537, - inGameName: "nme☆ash#3048", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46099, - username: "Flips", - discordId: "191657905492066307", - discordAvatar: "10c40cffea976bfb749a53130ed5540e", - customUrl: null, - country: null, - twitch: "flips_bad", - createdAt: 1730921252, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22026, 29467, 10611, 46099], + ownerUserId: 22026, checkIns: [ { bracketIdx: null, @@ -7716,8 +3887,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-CsXMAg2pGXBRBfZeRBBqa-1730907542690.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -7728,103 +3899,11 @@ export const SWIM_OR_SINK_167 = ( seed: 45, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730932702, activeRosterUserIds: [45980, 45163, 32203, 46101], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 45980, - username: "dyaln", - discordId: "780441082726973460", - discordAvatar: "7e7577aaeaf6fae322ed3e9923e5d5b4", - customUrl: null, - country: "AQ", - twitch: null, - createdAt: 1730932702, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45163, - username: "⋇ ☽ ᛗ Siren ᛗ ☾ ⋇", - discordId: "314875834328416257", - discordAvatar: "e6186e4bea20a512375c30744ff6861a", - customUrl: null, - country: "CA", - twitch: "sleepysiren7", - createdAt: 1730932829, - inGameName: "Siren#1425", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2620, - username: "Geenie7", - discordId: "120697671336984577", - discordAvatar: "d2ffa22b72a18252e1be91379541dac2", - customUrl: null, - country: "CA", - twitch: "geenie7", - createdAt: 1730933977, - inGameName: "Geeиie7#1390", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32203, - username: "Alpha Hundread", - discordId: "378074077291610112", - discordAvatar: "517a409e0c2defb92f34925b4c0269fb", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1730933999, - inGameName: "MrHundread#2680", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46101, - username: "Squadle", - discordId: "378711205885378561", - discordAvatar: "3dcf34dc105f46cd05d21cafffb02c5e", - customUrl: null, - country: null, - twitch: null, - createdAt: 1730936438, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [45980, 45163, 2620, 32203, 46101], + ownerUserId: 45980, checkIns: [ { bracketIdx: null, @@ -7852,8 +3931,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -7864,103 +3943,11 @@ export const SWIM_OR_SINK_167 = ( seed: 46, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730832003, activeRosterUserIds: [40505, 29011, 23082, 33067], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 40505, - username: "LN TheGish", - discordId: "336336508405415957", - discordAvatar: "898264e697791243e7f4aa85ddace305", - customUrl: "thegish", - country: "US", - twitch: null, - createdAt: 1730832003, - inGameName: "LN TheGish#6533", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29011, - username: "Arsynn", - discordId: "570619098036436993", - discordAvatar: "2afdb51d7a89e79edf4bb40d0f108203", - customUrl: null, - country: "CA", - twitch: null, - createdAt: 1730832006, - inGameName: "ln Arsynn#5022", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23082, - username: "Blueberry", - discordId: "783935177256075295", - discordAvatar: "a_f7084cc96307f0bdead3269042edebe1", - customUrl: null, - country: "US", - twitch: "blueberry2849", - createdAt: 1730832007, - inGameName: "ln Blubrry#2022", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33067, - username: "CT", - discordId: "669748243344654358", - discordAvatar: "364fe75b00fc83e11dacc835ab074905", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730832008, - inGameName: "CT#1817", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21549, - username: "Melo", - discordId: "535550649518129182", - discordAvatar: "04ec3ab179da77ffe45605bc3a6fb05b", - customUrl: "meloyelo", - country: "PR", - twitch: "meloyelo_", - createdAt: 1730832010, - inGameName: "LN✰Melo#1231", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [40505, 29011, 23082, 33067, 21549], + ownerUserId: 40505, checkIns: [ { bracketIdx: null, @@ -7988,13 +3975,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3005, - customUrl: "loud-noises", - logoUrl: "yOTJfxFNZ1tt3jkVTq5dE-1721965075679.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "yOTJfxFNZ1tt3jkVTq5dE-1721965075679.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -8005,85 +3987,11 @@ export const SWIM_OR_SINK_167 = ( seed: 47, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730938507, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 35724, - username: "mudkip", - discordId: "1172967898839515201", - discordAvatar: "2634cc113a2f2f1cb959f6cd0495909a", - customUrl: "mud", - country: null, - twitch: null, - createdAt: 1730938507, - inGameName: "≡□>Müdkip#1794", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20240, - username: "edenn ☆ˊ-", - discordId: "235468420894818305", - discordAvatar: "17919b128f36fc9087b30f6268b19804", - customUrl: "edenn", - country: "US", - twitch: "frommedenn", - createdAt: 1730938539, - inGameName: "V↑ edenn´-#1286", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28097, - username: "Red 🌸", - discordId: "373269543260520451", - discordAvatar: "899a1b1d9fa92591deb77c1982af514e", - customUrl: "redstcne", - country: "US", - twitch: "redstcne", - createdAt: 1730939272, - inGameName: "Redstcne#2930", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21249, - username: "Yippity", - discordId: "1045584349669629962", - discordAvatar: "449a6961d1ab4843dc83c48b162051e7", - customUrl: "yippity", - country: "US", - twitch: null, - createdAt: 1730941112, - inGameName: "Yippity#2111", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [35724, 20240, 28097, 21249], + ownerUserId: 35724, checkIns: [ { bracketIdx: null, @@ -8111,8 +4019,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -8123,121 +4031,11 @@ export const SWIM_OR_SINK_167 = ( seed: 48, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730739211, activeRosterUserIds: [23712, 8080, 7994, 20990], - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-PntW-hxfVpRHVnxBML2g2-1730739211607.webp", - members: [ - { - userId: 7994, - username: "Typh", - discordId: "372535517331324938", - discordAvatar: "8dcf92905e5d01350d93a285cc5009c0", - customUrl: "blazingtyph", - country: "US", - twitch: "typhaf", - createdAt: 1730739211, - inGameName: "[Typh]#1136", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23712, - username: "BlobRoss", - discordId: "560657445542952990", - discordAvatar: "38375fec48b5a7c40ccc0d9972f99aa6", - customUrl: "yourmandan", - country: "CA", - twitch: null, - createdAt: 1730739214, - inGameName: "【BlobRoss】#2126", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27474, - username: "Hiro", - discordId: "111252007183978496", - discordAvatar: "e0d4730227f3dea4312d5b52f5251799", - customUrl: null, - country: null, - twitch: null, - createdAt: 1730739215, - inGameName: "[Hiro]#2533", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20990, - username: "maruru", - discordId: "579365441844281364", - discordAvatar: "2d20cbfc1f7a8321a1203127c74c98ee", - customUrl: "maruru", - country: "US", - twitch: "c0rnsyrup_", - createdAt: 1730739216, - inGameName: "peepeepoop#1111", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8080, - username: "OmaZen", - discordId: "340564347963310081", - discordAvatar: "8123bf6f8eb8f446c19ca1379fce4057", - customUrl: "omazen", - country: "US", - twitch: "omazen", - createdAt: 1730739217, - inGameName: "【OmaZen】#3391", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28671, - username: "Vlrs", - discordId: "652945293746241577", - discordAvatar: "a_35a553d92bc87420b0eb840822503c5a", - customUrl: null, - country: "AW", - twitch: null, - createdAt: 1730739219, - inGameName: "[Vyllie]#3297", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [7994, 23712, 27474, 20990, 8080, 28671], + ownerUserId: 7994, checkIns: [ { bracketIdx: null, @@ -8265,8 +4063,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-PntW-hxfVpRHVnxBML2g2-1730739211607.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -8277,103 +4075,11 @@ export const SWIM_OR_SINK_167 = ( seed: 49, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730857328, activeRosterUserIds: [29531, 3275, 35169, 7008], - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 29531, - username: "Eight", - discordId: "527953365003403265", - discordAvatar: "96c7c0bcb9a05f41c7a5f189679cdf63", - customUrl: "shady", - country: null, - twitch: null, - createdAt: 1730857328, - inGameName: "とづ 8#1129", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3275, - username: "Mr. Saturn", - discordId: "519272653610287116", - discordAvatar: "0a96f64d4f65c6a81e392345a704acf3", - customUrl: "mrsaturn", - country: "MX", - twitch: null, - createdAt: 1730904348, - inGameName: "とづMrSaturn#2189", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35169, - username: "..", - discordId: "348636926082809858", - discordAvatar: "d6aeb3e2c858038e2813571e05fa9267", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730904355, - inGameName: "とづ θιθ#1490", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7008, - username: "north ↟", - discordId: "769662850187657257", - discordAvatar: "1f18f4f35e2a36ecf2970d764ae86f30", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730904365, - inGameName: "とづvalencia#1253", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 40169, - username: "G", - discordId: "294837816943312896", - discordAvatar: "d48605d234de50cfdd5bf3d575a70035", - customUrl: "worldg", - country: "US", - twitch: null, - createdAt: 1730904367, - inGameName: "とづ《WorldG》#9475", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [29531, 3275, 35169, 7008, 40169], + ownerUserId: 29531, checkIns: [ { bracketIdx: null, @@ -8401,13 +4107,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3264, - customUrl: "c-dragons", - logoUrl: "ZiwfDiYEEO1uBnyX6v3mr-1720115041998.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "ZiwfDiYEEO1uBnyX6v3mr-1720115041998.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -8418,93 +4119,14 @@ export const SWIM_OR_SINK_167 = ( seed: 50, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730591675, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 28703, - username: "Lilalychi", - discordId: "448884709166940166", - discordAvatar: "ce3fe1fb615595d6167d2d63da2deaf9", - customUrl: "lilalychi", - country: "US", - twitch: "lilalychi", - createdAt: 1730591675, - inGameName: "μ▽ Lila#4004", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23183, - username: "Esmé! 🔮", - discordId: "746839603843039234", - discordAvatar: "ba26202266b211d7656cee8f5d25c570", - customUrl: "esme", - country: "GD", - twitch: null, - createdAt: 1730591678, - inGameName: "µ▽ Esmé!#3323", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7664, - username: "Lor (He/They)", - discordId: "359806969005080586", - discordAvatar: "9bd46b4e181419b156c905e4c24e272a", - customUrl: "lor", - country: "US", - twitch: "marshylor", - createdAt: 1730591679, - inGameName: "LOR ⭐•ß#2730", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30237, - username: "Erik Garcia", - discordId: "734436993672544276", - discordAvatar: "134ae5c3e65d85d5d3f8f03120dd8939", - customUrl: null, - country: null, - twitch: null, - createdAt: 1730591811, - inGameName: "Erik#3177", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [28703, 23183, 7664, 30237], + ownerUserId: 28703, checkIns: [], - mapPool: [], - team: { - id: 3193, - customUrl: "united-crushers", - logoUrl: "hzbYLBxq6IfV7QhymAbXy-1727906505498.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "hzbYLBxq6IfV7QhymAbXy-1727906505498.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -8515,85 +4137,11 @@ export const SWIM_OR_SINK_167 = ( seed: 51, prefersNotToHost: 1, droppedOut: 0, - inviteCode: null, createdAt: 1730859986, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-wYiwNATx-T8R_RztGHumf-1730859986110.webp", - members: [ - { - userId: 10181, - username: "ROXSTARcandy", - discordId: "546999472350036000", - discordAvatar: "befd217ebd6ab9f815b58c732f97cd4b", - customUrl: "roxstarcandy", - country: "AU", - twitch: null, - createdAt: 1730859986, - inGameName: "»☆ROX★STAR#2212", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8552, - username: "FunkyKøng", - discordId: "446924992660111361", - discordAvatar: "7653f1699622bb2b4a1e1f26d325a2f9", - customUrl: null, - country: "AU", - twitch: null, - createdAt: 1730859996, - inGameName: "»☆Funky#3238", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29897, - username: "𝜁𝜄Rilosaur", - discordId: "872879610491195402", - discordAvatar: "fe2a9ee534c1b61e5a33557e0c85fa27", - customUrl: "rilosaur", - country: "AU", - twitch: "rilosaur_", - createdAt: 1730877839, - inGameName: "𝜁𝜄 Rilosaur#3053", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1894, - username: "Crowboy101", - discordId: "548381249518174228", - discordAvatar: "91a583accf0dadaa90653f0f14e41e9e", - customUrl: "crowboy101", - country: "AU", - twitch: "crowboy101", - createdAt: 1730891774, - inGameName: "∞Crowboy#8452", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [10181, 8552, 29897, 1894], + ownerUserId: 10181, checkIns: [ { bracketIdx: null, @@ -8621,8 +4169,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-wYiwNATx-T8R_RztGHumf-1730859986110.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -8633,85 +4181,11 @@ export const SWIM_OR_SINK_167 = ( seed: 52, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1730703689, activeRosterUserIds: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 43847, - username: "[UK] NVL", - discordId: "1214131320763195456", - discordAvatar: "1c0ffe9add619780f69ce19dd5e6f06a", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730703689, - inGameName: "[UK] NVL#2046", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43850, - username: "MarioMayhem", - discordId: "809963646707957760", - discordAvatar: "efe91ad7f44ba18e39563258cda3e4f1", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730703692, - inGameName: "UKMrioMyhm#3296", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45635, - username: "Itsgamingtime11", - discordId: "1293707657135259689", - discordAvatar: "1e458ea1096d624c3e93c84eba2e9ab3", - customUrl: null, - country: "US", - twitch: null, - createdAt: 1730755609, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46045, - username: "ActualBook1211", - discordId: "1214340048267386881", - discordAvatar: "f713ca61ac6ebc48c0a2679dcdb93484", - customUrl: null, - country: null, - twitch: null, - createdAt: 1730760107, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [43847, 43850, 45635, 46045], + ownerUserId: 43847, checkIns: [ { bracketIdx: null, @@ -8739,13 +4213,8 @@ export const SWIM_OR_SINK_167 = ( isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3389, - customUrl: "ultra-kraken", - logoUrl: "BA9IqYVh6FMFEWLg826Lw-1730329245607.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "BA9IqYVh6FMFEWLg826Lw-1730329245607.webp", avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, @@ -8834,26 +4303,6 @@ export const SWIM_OR_SINK_167 = ( stageId: 21, }, ], - participatedUsers: [ - 44, 65, 73, 163, 190, 241, 267, 331, 373, 460, 590, 863, 986, 1038, 1059, - 1338, 1548, 1616, 1736, 1894, 1953, 1961, 2059, 2088, 2670, 2672, 2888, - 3181, 3275, 3449, 3513, 3657, 3930, 4307, 4504, 5001, 5106, 5187, 5227, - 5261, 5334, 5368, 5471, 5584, 5679, 6051, 7008, 7216, 7807, 7994, 8080, - 8297, 8552, 8587, 8760, 8830, 8852, 9001, 9034, 9235, 9454, 10181, 10200, - 10265, 10611, 11244, 11495, 11815, 11951, 12585, 12610, 13671, 14007, - 15188, 15278, 16387, 17310, 19035, 19093, 20240, 20731, 20774, 20807, - 21205, 21249, 21339, 21487, 22026, 22344, 22396, 22409, 22614, 22706, - 22744, 22903, 23016, 23082, 23115, 23132, 23292, 23505, 23712, 23946, - 24514, 25053, 25168, 25218, 25464, 25469, 25622, 25856, 26103, 26428, - 26801, 26820, 26988, 26989, 27113, 27222, 27438, 27440, 27474, 27485, - 27917, 28097, 28145, 28391, 28671, 28700, 29011, 29120, 29182, 29467, - 29531, 29643, 29823, 29855, 29897, 30122, 30204, 30266, 30591, 30612, - 30685, 30686, 31195, 31259, 31395, 31526, 31580, 31868, 32203, 33067, - 33116, 33402, 33825, 34014, 34071, 34414, 34594, 34657, 34724, 35169, - 35225, 35571, 35724, 36265, 36898, 37341, 37677, 38176, 39363, 40169, - 40505, 41797, 42409, 42703, 43847, 43850, 44751, 45163, 45635, 45980, - 46045, 46099, 46101, - ], - castStreams: [], + latestTeamIdByDuplicatedUserId: {}, }, }); 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 2e67994fb..12c5a5c66 100644 --- a/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts +++ b/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts @@ -2,6 +2,7 @@ import type { TournamentData } from "../Tournament.server"; /** Zones Weekly 38 with every round of swiss finished, last round's matches not generated */ export const ZONES_WEEKLY_38 = (): TournamentData => ({ + streams: [], data: { stage: [ { @@ -264,6 +265,11 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ }, ], }, + participatedUsers: [ + 45, 1843, 2072, 2899, 3147, 5662, 6114, 10757, 11484, 11780, 13370, 13590, + 17855, 21689, 26992, 30176, 31148, 33047, 33491, 33578, 33611, 37632, 37901, + 43518, 43662, 45879, 46006, 46467, 46813, + ], ctx: { id: 891, eventId: 2698, @@ -366,105 +372,13 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ seed: 1, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1734656039, activeRosterUserIds: [5662, 2899, 6114, 30176], startingBracketIdx: null, abDivision: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 5662, - username: "Plus", - discordId: "461787942478675978", - discordAvatar: "b6ab568d3f51973e934892ee8b9f743e", - customUrl: "plussy", - country: "AU", - twitch: "plus218", - createdAt: 1734656039, - inGameName: "Plussy#1291", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2899, - username: "CHIMERA", - discordId: "326295468931940353", - discordAvatar: "a6aed066cec53c079e3585d0c7007be9", - customUrl: "chimera_", - country: "AU", - twitch: "mikamikax_", - createdAt: 1734656044, - inGameName: "CHIMERA#1263", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6114, - username: "Zalph", - discordId: "359945819433992193", - discordAvatar: "8f4fbd64d8949d418f023682e4161afb", - customUrl: "zalph", - country: "SO", - twitch: null, - createdAt: 1734656047, - inGameName: "CountMeOut#1985", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33963, - username: "Tiger", - discordId: "653478041993084938", - discordAvatar: "d67221267888ac818ae4197077d236b7", - customUrl: null, - country: "ST", - twitch: "tigersplat", - createdAt: 1734664082, - inGameName: "BIDOOFGMAX#8251", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30176, - username: "Jorjay", - discordId: "820142030654275644", - discordAvatar: "fb1e6be299a9c37f30c2ab76e55151f6", - customUrl: "2021_spl", - country: "AU", - twitch: null, - createdAt: 1734674285, - inGameName: "Bugha 33#1316", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5662, 2899, 6114, 33963, 30176], + ownerUserId: 5662, checkIns: [ { bracketIdx: null, @@ -472,13 +386,8 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4259, - customUrl: "bamboo-pirates", - logoUrl: "qv1Zyp4EE72lPghCRheqt-1733399357944.webp", - deletedAt: 1741481029, - }, + hasMapPool: false, + logoUrl: "qv1Zyp4EE72lPghCRheqt-1733399357944.webp", avgSeedingSkillOrdinal: 19.23368373822438, }, { @@ -487,87 +396,13 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ seed: 2, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1734423187, activeRosterUserIds: null, startingBracketIdx: null, abDivision: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-rZYQMu8ELjiFkeiAVGJUt-1734424882431.webp", - members: [ - { - userId: 17855, - username: "konj", - discordId: "916459853738819624", - discordAvatar: "8d5559ef3e67b5ec4dd1fdcf79f6092c", - customUrl: "kojuke", - country: "NZ", - twitch: null, - createdAt: 1734423187, - inGameName: "☆ SD-J ☆#2947", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21689, - username: "Para", - discordId: "233896056327372802", - discordAvatar: "98f8fc7277ac6664f3db8f5bea0f2785", - customUrl: "voidedparadigm", - country: "AU", - twitch: "voidedparadigm", - createdAt: 1734424893, - inGameName: "parasyka#2169", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3147, - username: "Cookie", - discordId: "267963609924108288", - discordAvatar: "85090cfe2e0da693355bcec9740c1eaa", - customUrl: "cookie", - country: "AU", - twitch: "cookie_spl", - createdAt: 1734426984, - inGameName: "cookie♪#1006", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2072, - username: "suıseı", - discordId: "297233823937069068", - discordAvatar: "19dfa11a14bbf85f52f167d318c4a9df", - customUrl: "qu", - country: "BF", - twitch: null, - createdAt: 1734426986, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [17855, 21689, 3147, 2072], + ownerUserId: 17855, checkIns: [ { bracketIdx: null, @@ -575,8 +410,8 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-rZYQMu8ELjiFkeiAVGJUt-1734424882431.webp", avgSeedingSkillOrdinal: 17.028587732217623, }, { @@ -585,87 +420,13 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ seed: 3, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1734660846, activeRosterUserIds: null, startingBracketIdx: null, abDivision: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 11484, - username: "Telethia", - discordId: "100913388141441024", - discordAvatar: "5c761e51aea48ffef7d40248f76fa2dc", - customUrl: "telethia", - country: "AU", - twitch: null, - createdAt: 1734660846, - inGameName: "Telethia#6611", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13370, - username: "Puma", - discordId: "308483655515373570", - discordAvatar: "a5fff2b4706d99364e646cab28c8085b", - customUrl: "puma", - country: "AU", - twitch: null, - createdAt: 1734660856, - inGameName: "Puma#2209", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 45, - username: "ShockWavee", - discordId: "332893262966685696", - discordAvatar: "ecc26794744c45604c4dc0c12829a178", - customUrl: "shockwavee", - country: "AU", - twitch: "shockwavee03", - createdAt: 1734660882, - inGameName: "ShockWavee#3003", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1843, - username: "hp", - discordId: "600255055836217364", - discordAvatar: "531392eaa7f7706c67a67b0e9c3c8fe1", - customUrl: null, - country: "AU", - twitch: null, - createdAt: 1734663143, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11484, 13370, 45, 1843], + ownerUserId: 11484, checkIns: [ { bracketIdx: null, @@ -673,8 +434,8 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: null, avgSeedingSkillOrdinal: 23.38512079140615, }, { @@ -683,105 +444,13 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ seed: 5, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1734683349, activeRosterUserIds: [37632, 13590, 10757, 33047], startingBracketIdx: null, abDivision: null, - avatarImgId: null, - pickupAvatarUrl: null, - members: [ - { - userId: 37632, - username: "mitsi", - discordId: "690098887913898051", - discordAvatar: "92904ce37ba00b98173388d26a668075", - customUrl: "mitsi", - country: "PS", - twitch: null, - createdAt: 1734683349, - inGameName: "mitsi#2589", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13590, - username: "Canary", - discordId: "229149474436415488", - discordAvatar: "b5370ece354a643266d3eb2fb798c250", - customUrl: "canary", - country: "AU", - twitch: "sanityzed", - createdAt: 1734683352, - inGameName: "☆ SD-N ☆#2936", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10757, - username: "Wilds ♪", - discordId: "335966886393151488", - discordAvatar: "a8fcb6c37957349865532149153ef306", - customUrl: "wilds", - country: "AU", - twitch: "whilds", - createdAt: 1734683356, - inGameName: "Wilds ♪#6274", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33047, - username: "layden haw", - discordId: "260167849916497920", - discordAvatar: "aa1f9e79977626dabc7b0f6a1ce33934", - customUrl: null, - country: "AU", - twitch: null, - createdAt: 1734683966, - inGameName: "2F Law#1355", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 41024, - username: "Silly", - discordId: "807118113266204682", - discordAvatar: "40ecf7715f974c9c77fab988b7925f02", - customUrl: "silly_b3", - country: "AU", - twitch: "silly_b3", - createdAt: 1734685180, - inGameName: "His Silly#2385", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [37632, 13590, 10757, 33047, 41024], + ownerUserId: 37632, checkIns: [ { bracketIdx: null, @@ -789,13 +458,8 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 3327, - customUrl: "fruitea", - logoUrl: "-u2c96lIxBLHuiSaafPgx-1721110885919.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "-u2c96lIxBLHuiSaafPgx-1721110885919.webp", avgSeedingSkillOrdinal: 13.208083181946204, }, { @@ -804,123 +468,13 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ seed: 6, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1734608907, activeRosterUserIds: [11780, 46006, 43518, 33483], startingBracketIdx: null, abDivision: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-FOfFcEbo2OJxIJIJxNJqu-1734608907317.webp", - members: [ - { - userId: 43518, - username: "Veemo.ai", - discordId: "1207579465580937226", - discordAvatar: "26fed7e18436f4acf2a3d69be8c7ef6e", - customUrl: null, - country: "AU", - twitch: "veemo_ai", - createdAt: 1734608907, - inGameName: "H! Veems#3106", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29665, - username: "SounKade", - discordId: "456319133886185493", - discordAvatar: "84fe04756965b996b60bbd259e1e949f", - customUrl: null, - country: "AU", - twitch: "sounkade", - createdAt: 1734608923, - inGameName: "H!PwPwPew#2889", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46006, - username: "Ozzysquid", - discordId: "568696527892250644", - discordAvatar: "6cf81e68116d09422cf1c0b92bffac35", - customUrl: null, - country: "AU", - twitch: "ozzysqid", - createdAt: 1734608925, - inGameName: "H!Ozzysqid#2558", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33483, - username: "Koifu", - discordId: "835478379670405171", - discordAvatar: "8d8549f96de026e6c892fc6ae0533ba2", - customUrl: "koifu", - country: "AU", - twitch: "koifu_spl", - createdAt: 1734608931, - inGameName: "DrkXWolf17#3326", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11780, - username: "𝘚𝘭𝘢𝘯𝘵𝘦𝘥", - discordId: "383285856024264728", - discordAvatar: "1e5da05391f497a80ff8f250e8a48d78", - customUrl: null, - country: "PH", - twitch: null, - createdAt: 1734659216, - inGameName: "Slanted#1646", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37901, - username: "Scuffy", - discordId: "782140779765170177", - discordAvatar: "a_4068013243c9541df51f3505f4865491", - customUrl: null, - country: null, - twitch: "shade_is_special", - createdAt: 1734684084, - inGameName: null, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [43518, 29665, 46006, 33483, 11780, 37901], + ownerUserId: 43518, checkIns: [ { bracketIdx: null, @@ -928,8 +482,8 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-FOfFcEbo2OJxIJIJxNJqu-1734608907317.webp", avgSeedingSkillOrdinal: -1.2336066064166205, }, { @@ -938,105 +492,13 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ seed: 7, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1734397954, activeRosterUserIds: [46467, 46813, 33491, 43662], startingBracketIdx: null, abDivision: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-y79k_HOVmjv4KfhTjuSqh-1734398099266.webp", - members: [ - { - userId: 45879, - username: "Albonchap", - discordId: "366392868065247234", - discordAvatar: "2cbf7ae01b702297a2521a171e0e3b78", - customUrl: "albonchap", - country: "AU", - twitch: null, - createdAt: 1734397954, - inGameName: "Albonchap#9998", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 43662, - username: "FoolLime", - discordId: "605972217007702036", - discordAvatar: "7bf218fd71fce58c9ba1467ed88e7b4b", - customUrl: null, - country: "AU", - twitch: null, - createdAt: 1734397970, - inGameName: "FoolLime#1864", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33491, - username: "Moth", - discordId: "799230134069755904", - discordAvatar: "cbc9cae07dd9f12cc406b74b926e09d7", - customUrl: null, - country: "AU", - twitch: null, - createdAt: 1734397973, - inGameName: "snowy#2709", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46467, - username: "Veryneggy", - discordId: "293329775920152579", - discordAvatar: "e63a83d27a950d02f665d676133c15b3", - customUrl: "verygoodnegg", - country: "AU", - twitch: null, - createdAt: 1734398287, - inGameName: "Veryneggy#1494", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 46813, - username: "Mikil", - discordId: "644853671498088468", - discordAvatar: "ebe43708538e1b6e9c5678f0e341abce", - customUrl: null, - country: "AU", - twitch: null, - createdAt: 1734398628, - inGameName: "Mikil#2961", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [45879, 43662, 33491, 46467, 46813], + ownerUserId: 45879, checkIns: [ { bracketIdx: null, @@ -1044,13 +506,8 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: { - id: 4327, - customUrl: "monkey-barrel", - logoUrl: "-5sDkwde5xLxRfbu4Ww1C-1738819882151.webp", - deletedAt: null, - }, + hasMapPool: false, + logoUrl: "-5sDkwde5xLxRfbu4Ww1C-1738819882151.webp", avgSeedingSkillOrdinal: -3.4737419768092437, }, { @@ -1059,87 +516,13 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ seed: 8, prefersNotToHost: 0, droppedOut: 0, - inviteCode: null, createdAt: 1734598652, activeRosterUserIds: null, startingBracketIdx: null, abDivision: null, - avatarImgId: null, - pickupAvatarUrl: "pickup-logo-IGXFtjFMa_dxQqAe2dqIR-1734598652684.webp", - members: [ - { - userId: 26992, - username: "Dit-toe", - discordId: "584595353370755083", - discordAvatar: "5e922d377f75683321f08004cfc5f6a6", - customUrl: "dit-toad", - country: "AU", - twitch: null, - createdAt: 1734598652, - inGameName: "ЯR Dit-toe#3315", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33611, - username: "Samkat", - discordId: "656420619251875870", - discordAvatar: "c6fc6c98ffea28d513c52e8de52f6157", - customUrl: null, - country: "AU", - twitch: null, - createdAt: 1734598655, - inGameName: "ЯR Samkat #3138", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31148, - username: "smart.png", - discordId: "858608618186342420", - discordAvatar: "abec0f2d5dee5754ef02b71aee25bb73", - customUrl: "cakeatstake", - country: "AU", - twitch: null, - createdAt: 1734598656, - inGameName: "ЯR smart!!#1424", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 33578, - username: "Mat", - discordId: "988370975542353960", - discordAvatar: "29784a769af34943558199a7f3e012cb", - customUrl: null, - country: "AU", - twitch: null, - createdAt: 1734612388, - inGameName: "Mat#1561", - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [26992, 33611, 31148, 33578], + ownerUserId: 26992, checkIns: [ { bracketIdx: null, @@ -1147,8 +530,8 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ isCheckOut: 0, }, ], - mapPool: [], - team: null, + hasMapPool: false, + logoUrl: "pickup-logo-IGXFtjFMa_dxQqAe2dqIR-1734598652684.webp", avgSeedingSkillOrdinal: -6.382139240461566, }, ], @@ -1251,11 +634,6 @@ export const ZONES_WEEKLY_38 = (): TournamentData => ({ stageId: 23, }, ], - participatedUsers: [ - 45, 1843, 2072, 2899, 3147, 5662, 6114, 10757, 11484, 11780, 13370, 13590, - 17855, 21689, 26992, 30176, 31148, 33047, 33491, 33578, 33611, 37632, - 37901, 43518, 43662, 45879, 46006, 46467, 46813, - ], - castStreams: [], + latestTeamIdByDuplicatedUserId: {}, }, }); diff --git a/app/features/tournament-bracket/core/tests/mocks.ts b/app/features/tournament-bracket/core/tests/mocks.ts index 28e848fef..9abbf2f47 100644 --- a/app/features/tournament-bracket/core/tests/mocks.ts +++ b/app/features/tournament-bracket/core/tests/mocks.ts @@ -2,6 +2,7 @@ import type { TournamentData } from "../Tournament.server"; export const PADDLING_POOL_257 = () => ({ + streams: [], data: { stage: [ { @@ -1185,6 +1186,23 @@ export const PADDLING_POOL_257 = () => }, ], }, + participatedUsers: [ + 76, 185, 193, 223, 271, 343, 368, 379, 1300, 1447, 1624, 2137, 2302, 2622, + 2781, 3161, 3929, 3930, 4603, 5229, 5368, 5528, 5728, 5735, 5740, 6053, + 6508, 6870, 6935, 7007, 7094, 7265, 7270, 7336, 7440, 8139, 8157, 8243, + 8258, 8480, 8715, 8734, 8868, 9125, 9211, 9307, 9367, 9403, 9411, 9874, + 9925, 10010, 10293, 10370, 10615, 10883, 10992, 11017, 11056, 11151, + 11199, 11226, 11625, 11627, 11635, 11716, 12188, 12214, 12526, 12976, + 13227, 13562, 14489, 15526, 15916, 17734, 18039, 18143, 18703, 18734, + 19002, 19035, 19231, 20063, 20143, 20698, 20755, 21583, 21698, 21979, + 22434, 22452, 22661, 22746, 22948, 23009, 23016, 23037, 23307, 23353, + 23505, 23746, 23820, 23858, 24441, 24585, 24705, 25088, 25545, 26454, + 26665, 26758, 27108, 27468, 27515, 27578, 27664, 27686, 27768, 27958, + 28178, 28191, 28194, 28271, 28338, 28482, 28485, 28602, 28629, 28822, + 28834, 28851, 29321, 29723, 29904, 30220, 30449, 30582, 30730, 30758, + 30928, 30942, 31658, 32155, 32688, 34238, 34715, 35118, 35382, 35807, + 37658, 38062, 38120, + ], ctx: { id: 27, organization: null, @@ -1318,89 +1336,15 @@ export const PADDLING_POOL_257 = () => seed: 1, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709743534, - members: [ - { - userId: 10293, - username: "Yū", - discordId: "769160946211880970", - discordAvatar: "1e1c2ddba7dc735347b6859a8fba1d95", - customUrl: "yu", - inGameName: null, - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1709743534, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5728, - username: "Cam", - discordId: "335859980890669056", - discordAvatar: "4de21a16c8885b2e36366560c24d2212", - customUrl: "cam", - inGameName: "かCam!#7346", - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1709743542, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 185, - username: "phoenix", - discordId: "619566583970529314", - discordAvatar: "d68b95b004a6f29dedbc1baed6d4b9da", - customUrl: "phoenix", - inGameName: null, - country: "CH", - plusTier: 1, - twitch: null, - createdAt: 1709743545, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9925, - username: "Pouleyyy", - discordId: "852633256384790559", - discordAvatar: "403b6cd6fd6befe334f5facb06de1082", - customUrl: "pouleyyy", - inGameName: "77#1357", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1709743592, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [10293, 5728, 185, 9925], + ownerUserId: 10293, checkIns: [ { bracketIdx: null, @@ -1413,40 +1357,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 881, @@ -1454,107 +1365,15 @@ export const PADDLING_POOL_257 = () => seed: 2, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709737918, - members: [ - { - userId: 15916, - username: "Raiki", - discordId: "1028691176129310790", - discordAvatar: "00c1371c9978ed4939ff9deeb423c55f", - customUrl: "raiki", - inGameName: "Raiki ・ ジム#1454", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1709737918, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1300, - username: "KING KZRR", - discordId: "444897755010301979", - discordAvatar: "92ff2a94b46916e6d7ee84e8e5aeb9ac", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1709737981, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27958, - username: "tody", - discordId: "437402107818016780", - discordAvatar: "8e9d4b3091cda9bfb20808792159f76e", - customUrl: "tody", - inGameName: null, - country: "JP", - plusTier: 2, - twitch: null, - createdAt: 1709738032, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7265, - username: "Splating", - discordId: "138034502692765696", - discordAvatar: "44abbba564d1aab281c59748e28f2281", - customUrl: "splating", - inGameName: "Splating#3238", - country: "FR", - twitch: null, - createdAt: 1709744756, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4603, - username: "Punchy", - discordId: "562637304057823235", - discordAvatar: "e485707393117b769eb4d5d308a27d9c", - customUrl: "punchy", - inGameName: "FTL Punch#2613", - country: "BE", - plusTier: 2, - twitch: null, - createdAt: 1709746830, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [15916, 1300, 27958, 7265, 4603], + ownerUserId: 15916, checkIns: [ { bracketIdx: null, @@ -1567,40 +1386,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 10, - mode: "RM", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 891, @@ -1608,89 +1394,15 @@ export const PADDLING_POOL_257 = () => seed: 3, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709743523, - members: [ - { - userId: 223, - username: "Warlock", - discordId: "661328509712728066", - discordAvatar: "1ff6c102ae91d67ffbbc4b36d792c41f", - customUrl: null, - inGameName: null, - country: "VI", - plusTier: 2, - twitch: null, - createdAt: 1709743523, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 343, - username: "Azurai", - discordId: "402500693530902529", - discordAvatar: "371a5eae7176b973ed444a204e7e3e41", - customUrl: "azurai", - inGameName: "RAT⇒Azuraï#1238", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1709743581, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 193, - username: "jaysorawk_", - discordId: "273503438124613632", - discordAvatar: "93036057b73f67468f80b418b0ec3dd5", - customUrl: "jaysorawk", - inGameName: "jaysorawk_#2801", - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1709743892, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10615, - username: "Yotzzz", - discordId: "700013882785267772", - discordAvatar: "2f935c9037708045ac9923317f995231", - customUrl: "yotzzz", - inGameName: "Yotzzz#9674", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1709743925, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [223, 343, 193, 10615], + ownerUserId: 223, checkIns: [ { bracketIdx: null, @@ -1703,40 +1415,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 17, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 10, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 890, @@ -1744,89 +1423,15 @@ export const PADDLING_POOL_257 = () => seed: 4, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709743262, - members: [ - { - userId: 22661, - username: "_Silver", - discordId: "778336481206075435", - discordAvatar: "8c00132a8493847453f67ea7262a03db", - customUrl: "_silver", - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1709743262, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28485, - username: "˜Buηgee˜", - discordId: "1115002996401639464", - discordAvatar: "6b80ad95448995522b2138e3429cd0fe", - customUrl: "gee", - inGameName: "gee#2507", - country: "GP", - plusTier: 3, - twitch: null, - createdAt: 1709743319, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8734, - username: "Yuni...", - discordId: "857226158672052226", - discordAvatar: "a_32c90081a7582534e7b762edf3edfcb9", - customUrl: "yuni1206", - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1709743345, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7094, - username: "Jul", - discordId: "603537087798575124", - discordAvatar: "f347062c8088a60da4fe7734c0cd2c16", - customUrl: null, - inGameName: null, - country: null, - plusTier: 3, - twitch: null, - createdAt: 1709743840, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22661, 28485, 8734, 7094], + ownerUserId: 22661, checkIns: [ { bracketIdx: null, @@ -1839,40 +1444,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 4, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 886, @@ -1880,107 +1452,15 @@ export const PADDLING_POOL_257 = () => seed: 5, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709741396, - members: [ - { - userId: 8157, - username: "Luna", - discordId: "208429763419832321", - discordAvatar: "575f6b8d8c285def1c6e13dfe4fa1437", - customUrl: "l", - inGameName: "Luna つミ#5310", - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1709741396, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2622, - username: "Fif Gen", - discordId: "348223650740174848", - discordAvatar: "0897946f86c7660566f31fbc643bd3ce", - customUrl: "fif_gen", - inGameName: "Fif Gen つミ#2990", - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1709741401, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8139, - username: "eli", - discordId: "293724135157399553", - discordAvatar: "7ec4fbccbe64449375425475f275309f", - customUrl: "eli", - inGameName: "elibvn♪#1082", - country: "NO", - twitch: null, - createdAt: 1709741404, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11199, - username: "Gus", - discordId: "535329089461157888", - discordAvatar: "3a2f179bda8930dc9974276b1a84451b", - customUrl: "gusplatoon", - inGameName: "GUS?#1100", - country: "US", - twitch: null, - createdAt: 1709741421, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13227, - username: "Luples", - discordId: "404425475985768448", - discordAvatar: "911740a2fde1b28642762bda217bd8c4", - customUrl: "luples", - inGameName: "Luples #3315", - country: "US", - twitch: null, - createdAt: 1709741503, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [8157, 2622, 8139, 11199, 13227], + ownerUserId: 8157, checkIns: [ { bracketIdx: null, @@ -1993,40 +1473,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 867, @@ -2034,107 +1481,15 @@ export const PADDLING_POOL_257 = () => seed: 6, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709711811, - members: [ - { - userId: 23746, - username: "Proto", - discordId: "148103128032608256", - discordAvatar: "ed2ac642646017bb7bd9cbb31a59bc66", - customUrl: "proto", - inGameName: "-> Proto#4769", - country: "US", - twitch: null, - createdAt: 1709711811, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8258, - username: "Red", - discordId: "352207524390240257", - discordAvatar: "a_7f178ffdb6d3a0c395389023c1fcc0dc", - customUrl: "red", - inGameName: "pee-liter#9771", - country: "US", - twitch: null, - createdAt: 1709711816, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13562, - username: "kiki", - discordId: "707603025090445392", - discordAvatar: "f570f994acd9f154170daf9ed424b5b6", - customUrl: "kiki", - inGameName: "kiki ヤ#0000", - country: "IE", - plusTier: 3, - twitch: null, - createdAt: 1709711846, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25721, - username: "Asan", - discordId: "559571840604045323", - discordAvatar: "3bf03dc38e931f1aa66e6f65fc0f0b27", - customUrl: "asan", - inGameName: "Asan#5055", - country: "US", - twitch: null, - createdAt: 1709711972, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1447, - username: "Tamako", - discordId: "165170281814556672", - discordAvatar: "7241c33a50f405f052f50fb984d7e269", - customUrl: "tamako", - inGameName: "Tamako#2935", - country: "DE", - plusTier: 3, - twitch: null, - createdAt: 1709744327, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [23746, 8258, 13562, 25721, 1447], + ownerUserId: 23746, checkIns: [ { bracketIdx: null, @@ -2147,40 +1502,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 884, @@ -2188,107 +1510,15 @@ export const PADDLING_POOL_257 = () => seed: 7, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709738831, - members: [ - { - userId: 9125, - username: "Zivox", - discordId: "244456158201380864", - discordAvatar: "0c19856d48d3c074b052bb8b0fb96d96", - customUrl: "zivox", - inGameName: "Zivox ?#4849", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1709738831, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14489, - username: "keurbi", - discordId: "699648108958843011", - discordAvatar: "82266aef4a55776c15ee8e6c4b125371", - customUrl: "keurbii", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1709738840, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20755, - username: "Kchouuu💜", - discordId: "517816481854128134", - discordAvatar: "a_dbf5283fac4fa8bc631a74a4719612d9", - customUrl: "kchouuu", - inGameName: "ZkG Kchou'#7905", - country: "FR", - twitch: null, - createdAt: 1709738848, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11056, - username: "Yegzu", - discordId: "700501347811983362", - discordAvatar: "1479b86bf643851945616fb7f35ae640", - customUrl: "yegzu8", - inGameName: "mrmeow#3260", - country: "FR", - twitch: null, - createdAt: 1709738852, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 175, - username: "Sparadox", - discordId: "672507579888435211", - discordAvatar: "7b39539d7e90accc5e6dd1f4a42772fb", - customUrl: "sparadox", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1709749164, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [9125, 14489, 20755, 11056, 175], + ownerUserId: 9125, checkIns: [ { bracketIdx: null, @@ -2301,40 +1531,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 879, @@ -2342,89 +1539,15 @@ export const PADDLING_POOL_257 = () => seed: 8, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709737837, - members: [ - { - userId: 22746, - username: "Bomm", - discordId: "581148889114214400", - discordAvatar: "af58a7bdf4fb231f289d24203a76ec6e", - customUrl: null, - inGameName: "Bomm☆Sz♪#1943", - country: "FR", - twitch: null, - createdAt: 1709737837, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21979, - username: "Jιky", - discordId: "1018190360918364181", - discordAvatar: "bfe0fb7aed86889b58489fa1ffdde1e7", - customUrl: "jiky", - inGameName: "Sて Jιky#3308", - country: "FR", - twitch: null, - createdAt: 1709737849, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11627, - username: "Adil", - discordId: "567674530999304212", - discordAvatar: "2bd7a20ef08ae5195db4393c80c42961", - customUrl: "adil", - inGameName: null, - country: "DZ", - twitch: null, - createdAt: 1709737853, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12976, - username: "Tikke", - discordId: "1005519944223555683", - discordAvatar: "40c3446f2d71533b7cd22cd50c2fc971", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1709737856, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22746, 21979, 11627, 12976], + ownerUserId: 22746, checkIns: [ { bracketIdx: null, @@ -2437,40 +1560,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 888, @@ -2478,125 +1568,15 @@ export const PADDLING_POOL_257 = () => seed: 9, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709741719, - members: [ - { - userId: 30449, - username: "xιиσ", - discordId: "1126541740560617472", - discordAvatar: "a86a01e74ae443c35478882f6a7c230a", - customUrl: "xino", - inGameName: "XINOBI!#2889", - country: "SN", - twitch: null, - createdAt: 1709741719, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6508, - username: "Necrew", - discordId: "395302135501291523", - discordAvatar: "3d48d7480b9877c2aa88c1e2da57a331", - customUrl: "necrew", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1709741826, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32579, - username: "c", - discordId: "1093602436440133752", - discordAvatar: "977b8130b8f55efbf57b7101abd99c75", - customUrl: "clown_spl", - inGameName: null, - country: "NL", - plusTier: 2, - twitch: null, - createdAt: 1709741942, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24585, - username: "AGATE", - discordId: "555795481914245120", - discordAvatar: "6c934620be2d75f95542278212d58b31", - customUrl: "agatespl", - inGameName: "AGATE#1417", - country: "NG", - twitch: null, - createdAt: 1709743574, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27515, - username: "Devin!↑", - discordId: "709679861639151626", - discordAvatar: "df9322e385fef514d0d8bf78bfbbf366", - customUrl: null, - inGameName: "Devin! ↑#1037", - country: "DE", - plusTier: 3, - twitch: null, - createdAt: 1709744235, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11151, - username: "Yoshis", - discordId: "875102801250885724", - discordAvatar: "988ff4ff41b9e821070192b570aa61e3", - customUrl: "yoshisgamer", - inGameName: "ByG Yoshis#2716", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1709747111, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30449, 6508, 32579, 24585, 27515, 11151], + ownerUserId: 30449, checkIns: [ { bracketIdx: null, @@ -2609,40 +1589,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 14, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 8, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 875, @@ -2650,107 +1597,15 @@ export const PADDLING_POOL_257 = () => seed: 10, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709730354, - members: [ - { - userId: 3161, - username: "Saku", - discordId: "575337575036878869", - discordAvatar: "0a9061dd49908f9d114178b05568ce69", - customUrl: "saku", - inGameName: "zzz sακu#3834", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1709730354, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 379, - username: "Prism", - discordId: "720997831359463528", - discordAvatar: "97010d1eab118e23282abec4ecd59eac", - customUrl: "prism", - inGameName: "Byron !#3239", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1709730359, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8480, - username: "Xone", - discordId: "554738521886162945", - discordAvatar: "4406d33804a5012478ef92e054f28741", - customUrl: "xone", - inGameName: "Raven#1340", - country: "FR", - twitch: null, - createdAt: 1709730361, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5229, - username: "Korii🌊", - discordId: "916478656430346302", - discordAvatar: "6d5d694c5cb42f334748a4797666e14a", - customUrl: "korii", - inGameName: "zzz Koriii#9444", - country: "FR", - twitch: null, - createdAt: 1709731364, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7336, - username: "Elo", - discordId: "363449275239366657", - discordAvatar: "ae3c3851ae792bdd03afe0e3a247b77f", - customUrl: "elo", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1709732359, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3161, 379, 8480, 5229, 7336], + ownerUserId: 3161, checkIns: [ { bracketIdx: null, @@ -2763,40 +1618,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 3, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 900, @@ -2804,107 +1626,15 @@ export const PADDLING_POOL_257 = () => seed: 11, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709745630, - members: [ - { - userId: 28482, - username: "phantom 👻", - discordId: "599633578648928307", - discordAvatar: "75e8098ed3f83903d17deb0e6f66baa1", - customUrl: "phantom_spl", - inGameName: "Phantom#5343", - country: "US", - twitch: null, - createdAt: 1709745630, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9403, - username: "Harshi", - discordId: "752042543046197268", - discordAvatar: "b0225f4c06cbfc42f6b095ba7d11964c", - customUrl: null, - inGameName: "Harshi#1575", - country: "CA", - plusTier: 3, - twitch: null, - createdAt: 1709746488, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 18039, - username: "Rose", - discordId: "936942744985829477", - discordAvatar: "2de3d96a7f163439de0ec19f643bc717", - customUrl: "rosearrow", - inGameName: "†’Rose#1636", - country: "US", - twitch: null, - createdAt: 1709746716, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38062, - username: "kayora", - discordId: "662632630696673290", - discordAvatar: "d9b0a7bb4b93f9cf0100d96eefa0ba80", - customUrl: null, - inGameName: null, - country: null, - plusTier: 3, - twitch: null, - createdAt: 1709746974, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25210, - username: "Blue", - discordId: "332626957646823435", - discordAvatar: "476885ef479abbe8a7db4c021042e46a", - customUrl: "tdmblue", - inGameName: "TmBlue#2324", - country: "US", - twitch: null, - createdAt: 1709747701, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [28482, 9403, 18039, 38062, 25210], + ownerUserId: 28482, checkIns: [ { bracketIdx: null, @@ -2917,164 +1647,21 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 828, name: "4Ever", seed: 12, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709592381, - members: [ - { - userId: 30582, - username: "Bull4Ever", - discordId: "353639699237175307", - discordAvatar: "6dba3834f111ffb94af9924fe4f0f2a5", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1709592381, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29321, - username: "Devil~", - discordId: "1115299092764033106", - discordAvatar: "7031e5090156c45e06748db4f2f6ab3e", - customUrl: null, - inGameName: "4 Devil~#1653", - country: "DE", - twitch: null, - createdAt: 1709592386, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3930, - username: "Yushi4Ever", - discordId: "268425076221804554", - discordAvatar: "5215a068eedef51de0b81b2e7f9541fb", - customUrl: null, - inGameName: "4 γµshi~#2216", - country: "DE", - twitch: null, - createdAt: 1709592764, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1740, - username: "✰𝕋𝕚𝕟𝕖✰", - discordId: "436919166679777280", - discordAvatar: "9f846a3e3836541927b9c39496f8d6a5", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1709629441, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5368, - username: "Dismaqe", - discordId: "643538243396042868", - discordAvatar: "55ed273ca147c10ae1dd12dc88f17d39", - customUrl: "dismaqe", - inGameName: null, - country: "EE", - twitch: null, - createdAt: 1709674615, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29433, - username: "Bandito", - discordId: "788856864807845948", - discordAvatar: "5ad1d0408b4a760a1a567efa38641f4b", - customUrl: "bandito", - inGameName: null, - country: "EE", - twitch: null, - createdAt: 1709674777, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30582, 29321, 3930, 1740, 5368, 29433], + ownerUserId: 30582, checkIns: [ { bracketIdx: null, @@ -3087,40 +1674,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 871, @@ -3128,107 +1682,15 @@ export const PADDLING_POOL_257 = () => seed: 13, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709723749, - members: [ - { - userId: 32155, - username: "gugusdu45", - discordId: "759789817763987466", - discordAvatar: "02720d7a968e825f89ceac25ad2f8dd6", - customUrl: null, - inGameName: "gugusdu45#2420", - country: null, - twitch: null, - createdAt: 1709723749, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35118, - username: "Slord.", - discordId: "209358928692248576", - discordAvatar: "8c4b2aba195e3de5bcc7cb84e3df7ab9", - customUrl: null, - inGameName: "Slord.#2406", - country: "FR", - twitch: null, - createdAt: 1709723767, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30730, - username: "zen", - discordId: "224409138367692801", - discordAvatar: "e140334114124a82b342762489c113aa", - customUrl: "zenhmi", - inGameName: "ZENHMi#3291", - country: "FR", - twitch: null, - createdAt: 1709723792, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30758, - username: "★MεgαЯ★", - discordId: "167957503630376960", - discordAvatar: "b64ed12dd2cc1e6eee1db9785791fd7f", - customUrl: null, - inGameName: "★MεgαЯ★#9963", - country: "FR", - twitch: null, - createdAt: 1709723958, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 76, - username: "alwo", - discordId: "457473830022152212", - discordAvatar: "ffd5c22b3e36cefc13181e46900f5c17", - customUrl: "alwo", - inGameName: "Tし Alwo#8043", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1709747537, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [32155, 35118, 30730, 30758, 76], + ownerUserId: 32155, checkIns: [ { bracketIdx: null, @@ -3241,40 +1703,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 10, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 845, @@ -3282,125 +1711,15 @@ export const PADDLING_POOL_257 = () => seed: 14, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709668399, - members: [ - { - userId: 18734, - username: "Javierx9x", - discordId: "617402869280145418", - discordAvatar: "fe79aac365eb877b69aad67224a4b457", - customUrl: null, - inGameName: null, - country: "ES", - twitch: null, - createdAt: 1709668399, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28851, - username: "Aprhodite", - discordId: "688872021526052936", - discordAvatar: "aaa52a048b58dc706b5d88d09d51b1c5", - customUrl: "aprhodite", - inGameName: "Aprhodite#2749", - country: "ES", - twitch: null, - createdAt: 1709668513, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13832, - username: "rdvg", - discordId: "213628539197587456", - discordAvatar: "aa5d2f0442a117f6c0f177322f73e58d", - customUrl: "ruben", - inGameName: null, - country: null, - twitch: null, - createdAt: 1709668696, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23307, - username: "izowen", - discordId: "267037979820818432", - discordAvatar: "9f44aeb40515409565f2eb7c783a76e7", - customUrl: null, - inGameName: "い izoweN#2592", - country: "ES", - twitch: null, - createdAt: 1709668807, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20143, - username: "! Ateno", - discordId: "885858782003990539", - discordAvatar: "fccb549bfca5f61509165b1aeb1675f6", - customUrl: null, - inGameName: "キおう 〆仝 At⇔#3946", - country: "ES", - twitch: null, - createdAt: 1709669282, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27108, - username: "NEOmegaX", - discordId: "482200040685830154", - discordAvatar: "92b52d3fdb574d385e88701f16cb424f", - customUrl: null, - inGameName: "い Neomegax#2245", - country: "ES", - twitch: null, - createdAt: 1709743110, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [18734, 28851, 13832, 23307, 20143, 27108], + ownerUserId: 18734, checkIns: [ { bracketIdx: null, @@ -3413,40 +1732,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 20, - mode: "SZ", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 878, @@ -3454,89 +1740,15 @@ export const PADDLING_POOL_257 = () => seed: 15, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709735267, - members: [ - { - userId: 19035, - username: "Magyk", - discordId: "271823983429550081", - discordAvatar: "73b4e9b8ddf9d275b5cde3e859e608b9", - customUrl: "magyk", - inGameName: "hl。Magyk♪#9557", - country: "US", - twitch: null, - createdAt: 1709735267, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23016, - username: "lexi ♡", - discordId: "869690273725284392", - discordAvatar: "2a724110ec546bfb40a979998db2bc6e", - customUrl: "theory", - inGameName: " SistaLexi#5048", - country: "US", - twitch: null, - createdAt: 1709735362, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6053, - username: "Salti", - discordId: "331517088248233987", - discordAvatar: "42f6d15afbe70ddcd9d8d11658eeb912", - customUrl: "salti64", - inGameName: null, - country: "US", - twitch: null, - createdAt: 1709735442, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23858, - username: "Agl", - discordId: "925886127532019842", - discordAvatar: "13b1bf6dd29698f22630f717b115e74b", - customUrl: "angeel", - inGameName: "May ナー#3235", - country: "FR", - twitch: null, - createdAt: 1709741586, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [19035, 23016, 6053, 23858], + ownerUserId: 19035, checkIns: [ { bracketIdx: null, @@ -3554,40 +1766,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752224, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 3, - mode: "TC", - }, - { - stageId: 18, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 22, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 901, @@ -3595,89 +1774,15 @@ export const PADDLING_POOL_257 = () => seed: 16, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709745849, - members: [ - { - userId: 6870, - username: "~シルウ~", - discordId: "827177277518512178", - discordAvatar: "1a989fbc554eba4354531849fb49c719", - customUrl: "shiruu_", - inGameName: "-シルウ-#2124", - country: "DE", - twitch: null, - createdAt: 1709745849, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29904, - username: "neko♪", - discordId: "1126172942041104488", - discordAvatar: "fd557b8696ecaaca4c863ccce9d2c000", - customUrl: null, - inGameName: "ねこ#12226", - country: "DE", - twitch: null, - createdAt: 1709745857, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20698, - username: "Yame", - discordId: "1010243340429705247", - discordAvatar: "38b06a63e893b69bbcdf09d80852290f", - customUrl: "yame", - inGameName: "Yame#3318", - country: "DE", - twitch: null, - createdAt: 1709745932, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23820, - username: "♱ seb ♱", - discordId: "863787863589650472", - discordAvatar: "a_9cb301e90d936f5bfaf4af4769b04c92", - customUrl: "seb", - inGameName: "200FULLBOX#1297", - country: "ES", - twitch: null, - createdAt: 1709746722, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [6870, 29904, 20698, 23820], + ownerUserId: 6870, checkIns: [ { bracketIdx: null, @@ -3695,40 +1800,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752183, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 10, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 889, @@ -3736,107 +1808,15 @@ export const PADDLING_POOL_257 = () => seed: 17, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709742258, - members: [ - { - userId: 7007, - username: "Sal", - discordId: "488449820600827946", - discordAvatar: "52d7651b62846a819d6fb1346b414bda", - customUrl: null, - inGameName: "[DI] Tiger#1131", - country: "GB", - twitch: null, - createdAt: 1709742258, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30220, - username: "AfroKing", - discordId: "1012418312069714021", - discordAvatar: "4b453d9af53e04df052ae86a98b026d3", - customUrl: "afroking", - inGameName: "[DI] Afro#1667", - country: "GB", - twitch: null, - createdAt: 1709742263, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7440, - username: "mooj", - discordId: "545739590129025025", - discordAvatar: "b62848ee1f441b528fbf96334ac68cfc", - customUrl: "mooj", - inGameName: "[DI] mooj#1498", - country: "GB", - twitch: null, - createdAt: 1709742273, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26665, - username: "tame", - discordId: "648555047629619221", - discordAvatar: "d4ee0a76c2a625321a7f375f84dcb075", - customUrl: null, - inGameName: "[DI] tame#2126", - country: "GB", - twitch: null, - createdAt: 1709742276, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27686, - username: "Pollymuff", - discordId: "742834414970470511", - discordAvatar: "e211ddc3de7371229510b279d556558b", - customUrl: null, - inGameName: "[DI] Polly#1095", - country: "NO", - twitch: null, - createdAt: 1709745042, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [7007, 30220, 7440, 26665, 27686], + ownerUserId: 7007, checkIns: [ { bracketIdx: null, @@ -3849,146 +1829,21 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 22, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 21, - mode: "RM", - }, - { - stageId: 21, - mode: "CB", - }, - { - stageId: 22, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 882, name: "Chaos Control", seed: 18, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709738744, - members: [ - { - userId: 11017, - username: "Hyperstar", - discordId: "343368716303728641", - discordAvatar: "c1771c53f4c7e60e1d8d5858521fca71", - customUrl: "hyperstar", - inGameName: "▼* Hyper☆#1744", - country: "GB", - twitch: null, - createdAt: 1709738744, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7270, - username: "Yolorf", - discordId: "198084438821699584", - discordAvatar: "370b04f8f4b60cce3b14111be7076a8f", - customUrl: null, - inGameName: null, - country: "PT", - twitch: null, - createdAt: 1709738763, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 18703, - username: "salty", - discordId: "231739084211486720", - discordAvatar: "d957c9239464fa742ba1bf9ff18e167b", - customUrl: "buffheavy", - inGameName: "salty#2163", - country: "GB", - twitch: null, - createdAt: 1709738768, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27578, - username: "Slasher", - discordId: "709380815657631755", - discordAvatar: "cedff9867bcedc7187a0e4e9a078e1d1", - customUrl: null, - inGameName: "Slasher#1494", - country: "BE", - twitch: null, - createdAt: 1709738771, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8715, - username: "yaga .", - discordId: "298009085561929728", - discordAvatar: "3390b7f6b50065c4464e8548ea61fd1c", - customUrl: "yaga", - inGameName: "▼* yaga . #3291", - country: null, - twitch: null, - createdAt: 1709738778, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11017, 7270, 18703, 27578, 8715], + ownerUserId: 11017, checkIns: [ { bracketIdx: null, @@ -4001,40 +1856,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 902, @@ -4042,89 +1864,15 @@ export const PADDLING_POOL_257 = () => seed: 19, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709746054, - members: [ - { - userId: 9874, - username: "Pallo", - discordId: "503861705395273738", - discordAvatar: "2771f299e17bc4a09be48b6cce4f8525", - customUrl: "pallo_spl", - inGameName: "Pallo♪#1547", - country: "DK", - twitch: null, - createdAt: 1709746054, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22434, - username: "Dark Aura", - discordId: "187297100827066371", - discordAvatar: "983160d2dfaae97e031fe38f148c88c2", - customUrl: null, - inGameName: "★Dark☆#2415", - country: null, - twitch: null, - createdAt: 1709746062, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10992, - username: "Endo", - discordId: "852932015187558410", - discordAvatar: "bb4d9324674a0c84c50417ecdeef52ca", - customUrl: null, - inGameName: "¥Endo#1758", - country: "DE", - twitch: null, - createdAt: 1709746066, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2302, - username: "Mop", - discordId: "909058148713791529", - discordAvatar: "3b1192a04ea389af320229c7ef13169a", - customUrl: null, - inGameName: "Mop#3970", - country: "GB", - twitch: null, - createdAt: 1709746069, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [9874, 22434, 10992, 2302], + ownerUserId: 9874, checkIns: [ { bracketIdx: null, @@ -4142,128 +1890,21 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752048, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 898, name: "Atsub", seed: 20, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709744894, - members: [ - { - userId: 22948, - username: "𒉭Shadøw", - discordId: "200912048916267008", - discordAvatar: "80f582c65135f45b7120177a6052cdcb", - customUrl: "shadow_carbon", - inGameName: "✞Shadøw#2265", - country: "PT", - twitch: null, - createdAt: 1709744894, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35807, - username: "Baké", - discordId: "630874409170894849", - discordAvatar: "b011e4c600a09072fbd93873b4c569f2", - customUrl: "bake", - inGameName: "り·Baké#2955", - country: "FR", - twitch: null, - createdAt: 1709744896, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23505, - username: "⋆༺Hinamu♱༻⋆", - discordId: "484752209742004226", - discordAvatar: "3735124cab9988cc02a7917bbf6532f6", - customUrl: "hinanamu", - inGameName: "Sekai#2518", - country: "FR", - twitch: null, - createdAt: 1709744933, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 271, - username: "Myst", - discordId: "379020875552522240", - discordAvatar: "60b51665dfba74693844266f53af8d33", - customUrl: "myst", - inGameName: "Myst#2412", - country: "FR", - twitch: null, - createdAt: 1709745146, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22948, 35807, 23505, 271], + ownerUserId: 22948, checkIns: [ { bracketIdx: null, @@ -4276,40 +1917,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 16, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 874, @@ -4317,89 +1925,15 @@ export const PADDLING_POOL_257 = () => seed: 21, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709728278, - members: [ - { - userId: 8868, - username: "Ati", - discordId: "704055690494345306", - discordAvatar: "317047590635110c550c573979844b9f", - customUrl: "ati", - inGameName: "Ati#1543", - country: "TR", - twitch: null, - createdAt: 1709728278, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22452, - username: "S̒̒̎B̾͊̾C̶ͤhrỉ̊ͫs̷͢͢_穀物", - discordId: "441206580931854336", - discordAvatar: "0afea25d9e0c6b59ff51be808e9f38bd", - customUrl: null, - inGameName: "Chris#1351", - country: "DE", - twitch: null, - createdAt: 1709728284, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11625, - username: "Fate/Alex", - discordId: "494482988407586827", - discordAvatar: "756a692ceeb6e49462dbfcdf93eb47c0", - customUrl: null, - inGameName: "AliDerBoss#4018", - country: "DE", - twitch: null, - createdAt: 1709728411, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11716, - username: "y4ss1n3", - discordId: "279993590141419520", - discordAvatar: "90e1d2bc72a05d42234cf615cbbefe28", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1709730409, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [8868, 22452, 11625, 11716], + ownerUserId: 8868, checkIns: [ { bracketIdx: null, @@ -4412,40 +1946,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 10, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 869, @@ -4453,89 +1954,15 @@ export const PADDLING_POOL_257 = () => seed: 22, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709715006, - members: [ - { - userId: 3929, - username: "Jana", - discordId: "166247465878683649", - discordAvatar: "6f9bc247a909de72b9746dbe4cf364a6", - customUrl: null, - inGameName: null, - country: "DE", - twitch: null, - createdAt: 1709715006, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10883, - username: "SkyEnd", - discordId: "462570900953235456", - discordAvatar: "b79baa277ec4f6cf0891592ba81f8d1c", - customUrl: "skyend", - inGameName: "SkyEnd <3#1382", - country: "DE", - twitch: null, - createdAt: 1709715010, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27664, - username: "Spheonix", - discordId: "323497340977676299", - discordAvatar: "4b1ed8e2d90a3d455a1fed8221feb895", - customUrl: "spheonix", - inGameName: "$ρhηiχ▽LOS#3326", - country: "DE", - twitch: null, - createdAt: 1709715013, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2137, - username: "lookitslu", - discordId: "269943589646106626", - discordAvatar: "977b0d7f9eeacde2443001128ae6ee50", - customUrl: null, - inGameName: "lookitslu#9311", - country: "DE", - twitch: null, - createdAt: 1709715015, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3929, 10883, 27664, 2137], + ownerUserId: 3929, checkIns: [ { bracketIdx: null, @@ -4548,40 +1975,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 17, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 10, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 843, @@ -4589,89 +1983,15 @@ export const PADDLING_POOL_257 = () => seed: 23, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709660578, - members: [ - { - userId: 21698, - username: "Bobbela💛", - discordId: "324892849709645825", - discordAvatar: "207ace711818e7f89aa116acc98a6bca", - customUrl: "bobbela", - inGameName: "×··Bobbela#3286", - country: "PT", - twitch: null, - createdAt: 1709660578, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12214, - username: "Napple", - discordId: "978008725451325500", - discordAvatar: "0e258e08b0f478472df8de3bb1c8dd9c", - customUrl: "napple", - inGameName: "×··Napple#1455", - country: "GB", - twitch: null, - createdAt: 1709660989, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29723, - username: "Mailin💙", - discordId: "473164433485594626", - discordAvatar: "0364fd96d15f2a4eb37410835a5d1b44", - customUrl: "goober", - inGameName: "×··goober#1440", - country: "DE", - twitch: null, - createdAt: 1709668986, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28602, - username: "IcedMango", - discordId: "486164026305544192", - discordAvatar: "011ace0a135e782d607c458cdc19f6a6", - customUrl: "icedmango", - inGameName: "×··Mango#1847", - country: "NL", - twitch: null, - createdAt: 1709673459, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [21698, 12214, 29723, 28602], + ownerUserId: 21698, checkIns: [ { bracketIdx: null, @@ -4689,40 +2009,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752471, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 10, - mode: "RM", - }, - { - stageId: 13, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 870, @@ -4730,107 +2017,15 @@ export const PADDLING_POOL_257 = () => seed: 24, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709721869, - members: [ - { - userId: 24705, - username: "Mirval", - discordId: "748837898408820778", - discordAvatar: "874faa0d0fa84ac8855581cff3580507", - customUrl: "mirval", - inGameName: "Mirval#1257", - country: "FR", - twitch: null, - createdAt: 1709721869, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9367, - username: "mishy", - discordId: "631428169047605279", - discordAvatar: "5b91b42f3ba2d2331ce5d94781d91199", - customUrl: "mishy", - inGameName: "mishy#2235", - country: "FR", - twitch: null, - createdAt: 1709721879, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28191, - username: "Aera", - discordId: "924046469886017657", - discordAvatar: "25b3df25b57e5a0274359470c1d9e44c", - customUrl: null, - inGameName: "Aerα#4357", - country: "FR", - twitch: null, - createdAt: 1709722102, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34238, - username: "Sili", - discordId: "1101867939130511420", - discordAvatar: null, - customUrl: null, - inGameName: "pk sili#2673", - country: "FR", - twitch: null, - createdAt: 1709723277, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2781, - username: "Huge", - discordId: "353558861589774337", - discordAvatar: "2e5d73bd99f4e76eeedf576fc05ba52f", - customUrl: null, - inGameName: "Huge :)#1919", - country: "FR", - twitch: null, - createdAt: 1709745438, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [24705, 9367, 28191, 34238, 2781], + ownerUserId: 24705, checkIns: [ { bracketIdx: null, @@ -4848,128 +2043,21 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752537, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 893, name: "Ink Souls Maria", seed: 25, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709743633, - members: [ - { - userId: 5528, - username: "Vapor.", - discordId: "443815041804795905", - discordAvatar: "373f75beccdb1244d8de08767406c335", - customUrl: null, - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1709743633, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6935, - username: "Splatos", - discordId: "375315735875944470", - discordAvatar: "76b007d6f57b47b683e78dfd100832a7", - customUrl: "splatos", - inGameName: "仝Splatos仝#1932", - country: "FR", - twitch: null, - createdAt: 1709743650, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8243, - username: "Loωαsıs'", - discordId: "500261010712821761", - discordAvatar: "e59763ffb97a9f90b2afa6c27c290ae5", - customUrl: null, - inGameName: "仝Lowasis ♪#3146", - country: "FR", - twitch: null, - createdAt: 1709743701, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 19002, - username: "Alonika", - discordId: "768156816231497748", - discordAvatar: "50da7f60e55e05a725642f5c2145da5b", - customUrl: "alonika", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1709743849, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [5528, 6935, 8243, 19002], + ownerUserId: 5528, checkIns: [ { bracketIdx: null, @@ -4987,40 +2075,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752696, }, ], - mapPool: [ - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 16, - mode: "TC", - }, - { - stageId: 7, - mode: "RM", - }, - { - stageId: 10, - mode: "RM", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 14, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 883, @@ -5028,107 +2083,15 @@ export const PADDLING_POOL_257 = () => seed: 26, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709738747, - members: [ - { - userId: 12526, - username: "GoldA", - discordId: "706956975564652614", - discordAvatar: "5d78f7dc7de2bf4bc7d15063c12277e9", - customUrl: null, - inGameName: "2.GoldA#2405", - country: "DE", - twitch: null, - createdAt: 1709738747, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28822, - username: "piiiro", - discordId: "715504166272893009", - discordAvatar: "1a8315559210c961645aeb1742a247be", - customUrl: null, - inGameName: "2.piiiro?!#1274", - country: "DE", - twitch: null, - createdAt: 1709738768, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24441, - username: "flemmi", - discordId: "626070366338416650", - discordAvatar: "3a3a5b895f07ba16af5c406b236a6b2d", - customUrl: "flemmi", - inGameName: "2.flemmi#3395", - country: "DE", - twitch: null, - createdAt: 1709738774, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28629, - username: "Wolfi.Jr", - discordId: "1093481853375217724", - discordAvatar: "1660f3d22232d967d37dae2206f660c3", - customUrl: null, - inGameName: "2.WolfiJr#1423", - country: "DE", - twitch: null, - createdAt: 1709739032, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9211, - username: "Ninjar04", - discordId: "518016631973085185", - discordAvatar: "eb2872aa07883028d602ca90dbe76ac8", - customUrl: "ninjar04", - inGameName: "Ninjar04#1774", - country: "DE", - twitch: null, - createdAt: 1709740549, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [12526, 28822, 24441, 28629, 9211], + ownerUserId: 12526, checkIns: [ { bracketIdx: null, @@ -5146,40 +2109,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709751465, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 14, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 14, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 839, @@ -5187,107 +2117,15 @@ export const PADDLING_POOL_257 = () => seed: 27, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709626047, - members: [ - { - userId: 25545, - username: "jj", - discordId: "1011354585820049429", - discordAvatar: "d7db25ad778e26ed9b73a266644abf61", - customUrl: null, - inGameName: "1нρ jj#3153", - country: "GB", - twitch: null, - createdAt: 1709626047, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 368, - username: "Droid (P1)", - discordId: "803420789957328936", - discordAvatar: "0c2419962932a8c5b1098faf85a66b64", - customUrl: "splatdroid", - inGameName: "1нρ Đroid#1097", - country: "US", - twitch: null, - createdAt: 1709626053, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1624, - username: "Sneaky", - discordId: "292338070886547457", - discordAvatar: "3e5f5e1a0e42dadb6592787f16754d00", - customUrl: "sneaky", - inGameName: "1нρ Sneaky#1502", - country: "BE", - twitch: null, - createdAt: 1709626056, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25088, - username: "dani", - discordId: "450195023561097236", - discordAvatar: "10cbdbda702652aade7d3da726288463", - customUrl: null, - inGameName: "1нρ dani#2982", - country: "ES", - twitch: null, - createdAt: 1709626059, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15526, - username: "Enamel", - discordId: "636691044381097989", - discordAvatar: "dbff72fffb6da0fbb56a03f256978dbb", - customUrl: "enamel", - inGameName: "Enamel#2070", - country: "AT", - twitch: null, - createdAt: 1709626392, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25545, 368, 1624, 25088, 15526], + ownerUserId: 25545, checkIns: [ { bracketIdx: null, @@ -5300,40 +2138,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 14, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 873, @@ -5341,89 +2146,15 @@ export const PADDLING_POOL_257 = () => seed: 28, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709727951, - members: [ - { - userId: 9411, - username: "~XploRiver 🍫", - discordId: "494950864931258378", - discordAvatar: "ba4628b2b1e3f35d15979c89bd20d2c6", - customUrl: "xploriver", - inGameName: "の\tXploRivr#5566", - country: "CH", - twitch: null, - createdAt: 1709727951, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 18143, - username: "Hugeaux", - discordId: "309705516349784064", - discordAvatar: "efa135d90a0582895d57e3b218db01f0", - customUrl: "hugeaux", - inGameName: "の Hugeaux#1049", - country: "CH", - twitch: null, - createdAt: 1709727955, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30942, - username: "Roylouk", - discordId: "423906604774326272", - discordAvatar: "6c3908bced150d5e002230d18a42b9dc", - customUrl: null, - inGameName: "の εδ⇔Ligma#1885", - country: "CH", - twitch: null, - createdAt: 1709728867, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21583, - username: "Deez", - discordId: "563882588251619340", - discordAvatar: "c860fdd8371d09e681c6edd41995d353", - customUrl: "depito", - inGameName: "の εδ⟺Deez#7973", - country: "CH", - twitch: null, - createdAt: 1709729336, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [9411, 18143, 30942, 21583], + ownerUserId: 9411, checkIns: [ { bracketIdx: null, @@ -5436,40 +2167,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 16, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 1, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 887, @@ -5477,125 +2175,15 @@ export const PADDLING_POOL_257 = () => seed: 29, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709741482, - members: [ - { - userId: 27529, - username: "Axo", - discordId: "793150346301145130", - discordAvatar: "de42dbfa10f0c1a09503c2f97261c350", - customUrl: "funiaxolotl", - inGameName: "AQ¤Axo#6223", - country: "IS", - twitch: null, - createdAt: 1709741482, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9307, - username: "Jax∞", - discordId: "656909117847371787", - discordAvatar: "aaa6aeb5f61b8a371fd1735df4d2c5a1", - customUrl: null, - inGameName: null, - country: "AT", - twitch: null, - createdAt: 1709741787, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5735, - username: "Kαrmα", - discordId: "380068065703886851", - discordAvatar: "a20750f6b267df9b3153ae40b1541467", - customUrl: "itis_karma", - inGameName: "Karma#2126", - country: "SE", - twitch: null, - createdAt: 1709742200, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10010, - username: "CarpCranium", - discordId: "746314832982310953", - discordAvatar: "3c9ccec39bc8c0b8a7a02421926cdad8", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1709744132, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 17798, - username: "zlimit 💤", - discordId: "785425618027282442", - discordAvatar: "284a42b97ba2153c87aca6e2b73d11df", - customUrl: null, - inGameName: "xlimit#3360", - country: null, - twitch: null, - createdAt: 1709746800, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11635, - username: "Goldeb", - discordId: "377174419665059850", - discordAvatar: "352a0df37dd3d1f976719a860f8fbca8", - customUrl: "kelvin52point5", - inGameName: "MLP★Goldeb#9709", - country: "FI", - twitch: null, - createdAt: 1709746904, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [27529, 9307, 5735, 10010, 17798, 11635], + ownerUserId: 27529, checkIns: [ { bracketIdx: null, @@ -5608,128 +2196,21 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 19, - mode: "RM", - }, - { - stageId: 21, - mode: "RM", - }, - { - stageId: 2, - mode: "CB", - }, - { - stageId: 8, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 897, name: "Splash Mirrors 3", seed: 30, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709744451, - members: [ - { - userId: 28834, - username: "⭐Neil⭐L.", - discordId: "607886226103468035", - discordAvatar: "0aacc1333847416514f20f9866dec80f", - customUrl: null, - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1709744451, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28271, - username: "Krixxor", - discordId: "222796801273495552", - discordAvatar: "4c5fcb6cf53fb417279631ea648b0372", - customUrl: "krixxor", - inGameName: "Krixxor#2871", - country: "FR", - twitch: null, - createdAt: 1709744453, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34715, - username: "Mat F", - discordId: "371359025314398210", - discordAvatar: "971d9af8c9c27a85ca180b7eb66c25e7", - customUrl: "forceur", - inGameName: "Mat F#3359", - country: "FR", - twitch: null, - createdAt: 1709744456, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12188, - username: "S4", - discordId: "265102656685473792", - discordAvatar: "95ea9f2b10773c2af078abaa6f886b11", - customUrl: "s4", - inGameName: "S4#3238", - country: "FR", - twitch: null, - createdAt: 1709744458, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [28834, 28271, 34715, 12188], + ownerUserId: 28834, checkIns: [ { bracketIdx: null, @@ -5747,40 +2228,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752730, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 14, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 872, @@ -5788,88 +2236,15 @@ export const PADDLING_POOL_257 = () => seed: 31, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709726536, - members: [ - { - userId: 19231, - username: "Axolt", - discordId: "943431424013398036", - discordAvatar: "23a18ee68051d0027b11e608b1c460ed", - customUrl: "axolt", - inGameName: "Axølt#2675", - country: "FR", - twitch: null, - createdAt: 1709726536, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26454, - username: "sorailla‽", - discordId: "1053404982642216980", - discordAvatar: "1c5d7d3f0e1b85434739e7e2207b56b8", - customUrl: "soraa", - inGameName: "Mafuyu <3#1525", - country: "FR", - twitch: null, - createdAt: 1709726748, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5740, - username: "Error ♪", - discordId: "421028576444284939", - discordAvatar: "db81e4aa22b2782d1832b5bc7c1052f7", - customUrl: "error", - inGameName: "の{Error ♪#2000", - country: "FR", - twitch: null, - createdAt: 1709726853, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - }, - { - userId: 27468, - username: "dam!", - discordId: "672943165187031080", - discordAvatar: "14087dba6d3666f0470ecd099f1f9348", - customUrl: "dam", - inGameName: "Kanade <3#2259", - country: "MA", - twitch: null, - createdAt: 1709743306, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [19231, 26454, 5740, 27468], + ownerUserId: 19231, checkIns: [ { bracketIdx: null, @@ -5882,40 +2257,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 2, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, customAvatarUrl: null, }, { @@ -5924,89 +2266,15 @@ export const PADDLING_POOL_257 = () => seed: 32, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709558706, - members: [ - { - userId: 32688, - username: "OhItsAna19", - discordId: "549632105320153098", - discordAvatar: "d22a437a63f6fdc07a0f37d93cc79e39", - customUrl: "ohitsana19", - inGameName: "сн;An An#4207", - country: "CH", - twitch: null, - createdAt: 1709558706, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28194, - username: "Nah, I'd Win.", - discordId: "934536595313405994", - discordAvatar: "e966a9175ac3a29f7e8de16413af0830", - customUrl: "nah-id-win", - inGameName: null, - country: "AT", - twitch: null, - createdAt: 1709560421, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11226, - username: "Zyler", - discordId: "258924484373774338", - discordAvatar: "7830665b51fcdd4a4f73ea573e7070a0", - customUrl: "zylerisafool", - inGameName: "TM©Zyler#2894", - country: "ES", - twitch: null, - createdAt: 1709562784, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10370, - username: "V1P3R☆", - discordId: "690623603728973824", - discordAvatar: "a_ae8ce84ce177f49a6ede5d6ce7a702a5", - customUrl: "v1p3r", - inGameName: "V1P3R☆#2962", - country: "DE", - twitch: null, - createdAt: 1709577646, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [32688, 28194, 11226, 10370], + ownerUserId: 32688, checkIns: [ { bracketIdx: null, @@ -6024,40 +2292,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752271, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 14, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 14, - mode: "RM", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 896, @@ -6065,107 +2300,15 @@ export const PADDLING_POOL_257 = () => seed: 33, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709744323, - members: [ - { - userId: 20063, - username: "<_>Froody", - discordId: "693508072391311450", - discordAvatar: "1856ed2d28de4ece5aff26331e9d4d6c", - customUrl: "djfroody", - inGameName: "<_>Froody#4402", - country: "DE", - twitch: null, - createdAt: 1709744323, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35382, - username: "Saibot577", - discordId: "751130824384053420", - discordAvatar: null, - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1709746879, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23037, - username: "<_>𝒩𝒾𝑔𝒽𝓉𝓂𝒶𝓇𝑒", - discordId: "799168748162383872", - discordAvatar: "e954828dbb158aaab5a186d66cd17eb5", - customUrl: null, - inGameName: "<_>Nghtmre#2433", - country: "DE", - twitch: null, - createdAt: 1709747066, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27768, - username: "<_>Weemo", - discordId: "622045781418835978", - discordAvatar: "f2c3fa49219a80a4ae00ff2d3f8ae7bf", - customUrl: null, - inGameName: "<_>Weemo#2306", - country: "CH", - twitch: null, - createdAt: 1709747080, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38120, - username: "Necuma -> ネクマ", - discordId: "938100479148314715", - discordAvatar: "5d092d1092d6597c66cd60f4f666b406", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1709749833, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [20063, 35382, 23037, 27768, 38120], + ownerUserId: 20063, checkIns: [ { bracketIdx: null, @@ -6183,40 +2326,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709752784, }, ], - mapPool: [ - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 22, - mode: "SZ", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 19, - mode: "RM", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 10, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 847, @@ -6224,89 +2334,15 @@ export const PADDLING_POOL_257 = () => seed: 34, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709677397, - members: [ - { - userId: 23009, - username: "Misa 🎀", - discordId: "721698044881403915", - discordAvatar: "a7cdc3154d2501b70f55476d2af06f78", - customUrl: "yumsie", - inGameName: "yuums#1006", - country: null, - twitch: null, - createdAt: 1709677397, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28178, - username: "Mr.ShL", - discordId: "937347333346193449", - discordAvatar: null, - customUrl: "shl69", - inGameName: "LOWTIERShL#9645", - country: "RU", - twitch: null, - createdAt: 1709677403, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23353, - username: "soosh", - discordId: "513261604603691019", - discordAvatar: "86a5795d21d8b32f503d60b8b375ba93", - customUrl: "soosh", - inGameName: "soosh ;3#9106", - country: "SE", - twitch: null, - createdAt: 1709677405, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31658, - username: "Cajus", - discordId: "702879538132025435", - discordAvatar: "e356743e61a0249ac782cf476c891958", - customUrl: "cajus", - inGameName: "Cajus#2115", - country: null, - twitch: null, - createdAt: 1709700369, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [23009, 28178, 23353, 31658], + ownerUserId: 23009, checkIns: [ { bracketIdx: null, @@ -6319,40 +2355,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709748010, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - ], + hasMapPool: true, }, { id: 838, @@ -6360,107 +2363,15 @@ export const PADDLING_POOL_257 = () => seed: 35, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1709618711, - members: [ - { - userId: 17734, - username: "Flip", - discordId: "374303281008214016", - discordAvatar: "0f3d6deeab62ae0c3feccd559a2f75e7", - customUrl: "flip", - inGameName: "GGG Flip#5641", - country: "DE", - twitch: null, - createdAt: 1709618711, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28338, - username: "Noot", - discordId: "264694121334177793", - discordAvatar: "67375b0afb851c370a7ef587d5ee3f0b", - customUrl: "noot", - inGameName: "GGG Noot#2393", - country: "DK", - twitch: null, - createdAt: 1709620129, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30928, - username: "Chaotic Arlyn", - discordId: "328225278432378881", - discordAvatar: "f7e8c85575558b1afc026d2aee5afe22", - customUrl: "chaoticarlyn", - inGameName: "GGG Arlyn#1987", - country: "DK", - twitch: null, - createdAt: 1709621809, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 37658, - username: "Feli", - discordId: "1193641679215935620", - discordAvatar: "83211362a367cad47804c7800629488f", - customUrl: null, - inGameName: null, - country: "NL", - twitch: null, - createdAt: 1709640176, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26758, - username: "Lianzi", - discordId: "421474055972061184", - discordAvatar: "7bc715b2fb83a282e95de902e7210413", - customUrl: null, - inGameName: "Lianzi#3090", - country: "US", - twitch: null, - createdAt: 1709654306, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [17734, 28338, 30928, 37658, 26758], + ownerUserId: 17734, checkIns: [ { bracketIdx: null, @@ -6478,40 +2389,7 @@ export const PADDLING_POOL_257 = () => checkedInAt: 1709751622, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - ], + hasMapPool: true, }, ], bestOfs: [ @@ -6687,29 +2565,13 @@ export const PADDLING_POOL_257 = () => mode: "TC", }, ], - participatedUsers: [ - 76, 185, 193, 223, 271, 343, 368, 379, 1300, 1447, 1624, 2137, 2302, - 2622, 2781, 3161, 3929, 3930, 4603, 5229, 5368, 5528, 5728, 5735, 5740, - 6053, 6508, 6870, 6935, 7007, 7094, 7265, 7270, 7336, 7440, 8139, 8157, - 8243, 8258, 8480, 8715, 8734, 8868, 9125, 9211, 9307, 9367, 9403, 9411, - 9874, 9925, 10010, 10293, 10370, 10615, 10883, 10992, 11017, 11056, - 11151, 11199, 11226, 11625, 11627, 11635, 11716, 12188, 12214, 12526, - 12976, 13227, 13562, 14489, 15526, 15916, 17734, 18039, 18143, 18703, - 18734, 19002, 19035, 19231, 20063, 20143, 20698, 20755, 21583, 21698, - 21979, 22434, 22452, 22661, 22746, 22948, 23009, 23016, 23037, 23307, - 23353, 23505, 23746, 23820, 23858, 24441, 24585, 24705, 25088, 25545, - 26454, 26665, 26758, 27108, 27468, 27515, 27578, 27664, 27686, 27768, - 27958, 28178, 28191, 28194, 28271, 28338, 28482, 28485, 28602, 28629, - 28822, 28834, 28851, 29321, 29723, 29904, 30220, 30449, 30582, 30730, - 30758, 30928, 30942, 31658, 32155, 32688, 34238, 34715, 35118, 35382, - 35807, 37658, 38062, 38120, - ], - castStreams: [], + latestTeamIdByDuplicatedUserId: {}, }, }) as TournamentData; export const PADDLING_POOL_255 = () => ({ + streams: [], data: { stage: [ { @@ -7975,6 +3837,23 @@ export const PADDLING_POOL_255 = () => }, ], }, + participatedUsers: [ + 62, 115, 205, 222, 306, 331, 342, 418, 461, 1447, 1740, 2137, 2302, 2392, + 2414, 2589, 2670, 3060, 3161, 3400, 3929, 3930, 4061, 4234, 4275, 4606, + 4807, 5072, 5368, 5528, 5844, 6202, 6508, 6710, 6870, 6935, 7007, 7094, + 7440, 7735, 8169, 8243, 8391, 8715, 8868, 9125, 9211, 9342, 9535, 9547, + 9719, 9874, 10578, 10615, 10812, 10819, 10883, 10992, 11017, 11151, 11506, + 11517, 11593, 11625, 11627, 12351, 12358, 12526, 12619, 12642, 12976, + 13296, 13562, 13736, 13832, 13997, 14489, 14927, 14973, 15135, 15326, + 15346, 15526, 15880, 16634, 17137, 17940, 18290, 18703, 18734, 18969, + 19002, 20755, 21979, 21989, 22434, 22452, 22661, 22746, 22948, 23128, + 23307, 23746, 23784, 23858, 24441, 24585, 25242, 25400, 25814, 25954, + 26392, 26665, 26683, 26726, 26792, 27108, 27515, 27578, 27664, 27686, + 27958, 27960, 28441, 28485, 28629, 28662, 28725, 28745, 28822, 28851, + 29099, 29321, 29433, 29904, 30220, 30234, 30449, 30582, 30751, 30972, + 31131, 31311, 31358, 31597, 31690, 32156, 32328, 32579, 32688, 34933, + 35118, 35807, 38062, 38080, 38902, + ], ctx: { id: 18, organization: null, @@ -8100,88 +3979,14 @@ export const PADDLING_POOL_255 = () => name: "Please don't forfeit. ", seed: 1, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708476597, - members: [ - { - userId: 11517, - username: "xenith", - discordId: "936048087791702087", - discordAvatar: "db4c8ce55ac3f516d5d8136f6eb7d1eb", - customUrl: "xenith", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1708476597, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 62, - username: "SpongeBob", - discordId: "721521981979230289", - discordAvatar: "cb48c2d4107304c5af6c8795f3d4d3a8", - customUrl: "sancocho", - inGameName: null, - country: "PA", - plusTier: 1, - twitch: null, - createdAt: 1708476600, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4275, - username: "bab", - discordId: "724498097547509792", - discordAvatar: "4785cf601eafb4506271c463f54c12e4", - customUrl: "bab", - inGameName: null, - country: "US", - twitch: null, - createdAt: 1708476602, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11593, - username: "Aloha", - discordId: "554350848352714753", - discordAvatar: "29d02e03a0f5414955ea1ede9da0f5cd", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1708528985, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11517, 62, 4275, 11593], + ownerUserId: 11517, checkIns: [ { bracketIdx: null, @@ -8194,40 +3999,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 4, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 718, @@ -8235,89 +4007,15 @@ export const PADDLING_POOL_255 = () => seed: 2, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708535137, - members: [ - { - userId: 1447, - username: "Tamako", - discordId: "165170281814556672", - discordAvatar: "7241c33a50f405f052f50fb984d7e269", - customUrl: "tamako", - inGameName: "Tamako#2935", - country: "DE", - plusTier: 3, - twitch: null, - createdAt: 1708535137, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31358, - username: "ぼるてっくす/vortex", - discordId: "697023903322603591", - discordAvatar: "d7eaaf9c2c44db64f235dc3e548adf84", - customUrl: "vortex", - inGameName: null, - country: "JP", - plusTier: 2, - twitch: null, - createdAt: 1708535159, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32579, - username: "c", - discordId: "1093602436440133752", - discordAvatar: "977b8130b8f55efbf57b7101abd99c75", - customUrl: "clown_spl", - inGameName: null, - country: "NL", - plusTier: 2, - twitch: null, - createdAt: 1708535159, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27515, - username: "Devin!↑", - discordId: "709679861639151626", - discordAvatar: "df9322e385fef514d0d8bf78bfbbf366", - customUrl: null, - inGameName: "Devin! ↑#1037", - country: "DE", - plusTier: 3, - twitch: null, - createdAt: 1708535268, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [1447, 31358, 32579, 27515], + ownerUserId: 1447, checkIns: [ { bracketIdx: null, @@ -8330,40 +4028,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 10, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 716, @@ -8371,107 +4036,15 @@ export const PADDLING_POOL_255 = () => seed: 3, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708533764, - members: [ - { - userId: 10812, - username: "haru", - discordId: "660902180425039882", - discordAvatar: "71db04119f1f62e186a8bd004602553c", - customUrl: "haru", - inGameName: "MG haru#2445", - country: "FR", - twitch: null, - createdAt: 1708533764, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27958, - username: ".", - discordId: "437402107818016780", - discordAvatar: "5b11047c3c07612b9a9269b05f91e7a7", - customUrl: "tody", - inGameName: null, - country: "JP", - plusTier: 2, - twitch: null, - createdAt: 1708533803, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4061, - username: "Snnoo", - discordId: "620181963382325268", - discordAvatar: "4cbb17927060550172c4b2a6a27babea", - customUrl: "snnoo", - inGameName: "nW sηηoo#1522", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708534049, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38062, - username: "kayora", - discordId: "662632630696673290", - discordAvatar: "d9b0a7bb4b93f9cf0100d96eefa0ba80", - customUrl: null, - inGameName: null, - country: null, - plusTier: 3, - twitch: null, - createdAt: 1708534246, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2414, - username: "Sinayy", - discordId: "377543915043160074", - discordAvatar: "3e410a4640460470d001d0eb21d15529", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708536492, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [10812, 27958, 4061, 38062, 2414], + ownerUserId: 10812, checkIns: [ { bracketIdx: null, @@ -8484,146 +4057,21 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 3, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 724, name: "menoks!", seed: 4, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708537512, - members: [ - { - userId: 9535, - username: ";reyes", - discordId: "341899225891602433", - discordAvatar: "02211ede50547d34ca52204c6d024d0e", - customUrl: null, - inGameName: ";rεyεs#3190", - country: "FI", - plusTier: 2, - twitch: null, - createdAt: 1708537512, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4234, - username: "styroz", - discordId: "507702707058900992", - discordAvatar: "a_3a213a02ad49cbc360a75508d2d19ca5", - customUrl: "teensuicide", - inGameName: null, - country: "US", - twitch: null, - createdAt: 1708537563, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 331, - username: "kera", - discordId: "678848011090264075", - discordAvatar: "d5fef5e57e1d8a25215de3f72a63c614", - customUrl: "kera", - inGameName: null, - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1708537568, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 205, - username: "Lew", - discordId: "320297534759370752", - discordAvatar: "545c61474a698fa60049f80e2d0834b6", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1708537699, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 319, - username: "Alex", - discordId: "731230341225775184", - discordAvatar: "869213b6ac7841ee14bb417a7c7a3ed3", - customUrl: "alexdc", - inGameName: null, - country: "ES", - plusTier: 2, - twitch: null, - createdAt: 1708545196, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [9535, 4234, 331, 205, 319], + ownerUserId: 9535, checkIns: [ { bracketIdx: null, @@ -8636,40 +4084,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 16, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 715, @@ -8677,89 +4092,15 @@ export const PADDLING_POOL_255 = () => seed: 5, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708533309, - members: [ - { - userId: 22661, - username: "_Silver", - discordId: "778336481206075435", - discordAvatar: "8c00132a8493847453f67ea7262a03db", - customUrl: "_silver", - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708533309, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3400, - username: "Aloha", - discordId: "626121948081946654", - discordAvatar: "d855a0a84f4fad8554ba4a6432f25a3b", - customUrl: null, - inGameName: "チキン Aloha#9217", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708533313, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7094, - username: "Jul", - discordId: "603537087798575124", - discordAvatar: "df8ec4bb766669605a476a892659ff5d", - customUrl: null, - inGameName: null, - country: null, - plusTier: 3, - twitch: null, - createdAt: 1708533341, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3161, - username: "Saku", - discordId: "575337575036878869", - discordAvatar: "0a9061dd49908f9d114178b05568ce69", - customUrl: "saku", - inGameName: "zzz sακu#3834", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708533367, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22661, 3400, 7094, 3161], + ownerUserId: 22661, checkIns: [ { bracketIdx: null, @@ -8772,40 +4113,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 6, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 676, @@ -8813,107 +4121,15 @@ export const PADDLING_POOL_255 = () => seed: 6, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708430641, - members: [ - { - userId: 15326, - username: "Risu", - discordId: "650784073966420005", - discordAvatar: "e0b403fe67f1f5ffbeaec601fde5aa44", - customUrl: "risu", - inGameName: "TFR Risu#9426", - country: "GB", - plusTier: 2, - twitch: null, - createdAt: 1708430641, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13562, - username: "kiki", - discordId: "707603025090445392", - discordAvatar: "f570f994acd9f154170daf9ed424b5b6", - customUrl: "kiki", - inGameName: "kiki ヤ#0000", - country: "IE", - plusTier: 3, - twitch: null, - createdAt: 1708489678, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8852, - username: "mocher", - discordId: "730965705159082077", - discordAvatar: "5accb71fe037f97a47562be0c79f66f3", - customUrl: "mocha", - inGameName: "lovegalore#1038", - country: "KR", - plusTier: 3, - twitch: null, - createdAt: 1708489696, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23746, - username: "Proto", - discordId: "148103128032608256", - discordAvatar: "ed2ac642646017bb7bd9cbb31a59bc66", - customUrl: "proto", - inGameName: "-> Proto#4769", - country: "US", - twitch: null, - createdAt: 1708489707, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28485, - username: "˜Buηgee˜", - discordId: "1115002996401639464", - discordAvatar: "6b80ad95448995522b2138e3429cd0fe", - customUrl: "gee", - inGameName: "gee#2507", - country: "GP", - plusTier: 3, - twitch: null, - createdAt: 1708531337, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [15326, 13562, 8852, 23746, 28485], + ownerUserId: 15326, checkIns: [ { bracketIdx: null, @@ -8926,40 +4142,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 4, - mode: "CB", - }, - { - stageId: 20, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 1, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 722, @@ -8967,89 +4150,15 @@ export const PADDLING_POOL_255 = () => seed: 7, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708536306, - members: [ - { - userId: 115, - username: "Maeee 🌸", - discordId: "351412592335650817", - discordAvatar: "99875d461f4dc57ff9c0c53cc626b964", - customUrl: "mae_spl", - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708536306, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10578, - username: "Arashi", - discordId: "430008743284178957", - discordAvatar: "f73babaf07e6cd70188ad5d68d23f4e8", - customUrl: "splatarashi", - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708536342, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11151, - username: "Yoshis", - discordId: "875102801250885724", - discordAvatar: "988ff4ff41b9e821070192b570aa61e3", - customUrl: "yoshisgamer", - inGameName: "ByG Yoshis#2716", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1708536362, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 222, - username: "Aymen", - discordId: "241892796066299905", - discordAvatar: "522828866fabba23274e81190f52ec89", - customUrl: "oreo", - inGameName: "oreo!!!!!?#1399", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708536503, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [115, 10578, 11151, 222], + ownerUserId: 115, checkIns: [ { bracketIdx: null, @@ -9062,128 +4171,21 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 20, - mode: "SZ", - }, - { - stageId: 2, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 19, - mode: "RM", - }, - { - stageId: 3, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 708, name: "91 c'est la Champions League", seed: 8, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708526368, - members: [ - { - userId: 15880, - username: "ilias'", - discordId: "845801148572368936", - discordAvatar: "f314cdbae3682577ad5812e5ba83e4f7", - customUrl: "ilias", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1708526368, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10615, - username: "Yotzzz", - discordId: "700013882785267772", - discordAvatar: "2f935c9037708045ac9923317f995231", - customUrl: "yotzzz", - inGameName: "Yotzzz#9674", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708526444, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31690, - username: "MYSTIIK", - discordId: "520685697749745664", - discordAvatar: "446489a3491ef9cd9f16c0f42b25ca3f", - customUrl: "la_mystifiance", - inGameName: "MYSTIIIIIK#2855", - country: "FR", - twitch: null, - createdAt: 1708527117, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6710, - username: "KITKAT", - discordId: "651677259144364032", - discordAvatar: "02b3060c984cad6fac233d7bb245ef7d", - customUrl: "kitkaat", - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1708533914, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [15880, 10615, 31690, 6710], + ownerUserId: 15880, checkIns: [ { bracketIdx: null, @@ -9196,40 +4198,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 21, - mode: "RM", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 21, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 701, @@ -9237,125 +4206,15 @@ export const PADDLING_POOL_255 = () => seed: 9, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708506060, - members: [ - { - userId: 9125, - username: "Zivox", - discordId: "244456158201380864", - discordAvatar: "0c19856d48d3c074b052bb8b0fb96d96", - customUrl: "zivox", - inGameName: "Zivox ?#4849", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708506060, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14489, - username: "keurbi", - discordId: "699648108958843011", - discordAvatar: "13a3d7f9e4da5790e84e39d12765be16", - customUrl: "keurbii", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1708506068, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28725, - username: "Naka", - discordId: "570644384929021973", - discordAvatar: "e16a9798288b3988c9b3ba10bd259b1d", - customUrl: "naka", - inGameName: "Nakaverne#1908", - country: "FR", - twitch: null, - createdAt: 1708506073, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 16, - username: "Danget", - discordId: "196683301988204545", - discordAvatar: "0c1ce11788a0c6fd752ee2e6ef78bea4", - customUrl: "danget", - inGameName: "Danget ?#1490", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1708506080, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20755, - username: "Kchouuu💜", - discordId: "517816481854128134", - discordAvatar: "a_dbf5283fac4fa8bc631a74a4719612d9", - customUrl: "kchouuu", - inGameName: "ZkG Kchou'#7905", - country: "FR", - twitch: null, - createdAt: 1708506761, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4606, - username: "not kaiju", - discordId: "756170224176201850", - discordAvatar: "6c39f6d4d1c96fd5d4d0342ee812c4a4", - customUrl: "kaiju", - inGameName: null, - country: null, - twitch: null, - createdAt: 1708512496, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [9125, 14489, 28725, 16, 20755, 4606], + ownerUserId: 9125, checkIns: [ { bracketIdx: null, @@ -9368,40 +4227,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 13, - mode: "CB", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 9, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 709, @@ -9409,89 +4235,15 @@ export const PADDLING_POOL_255 = () => seed: 10, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708526814, - members: [ - { - userId: 22746, - username: "Bomm", - discordId: "581148889114214400", - discordAvatar: "af58a7bdf4fb231f289d24203a76ec6e", - customUrl: null, - inGameName: "Bomm☆Sz♪#1943", - country: "FR", - twitch: null, - createdAt: 1708526814, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12976, - username: "Tikke", - discordId: "1005519944223555683", - discordAvatar: "40c3446f2d71533b7cd22cd50c2fc971", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1708526826, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21979, - username: "Jιky", - discordId: "1018190360918364181", - discordAvatar: "bfe0fb7aed86889b58489fa1ffdde1e7", - customUrl: "jiky", - inGameName: "Sて Jιky#3308", - country: "FR", - twitch: null, - createdAt: 1708526839, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11627, - username: "Adil", - discordId: "567674530999304212", - discordAvatar: "2bd7a20ef08ae5195db4393c80c42961", - customUrl: "adil", - inGameName: null, - country: "DZ", - twitch: null, - createdAt: 1708526882, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22746, 12976, 21979, 11627], + ownerUserId: 22746, checkIns: [ { bracketIdx: null, @@ -9504,146 +4256,21 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 697, name: "Atlass", seed: 11, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708466421, - members: [ - { - userId: 22948, - username: "𒉭Shadøw", - discordId: "200912048916267008", - discordAvatar: "80f582c65135f45b7120177a6052cdcb", - customUrl: "shadow_carbon", - inGameName: "✞Shadøw#2265", - country: "PT", - twitch: null, - createdAt: 1708466421, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38080, - username: "Awenn", - discordId: "1158149473541836820", - discordAvatar: "b7fec35f140c0d276107917f03b1e7d5", - customUrl: null, - inGameName: "Lottared!#2387", - country: "RU", - twitch: null, - createdAt: 1708466429, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35807, - username: "Baké", - discordId: "630874409170894849", - discordAvatar: "b011e4c600a09072fbd93873b4c569f2", - customUrl: "bake", - inGameName: "り·Baké#2955", - country: "FR", - twitch: null, - createdAt: 1708466434, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23128, - username: "hiro", - discordId: "946503696697688095", - discordAvatar: "1f96c7be0c710c3dc5ceab90d18a7579", - customUrl: "hiro", - inGameName: " hiro#1617", - country: "FR", - twitch: null, - createdAt: 1708466442, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26392, - username: "Daki", - discordId: "931599095225782342", - discordAvatar: "105ad067fc8680684a149f1b42efed93", - customUrl: "dakirikouuu", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1708538756, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22948, 38080, 35807, 23128, 26392], + ownerUserId: 22948, checkIns: [ { bracketIdx: null, @@ -9656,40 +4283,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 2, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 12, - mode: "RM", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 17, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 674, @@ -9697,107 +4291,15 @@ export const PADDLING_POOL_255 = () => seed: 12, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708377426, - members: [ - { - userId: 18734, - username: "Javierx9x", - discordId: "617402869280145418", - discordAvatar: "fe79aac365eb877b69aad67224a4b457", - customUrl: null, - inGameName: null, - country: "ES", - twitch: null, - createdAt: 1708377426, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23307, - username: "izowen", - discordId: "267037979820818432", - discordAvatar: "9f44aeb40515409565f2eb7c783a76e7", - customUrl: null, - inGameName: "い izoweN#2592", - country: "ES", - twitch: null, - createdAt: 1708377436, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28851, - username: "Aprhodite", - discordId: "688872021526052936", - discordAvatar: "aaa52a048b58dc706b5d88d09d51b1c5", - customUrl: "aprhodite", - inGameName: "Aprhodite#2749", - country: "ES", - twitch: null, - createdAt: 1708377438, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27108, - username: "NEOmegaX", - discordId: "482200040685830154", - discordAvatar: "92b52d3fdb574d385e88701f16cb424f", - customUrl: null, - inGameName: "い Neomegax#2245", - country: "ES", - twitch: null, - createdAt: 1708377441, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23820, - username: "♱ seb ♱", - discordId: "863787863589650472", - discordAvatar: "a_9cb301e90d936f5bfaf4af4769b04c92", - customUrl: "seb", - inGameName: "200FULLBOX#1297", - country: "ES", - twitch: null, - createdAt: 1708441387, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [18734, 23307, 28851, 27108, 23820], + ownerUserId: 18734, checkIns: [ { bracketIdx: null, @@ -9810,164 +4312,21 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 20, - mode: "SZ", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 14, - mode: "RM", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 677, name: "4Ever", seed: 13, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708448289, - members: [ - { - userId: 30582, - username: "Bull4Ever", - discordId: "353639699237175307", - discordAvatar: "6dba3834f111ffb94af9924fe4f0f2a5", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1708448289, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1740, - username: "✰𝕋𝕚𝕟𝕖✰", - discordId: "436919166679777280", - discordAvatar: "9f846a3e3836541927b9c39496f8d6a5", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1708448337, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3930, - username: "Yushi4Ever", - discordId: "268425076221804554", - discordAvatar: "5215a068eedef51de0b81b2e7f9541fb", - customUrl: null, - inGameName: "4 γµshi~#2216", - country: "DE", - twitch: null, - createdAt: 1708448389, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29321, - username: "Devil~", - discordId: "1115299092764033106", - discordAvatar: "7031e5090156c45e06748db4f2f6ab3e", - customUrl: null, - inGameName: "4 Devil~#1653", - country: "DE", - twitch: null, - createdAt: 1708448483, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29433, - username: "Bandito", - discordId: "788856864807845948", - discordAvatar: "5ad1d0408b4a760a1a567efa38641f4b", - customUrl: "bandito", - inGameName: null, - country: "EE", - twitch: null, - createdAt: 1708529130, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5368, - username: "Dismaqe", - discordId: "643538243396042868", - discordAvatar: "55ed273ca147c10ae1dd12dc88f17d39", - customUrl: "dismaqe", - inGameName: null, - country: "EE", - twitch: null, - createdAt: 1708529242, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [30582, 1740, 3930, 29321, 29433, 5368], + ownerUserId: 30582, checkIns: [ { bracketIdx: null, @@ -9980,40 +4339,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 713, @@ -10021,89 +4347,15 @@ export const PADDLING_POOL_255 = () => seed: 14, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708532602, - members: [ - { - userId: 25400, - username: "Espace", - discordId: "264152597877882890", - discordAvatar: "d3b61683854a9746b88ee7ba7dcb05ba", - customUrl: null, - inGameName: "Space#0329", - country: "ES", - twitch: null, - createdAt: 1708532602, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15346, - username: "Alexri", - discordId: "311182672217112586", - discordAvatar: "f86bd2fb989200f41da2efcc7ca47b61", - customUrl: "alerri", - inGameName: "Alexri#5508", - country: "ES", - twitch: null, - createdAt: 1708532608, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13296, - username: "Akygos", - discordId: "344256410382630924", - discordAvatar: "a6d63f095307a3324d582bb6f68d876d", - customUrl: "akygos", - inGameName: "Akygos#2217", - country: "ES", - twitch: null, - createdAt: 1708532611, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13832, - username: "rdvg", - discordId: "213628539197587456", - discordAvatar: "aa5d2f0442a117f6c0f177322f73e58d", - customUrl: "ruben", - inGameName: null, - country: null, - twitch: null, - createdAt: 1708532829, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25400, 15346, 13296, 13832], + ownerUserId: 25400, checkIns: [ { bracketIdx: null, @@ -10116,40 +4368,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 719, @@ -10157,107 +4376,15 @@ export const PADDLING_POOL_255 = () => seed: 15, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708535205, - members: [ - { - userId: 24585, - username: "AGATE", - discordId: "555795481914245120", - discordAvatar: "6c934620be2d75f95542278212d58b31", - customUrl: "agatespl", - inGameName: "AGATE#1417", - country: "NG", - twitch: null, - createdAt: 1708535205, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30449, - username: "xιиσ", - discordId: "1126541740560617472", - discordAvatar: "a86a01e74ae443c35478882f6a7c230a", - customUrl: "xino", - inGameName: "XINOBI!#2889", - country: "SN", - twitch: null, - createdAt: 1708535233, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28441, - username: "™Peli", - discordId: "1114699733236199454", - discordAvatar: "b1ecf87f69fa21e3339a70bce9d8ceab", - customUrl: "peli", - inGameName: "™Peli#1223", - country: "DE", - twitch: null, - createdAt: 1708535987, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12619, - username: "Gabe", - discordId: "917590115340144721", - discordAvatar: "dab6aac9c828198d5dd93252ec8728b4", - customUrl: "gaberainery", - inGameName: "Gabe#1867", - country: "US", - twitch: null, - createdAt: 1708536053, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31131, - username: "Benx", - discordId: "686258686116888605", - discordAvatar: "f1b3c4a737fcb4fde19882e74e4cfdca", - customUrl: "benx", - inGameName: "Benxium#3215", - country: null, - twitch: null, - createdAt: 1708538642, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [24585, 30449, 28441, 12619, 31131], + ownerUserId: 24585, checkIns: [ { bracketIdx: null, @@ -10270,40 +4397,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 702, @@ -10311,89 +4405,15 @@ export const PADDLING_POOL_255 = () => seed: 16, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708515945, - members: [ - { - userId: 6508, - username: "Necrew", - discordId: "395302135501291523", - discordAvatar: "3d48d7480b9877c2aa88c1e2da57a331", - customUrl: "necrew", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1708515945, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 418, - username: "Benjix", - discordId: "489290081631469588", - discordAvatar: "1ab563e96b2fdab001434fb518973aaf", - customUrl: null, - inGameName: null, - country: "DE", - twitch: null, - createdAt: 1708515949, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23858, - username: "Agl", - discordId: "925886127532019842", - discordAvatar: "13b1bf6dd29698f22630f717b115e74b", - customUrl: "angeel", - inGameName: "May ナー#3235", - country: "FR", - twitch: null, - createdAt: 1708515954, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28662, - username: "Armand", - discordId: "1048695593897300102", - discordAvatar: "7b91055b6c6b197ef10640239aa5bbdb", - customUrl: null, - inGameName: "Gb Armand #1593", - country: "FR", - twitch: null, - createdAt: 1708536412, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [6508, 418, 23858, 28662], + ownerUserId: 6508, checkIns: [ { bracketIdx: null, @@ -10406,40 +4426,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 8, - mode: "RM", - }, - { - stageId: 14, - mode: "RM", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 14, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 678, @@ -10447,89 +4434,15 @@ export const PADDLING_POOL_255 = () => seed: 17, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708453334, - members: [ - { - userId: 12351, - username: "Zeke", - discordId: "673128852318453760", - discordAvatar: "525cd8eca595935605661fc3cc206888", - customUrl: null, - inGameName: "ラブ Zeke#1927", - country: "ES", - twitch: null, - createdAt: 1708453334, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5072, - username: "Lazyice", - discordId: "285120152645795840", - discordAvatar: "4bd7f705d2f6ac057d05a51a9e1d7e8d", - customUrl: "lacyice", - inGameName: "Lacyice#2603", - country: "SE", - twitch: null, - createdAt: 1708453338, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13997, - username: "Kenn", - discordId: "979797478964621392", - discordAvatar: "3421b319d2505c9306c9b0d3be991c7f", - customUrl: null, - inGameName: null, - country: "GB", - twitch: null, - createdAt: 1708453341, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7735, - username: "?Ayhm", - discordId: "353973462269952020", - discordAvatar: "249ec257786e659a9cec833e3cbf204b", - customUrl: "rrayhm", - inGameName: "tax evader#2461", - country: "FI", - twitch: null, - createdAt: 1708453343, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [12351, 5072, 13997, 7735], + ownerUserId: 12351, checkIns: [ { bracketIdx: null, @@ -10542,146 +4455,21 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 14, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 10, - mode: "CB", - }, - { - stageId: 2, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 707, name: "Chaos Control", seed: 18, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708522730, - members: [ - { - userId: 11017, - username: "Hyperstar", - discordId: "343368716303728641", - discordAvatar: "c1771c53f4c7e60e1d8d5858521fca71", - customUrl: "hyperstar", - inGameName: "▼* Hyper☆#1744", - country: "GB", - twitch: null, - createdAt: 1708522730, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7270, - username: "Yolorf", - discordId: "198084438821699584", - discordAvatar: "370b04f8f4b60cce3b14111be7076a8f", - customUrl: null, - inGameName: null, - country: "PT", - twitch: null, - createdAt: 1708522740, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 18703, - username: "salty", - discordId: "231739084211486720", - discordAvatar: "d957c9239464fa742ba1bf9ff18e167b", - customUrl: "buffheavy", - inGameName: "salty#2163", - country: "GB", - twitch: null, - createdAt: 1708522745, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27578, - username: "Slasher", - discordId: "709380815657631755", - discordAvatar: "cedff9867bcedc7187a0e4e9a078e1d1", - customUrl: null, - inGameName: "Slasher#1494", - country: "BE", - twitch: null, - createdAt: 1708522748, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8715, - username: "yaga .", - discordId: "298009085561929728", - discordAvatar: "3390b7f6b50065c4464e8548ea61fd1c", - customUrl: "yaga", - inGameName: "▼* yaga . #3291", - country: null, - twitch: null, - createdAt: 1708522751, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11017, 7270, 18703, 27578, 8715], + ownerUserId: 11017, checkIns: [ { bracketIdx: null, @@ -10694,40 +4482,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 673, @@ -10735,107 +4490,15 @@ export const PADDLING_POOL_255 = () => seed: 19, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708375443, - members: [ - { - userId: 15526, - username: "Enamel", - discordId: "636691044381097989", - discordAvatar: "dbff72fffb6da0fbb56a03f256978dbb", - customUrl: "enamel", - inGameName: "Enamel#2070", - country: "AT", - twitch: null, - createdAt: 1708375443, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27686, - username: "Pollymuff", - discordId: "742834414970470511", - discordAvatar: "e211ddc3de7371229510b279d556558b", - customUrl: null, - inGameName: "[DI] Polly#1095", - country: "NO", - twitch: null, - createdAt: 1708375472, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10841, - username: "eider_pancake", - discordId: "714662908037955635", - discordAvatar: "b913cbe960ab6e09fb9894a04711a520", - customUrl: "eider", - inGameName: "Eider :3#2363", - country: "MX", - twitch: null, - createdAt: 1708459362, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23784, - username: "SFNTR", - discordId: "660093934818820098", - discordAvatar: "0cfb108d0731ca2fb4d066af1469fddd", - customUrl: "sfntr", - inGameName: "SFNTR#1928", - country: "MA", - twitch: null, - createdAt: 1708524557, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9342, - username: "Acing", - discordId: "342369454719631361", - discordAvatar: "553b2102206ad5eaec40210460e057a0", - customUrl: "acing", - inGameName: "∴§∵ Acing#2148", - country: "GB", - twitch: null, - createdAt: 1708535255, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [15526, 27686, 10841, 23784, 9342], + ownerUserId: 15526, checkIns: [ { bracketIdx: null, @@ -10848,40 +4511,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 8, - mode: "RM", - }, - { - stageId: 10, - mode: "RM", - }, - { - stageId: 14, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 714, @@ -10889,89 +4519,15 @@ export const PADDLING_POOL_255 = () => seed: 20, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708532665, - members: [ - { - userId: 6870, - username: "~シルウ~", - discordId: "827177277518512178", - discordAvatar: "1a989fbc554eba4354531849fb49c719", - customUrl: "shiruu_", - inGameName: "-シルウ-#2124", - country: "DE", - twitch: null, - createdAt: 1708532665, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29904, - username: "neko♪", - discordId: "1126172942041104488", - discordAvatar: "531004d57b6ff021415a39b509c1f266", - customUrl: null, - inGameName: "ねこ#12226", - country: "DE", - twitch: null, - createdAt: 1708532693, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11506, - username: "7fox", - discordId: "754406516244873327", - discordAvatar: null, - customUrl: null, - inGameName: null, - country: "DE", - twitch: null, - createdAt: 1708533020, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32328, - username: "MoO「Wolfi」", - discordId: "945675731302744074", - discordAvatar: "7463001542954fce3606de4bd9962710", - customUrl: "wolfinium", - inGameName: "moo Wolfi#6655", - country: "DE", - twitch: null, - createdAt: 1708534559, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [6870, 29904, 11506, 32328], + ownerUserId: 6870, checkIns: [ { bracketIdx: null, @@ -10989,40 +4545,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708543301, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 10, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 672, @@ -11030,107 +4553,15 @@ export const PADDLING_POOL_255 = () => seed: 21, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708364254, - members: [ - { - userId: 3929, - username: "Jana", - discordId: "166247465878683649", - discordAvatar: "6f9bc247a909de72b9746dbe4cf364a6", - customUrl: null, - inGameName: null, - country: "DE", - twitch: null, - createdAt: 1708364254, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2137, - username: "lookitslu", - discordId: "269943589646106626", - discordAvatar: "977b0d7f9eeacde2443001128ae6ee50", - customUrl: null, - inGameName: "lookitslu#9311", - country: "DE", - twitch: null, - createdAt: 1708364259, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10883, - username: "SkyEnd", - discordId: "462570900953235456", - discordAvatar: "b79baa277ec4f6cf0891592ba81f8d1c", - customUrl: "skyend", - inGameName: "SkyEnd <3#1382", - country: "DE", - twitch: null, - createdAt: 1708364262, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27664, - username: "Spheonix", - discordId: "323497340977676299", - discordAvatar: "4b1ed8e2d90a3d455a1fed8221feb895", - customUrl: "spheonix", - inGameName: "$ρhηiχ▽LOS#3326", - country: "DE", - twitch: null, - createdAt: 1708364266, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 342, - username: "Sander", - discordId: "447460880704077825", - discordAvatar: "9d864b31ecb3c0d334f4a7fef5df1a8d", - customUrl: "sakeo", - inGameName: "something with sakeo#9999", - country: "NL", - twitch: null, - createdAt: 1708536943, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3929, 2137, 10883, 27664, 342], + ownerUserId: 3929, checkIns: [ { bracketIdx: null, @@ -11148,40 +4579,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708543244, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 7, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 8, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 6, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 695, @@ -11189,107 +4587,15 @@ export const PADDLING_POOL_255 = () => seed: 22, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708464101, - members: [ - { - userId: 8169, - username: "Coffee pls ツ", - discordId: "229221926101319681", - discordAvatar: "33680a42a18dda961d7abd0b74921950", - customUrl: "equira", - inGameName: "Equira~#1561", - country: "NL", - twitch: null, - createdAt: 1708464101, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2535, - username: "Neema Dreamer", - discordId: "255746793965355032", - discordAvatar: "ce9a49a8ed52e98c7f4ba85e000eaef7", - customUrl: "neemadreamer", - inGameName: "★Neema★#2702", - country: "GB", - twitch: null, - createdAt: 1708464106, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2670, - username: "Horshio", - discordId: "194751580225011713", - discordAvatar: "6a8a9c4ad10fba84d3da24c2e071b851", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1708464107, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6202, - username: "season", - discordId: "346324686717845505", - discordAvatar: "e215fdca24c8e625ec9457b31a68aa5c", - customUrl: "season", - inGameName: "season#2514", - country: "GB", - twitch: null, - createdAt: 1708464108, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9547, - username: "HarryXYZ", - discordId: "283557982078369792", - discordAvatar: "69f0f67ea1ffacd5f8f8b46871fb88da", - customUrl: "harryxyz", - inGameName: "MLP★Harry#1007", - country: "GB", - twitch: null, - createdAt: 1708464111, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [8169, 2535, 2670, 6202, 9547], + ownerUserId: 8169, checkIns: [ { bracketIdx: null, @@ -11307,146 +4613,21 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708542803, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 17, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 705, name: "Flutter Mane Fanclub", seed: 23, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708520249, - members: [ - { - userId: 3060, - username: "smmuiii", - discordId: "707552906701963395", - discordAvatar: "7887729ebb89e911ec55bab7db90594f", - customUrl: "smmuiii", - inGameName: "ハバタクカミ#8074", - country: "DE", - twitch: null, - createdAt: 1708520249, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5844, - username: "Louis 🦈", - discordId: "595595906418606091", - discordAvatar: "ac727203d246b9373b6e93fd957e9446", - customUrl: null, - inGameName: "みやむら#2759", - country: "DE", - twitch: null, - createdAt: 1708521940, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9654, - username: "Draco200", - discordId: "756604643659743282", - discordAvatar: "94742c55a1976a62723f11a6b25617d6", - customUrl: null, - inGameName: null, - country: "DE", - twitch: null, - createdAt: 1708526825, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 461, - username: "NeXus", - discordId: "403537631297667072", - discordAvatar: "2f6d27dbe084610be3db6b9227a34b39", - customUrl: "nexus_spl", - inGameName: "Neχus♪#9314", - country: "DE", - twitch: null, - createdAt: 1708526832, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10819, - username: "patツ", - discordId: "411620250027556897", - discordAvatar: "07cf1148391af8d55a003bf2a42f3761", - customUrl: "patfat", - inGameName: "αм »patツ#8728", - country: "DE", - twitch: null, - createdAt: 1708527650, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [3060, 5844, 9654, 461, 10819], + ownerUserId: 3060, checkIns: [ { bracketIdx: null, @@ -11459,40 +4640,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "RM", - }, - { - stageId: 9, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 720, @@ -11500,89 +4648,15 @@ export const PADDLING_POOL_255 = () => seed: 24, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708535804, - members: [ - { - userId: 2302, - username: "Mop", - discordId: "909058148713791529", - discordAvatar: "3b1192a04ea389af320229c7ef13169a", - customUrl: null, - inGameName: "Mop#3970", - country: "GB", - twitch: null, - createdAt: 1708535804, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9874, - username: "Pallo", - discordId: "503861705395273738", - discordAvatar: "2771f299e17bc4a09be48b6cce4f8525", - customUrl: "pallo_spl", - inGameName: "Pallo♪#1547", - country: "DK", - twitch: null, - createdAt: 1708535807, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10992, - username: "Endo", - discordId: "852932015187558410", - discordAvatar: "bb4d9324674a0c84c50417ecdeef52ca", - customUrl: null, - inGameName: "¥Endo#1758", - country: "DE", - twitch: null, - createdAt: 1708535808, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22434, - username: "Dark Aura", - discordId: "187297100827066371", - discordAvatar: "983160d2dfaae97e031fe38f148c88c2", - customUrl: null, - inGameName: "★Dark☆#2415", - country: null, - twitch: null, - createdAt: 1708535811, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [2302, 9874, 10992, 22434], + ownerUserId: 2302, checkIns: [ { bracketIdx: null, @@ -11595,40 +4669,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 10, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 18, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 721, @@ -11636,107 +4677,15 @@ export const PADDLING_POOL_255 = () => seed: 25, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708535891, - members: [ - { - userId: 8868, - username: "Ati", - discordId: "704055690494345306", - discordAvatar: "317047590635110c550c573979844b9f", - customUrl: "ati", - inGameName: "Ati#1543", - country: "TR", - twitch: null, - createdAt: 1708535891, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11625, - username: "Fate/Alex", - discordId: "494482988407586827", - discordAvatar: "756a692ceeb6e49462dbfcdf93eb47c0", - customUrl: null, - inGameName: "AliDerBoss#4018", - country: "DE", - twitch: null, - createdAt: 1708535898, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22452, - username: "S̒̒̎B̾͊̾C̶ͤhrỉ̊ͫs̷͢͢_穀物", - discordId: "441206580931854336", - discordAvatar: "0afea25d9e0c6b59ff51be808e9f38bd", - customUrl: null, - inGameName: "Chris#1351", - country: "DE", - twitch: null, - createdAt: 1708535907, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12642, - username: "Zarx", - discordId: "832968391420936202", - discordAvatar: "06cf56e9affb8e0beca82ee4a75a7659", - customUrl: null, - inGameName: "Obēd1ēnt#3231", - country: null, - twitch: null, - createdAt: 1708535910, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11716, - username: "y4ss1n3", - discordId: "279993590141419520", - discordAvatar: "90e1d2bc72a05d42234cf615cbbefe28", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1708535940, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [8868, 11625, 22452, 12642, 11716], + ownerUserId: 8868, checkIns: [ { bracketIdx: null, @@ -11749,40 +4698,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 10, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 706, @@ -11790,107 +4706,15 @@ export const PADDLING_POOL_255 = () => seed: 26, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708521749, - members: [ - { - userId: 7007, - username: "Sal", - discordId: "488449820600827946", - discordAvatar: "52d7651b62846a819d6fb1346b414bda", - customUrl: null, - inGameName: "[DI] Tiger#1131", - country: "GB", - twitch: null, - createdAt: 1708521749, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7440, - username: "mooj", - discordId: "545739590129025025", - discordAvatar: "b62848ee1f441b528fbf96334ac68cfc", - customUrl: "mooj", - inGameName: "[DI] mooj#1498", - country: "GB", - twitch: null, - createdAt: 1708521759, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26665, - username: "tame", - discordId: "648555047629619221", - discordAvatar: "d4ee0a76c2a625321a7f375f84dcb075", - customUrl: null, - inGameName: "[DI] tame#2126", - country: "GB", - twitch: null, - createdAt: 1708521763, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9719, - username: "Scepidilionz", - discordId: "184478601171828737", - discordAvatar: "867030e3d679357ef3161edc79292bc0", - customUrl: "scepidilionz", - inGameName: null, - country: null, - twitch: null, - createdAt: 1708521766, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30220, - username: "AfroKing", - discordId: "1012418312069714021", - discordAvatar: "4b453d9af53e04df052ae86a98b026d3", - customUrl: "afroking", - inGameName: "[DI] Afro#1667", - country: "GB", - twitch: null, - createdAt: 1708521774, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [7007, 7440, 26665, 9719, 30220], + ownerUserId: 7007, checkIns: [ { bracketIdx: null, @@ -11903,40 +4727,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 21, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 10, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 723, @@ -11944,89 +4735,15 @@ export const PADDLING_POOL_255 = () => seed: 27, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708536584, - members: [ - { - userId: 2589, - username: "proto", - discordId: "476085870609432596", - discordAvatar: "8b178b2abe4495c98e6c34ee6f8a5a02", - customUrl: "protoh3d", - inGameName: "proto#2463", - country: "IT", - twitch: null, - createdAt: 1708536584, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28745, - username: "Dragón", - discordId: "763474938346209283", - discordAvatar: "e1493e396a8ea1e1f6ca01d99fdb4682", - customUrl: null, - inGameName: "Dragon#1120", - country: "IT", - twitch: null, - createdAt: 1708536597, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32688, - username: "OhItsAna19", - discordId: "549632105320153098", - discordAvatar: "d22a437a63f6fdc07a0f37d93cc79e39", - customUrl: "ohitsana19", - inGameName: "сн;An An#4207", - country: "CH", - twitch: null, - createdAt: 1708536705, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26792, - username: "bee-a", - discordId: "591660736405700628", - discordAvatar: "7d93d52e63b2dcd16bf904a61860dcb5", - customUrl: "byabyabya", - inGameName: "{} bee-a #3122", - country: "ES", - twitch: null, - createdAt: 1708537202, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [2589, 28745, 32688, 26792], + ownerUserId: 2589, checkIns: [ { bracketIdx: null, @@ -12039,40 +4756,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 7, - mode: "CB", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 9, - mode: "RM", - }, - { - stageId: 18, - mode: "TC", - }, - { - stageId: 21, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 725, @@ -12080,124 +4764,15 @@ export const PADDLING_POOL_255 = () => seed: 28, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708537772, - members: [ - { - userId: 6935, - username: "Splatos", - discordId: "375315735875944470", - discordAvatar: "76b007d6f57b47b683e78dfd100832a7", - customUrl: "splatos", - inGameName: "仝Splatos仝#1932", - country: "FR", - twitch: null, - createdAt: 1708537772, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5528, - username: "Vapor.", - discordId: "443815041804795905", - discordAvatar: "373f75beccdb1244d8de08767406c335", - customUrl: null, - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1708537777, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12358, - username: "Inkurey", - discordId: "534075513627607051", - discordAvatar: "202ca6b342198fb7d23a975ab7537aaa", - customUrl: "inkurey22", - inGameName: "の{Curry#4218", - country: "FR", - twitch: null, - createdAt: 1708537780, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - }, - { - userId: 19002, - username: "Alonika", - discordId: "768156816231497748", - discordAvatar: "50da7f60e55e05a725642f5c2145da5b", - customUrl: "alonika", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1708537783, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 306, - username: "still'", - discordId: "851482790830800956", - discordAvatar: "6392a01c714770703fec6444c67c6b65", - customUrl: null, - inGameName: null, - country: "PS", - plusTier: 3, - twitch: null, - createdAt: 1708538257, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8243, - username: "Loωαsıs'", - discordId: "500261010712821761", - discordAvatar: "e59763ffb97a9f90b2afa6c27c290ae5", - customUrl: null, - inGameName: "仝Lowasis ♪#3146", - country: "FR", - twitch: null, - createdAt: 1708543316, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [6935, 5528, 12358, 19002, 306, 8243], + ownerUserId: 6935, checkIns: [ { bracketIdx: null, @@ -12215,40 +4790,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708543321, }, ], - mapPool: [ - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 8, - mode: "RM", - }, - { - stageId: 14, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 3, - mode: "TC", - }, - ], + hasMapPool: true, customAvatarUrl: null, }, { @@ -12257,107 +4799,15 @@ export const PADDLING_POOL_255 = () => seed: 29, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708379916, - members: [ - { - userId: 25242, - username: "Cr◎nik", - discordId: "420485156839882754", - discordAvatar: "2ac00945ef7c177dbaccb9b189503330", - customUrl: "cronik", - inGameName: "CrⓄnik#1845", - country: "IT", - twitch: null, - createdAt: 1708379916, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13736, - username: "carota", - discordId: "772188607804473409", - discordAvatar: "9b145d48e06e9743b6ebe1d01cbbe592", - customUrl: null, - inGameName: "Yp carota #1253", - country: "IT", - twitch: null, - createdAt: 1708379926, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27960, - username: "Anca", - discordId: "751507202413428799", - discordAvatar: "784c9e9978b664ddcb3bd2979e4869c7", - customUrl: null, - inGameName: "Anca ðx#6380", - country: "GB", - twitch: null, - createdAt: 1708379930, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25814, - username: "WaffleUser", - discordId: "394115188682653696", - discordAvatar: "d1f26ba868fe115394607a4bf85ff1ab", - customUrl: "waffleuser", - inGameName: "ソρ くkuriり#2152", - country: "NL", - twitch: null, - createdAt: 1708379935, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31311, - username: "Al3_", - discordId: "606522166405627905", - discordAvatar: "97b80a62cd22c00ec62ba3fe8ec025b4", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1708379937, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25242, 13736, 27960, 25814, 31311], + ownerUserId: 25242, checkIns: [ { bracketIdx: null, @@ -12370,40 +4820,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 704, @@ -12411,107 +4828,15 @@ export const PADDLING_POOL_255 = () => seed: 30, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708519753, - members: [ - { - userId: 12526, - username: "GoldA", - discordId: "706956975564652614", - discordAvatar: "5d78f7dc7de2bf4bc7d15063c12277e9", - customUrl: null, - inGameName: "2.GoldA#2405", - country: "DE", - twitch: null, - createdAt: 1708519753, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24441, - username: "flemmi", - discordId: "626070366338416650", - discordAvatar: "3a3a5b895f07ba16af5c406b236a6b2d", - customUrl: "flemmi", - inGameName: "2.flemmi#3395", - country: "DE", - twitch: null, - createdAt: 1708519764, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28629, - username: "Wolfi.Jr", - discordId: "1093481853375217724", - discordAvatar: "1660f3d22232d967d37dae2206f660c3", - customUrl: null, - inGameName: "2.WolfiJr#1423", - country: "DE", - twitch: null, - createdAt: 1708519774, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28822, - username: "piiiro", - discordId: "715504166272893009", - discordAvatar: "1a8315559210c961645aeb1742a247be", - customUrl: null, - inGameName: "2.piiiro?!#1274", - country: "DE", - twitch: null, - createdAt: 1708519786, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9211, - username: "Ninjar04", - discordId: "518016631973085185", - discordAvatar: "eb2872aa07883028d602ca90dbe76ac8", - customUrl: "ninjar04", - inGameName: "Ninjar04#1774", - country: "DE", - twitch: null, - createdAt: 1708519793, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [12526, 24441, 28629, 28822, 9211], + ownerUserId: 12526, checkIns: [ { bracketIdx: null, @@ -12529,40 +4854,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708543391, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 14, - mode: "SZ", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 14, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 17, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 717, @@ -12570,107 +4862,15 @@ export const PADDLING_POOL_255 = () => seed: 31, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708534312, - members: [ - { - userId: 21989, - username: "Kyopon", - discordId: "689451152382754898", - discordAvatar: "a_a59b820f10bab0a7bfb9cd9784793d05", - customUrl: "kyopon", - inGameName: "Kyopon#2269", - country: "FR", - twitch: null, - createdAt: 1708534312, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30234, - username: "Skyban", - discordId: "437179975964164107", - discordAvatar: "27990d2e56e763e2c5daf392c89782c2", - customUrl: "skyban", - inGameName: "Skyban#1919", - country: "FR", - twitch: null, - createdAt: 1708534331, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35118, - username: "Slord.", - discordId: "209358928692248576", - discordAvatar: "8c4b2aba195e3de5bcc7cb84e3df7ab9", - customUrl: null, - inGameName: "Slord.#2406", - country: "FR", - twitch: null, - createdAt: 1708534335, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 32156, - username: "black-out", - discordId: "683002889072934930", - discordAvatar: "e53c348ea2a5c59399ba695c63dfb455", - customUrl: null, - inGameName: null, - country: null, - twitch: null, - createdAt: 1708534343, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30751, - username: "Katchan 愛", - discordId: "302391802445692929", - discordAvatar: "e3ac44b439a5cd49d94d55e706743287", - customUrl: "coolkidnextdoor", - inGameName: "Katchanえ#2466", - country: "FR", - twitch: null, - createdAt: 1708536150, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [21989, 30234, 35118, 32156, 30751], + ownerUserId: 21989, checkIns: [ { bracketIdx: null, @@ -12688,128 +4888,21 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708543318, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 10, - mode: "CB", - }, - { - stageId: 15, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 16, - mode: "TC", - }, - { - stageId: 19, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 712, name: "Revenge ", seed: 32, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708531929, - members: [ - { - userId: 4807, - username: "capri", - discordId: "705369120446873630", - discordAvatar: "74b18cdff163cd412d9cad252b63a77d", - customUrl: "capri", - inGameName: "capri :')#1930", - country: "AT", - twitch: null, - createdAt: 1708531929, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 16634, - username: "RJ", - discordId: "803729996359008309", - discordAvatar: "a4c5736ca6c5658428c3c3322aff3859", - customUrl: "r", - inGameName: "2.RJ#1600", - country: "DE", - twitch: null, - createdAt: 1708531954, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2392, - username: "Senator", - discordId: "245229964180455424", - discordAvatar: "770b2c6d4f923cba3757405d368fdf4e", - customUrl: "senator", - inGameName: "sapnu puas#3233", - country: "DE", - twitch: null, - createdAt: 1708531966, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26726, - username: "Jokufe 8", - discordId: "893910083937914951", - discordAvatar: "2c67b55f22972742a5a8226c364faa15", - customUrl: null, - inGameName: null, - country: "AT", - twitch: null, - createdAt: 1708534592, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [4807, 16634, 2392, 26726], + ownerUserId: 4807, checkIns: [ { bracketIdx: null, @@ -12822,40 +4915,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 4, - mode: "SZ", - }, - { - stageId: 8, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 10, - mode: "RM", - }, - { - stageId: 20, - mode: "RM", - }, - { - stageId: 1, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 699, @@ -12863,89 +4923,15 @@ export const PADDLING_POOL_255 = () => seed: 33, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708477155, - members: [ - { - userId: 25954, - username: "kym", - discordId: "406948482440626206", - discordAvatar: "aceebbbe00c2c4cac1c1953db42bb63c", - customUrl: "kym", - inGameName: "CHAEWON □#8872", - country: "PH", - twitch: null, - createdAt: 1708477155, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14973, - username: "Bazin", - discordId: "350052506094534659", - discordAvatar: "fad4ef569ded117eba847ed6900a6c03", - customUrl: "bazin", - inGameName: "Bazin#1533", - country: "US", - twitch: null, - createdAt: 1708477159, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 17137, - username: "Steeze", - discordId: "658449359469412366", - discordAvatar: "10b2e49c19505bed6598f70eb6665f50", - customUrl: "steeze", - inGameName: "YUNJIN <3#3252", - country: "MY", - twitch: null, - createdAt: 1708477162, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8391, - username: "onion", - discordId: "383278501484167169", - discordAvatar: "1e574230c3252c38a65fd3609f4571b2", - customUrl: "onionzura", - inGameName: "kohammy <3#1762", - country: null, - twitch: null, - createdAt: 1708482782, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25954, 14973, 17137, 8391], + ownerUserId: 25954, checkIns: [ { bracketIdx: null, @@ -12963,40 +4949,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708542789, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 6, - mode: "CB", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 14, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 710, @@ -13004,143 +4957,15 @@ export const PADDLING_POOL_255 = () => seed: 34, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708531564, - members: [ - { - userId: 18969, - username: "I love yuki~ really much ❤❤❤", - discordId: "399217428627980290", - discordAvatar: "c1f174cdc538a2c2adc16058b1586afa", - customUrl: null, - inGameName: null, - country: "KP", - twitch: null, - createdAt: 1708531564, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 17940, - username: "Mamadou des Doucettes et de Vil", - discordId: "914577436312756274", - discordAvatar: "447ed6e73227d97dc304a425f13c5f0e", - customUrl: "shiromg", - inGameName: "Shiro ツ#2933", - country: "FR", - twitch: null, - createdAt: 1708531574, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30972, - username: "Inkle", - discordId: "846484394767941712", - discordAvatar: "e9f35c6106a360e06d2d058c81a182e3", - customUrl: null, - inGameName: "Inkle#4537", - country: "FR", - twitch: null, - createdAt: 1708531640, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38902, - username: "Wavy", - discordId: "1204784498173022238", - discordAvatar: "5aa550cdbed9e55802e65ab1e838c0db", - customUrl: "thewave", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1708532419, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 29099, - username: "Kadxx", - discordId: "374929598015864832", - discordAvatar: "5a3c245778efb86f9278f235b45c1cd1", - customUrl: "kadxx", - inGameName: "ZkG Kadxx#1086", - country: "FR", - twitch: null, - createdAt: 1708533636, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26683, - username: "Solev™", - discordId: "282873289901211658", - discordAvatar: "11cdaf2e36f5b7369f2055ef1fc80237", - customUrl: "kamarade", - inGameName: "GB Solev#1587", - country: "FR", - twitch: null, - createdAt: 1708540197, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 30767, - username: "∆luka~", - discordId: "537193325921304576", - discordAvatar: "a2326f0cab16c0f3c197899ab18742b6", - customUrl: "luka", - inGameName: "∆Luka~#2385", - country: "FR", - twitch: null, - createdAt: 1708543351, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [18969, 17940, 30972, 38902, 29099, 26683, 30767], + ownerUserId: 18969, checkIns: [ { bracketIdx: null, @@ -13158,40 +4983,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708543311, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 4, - mode: "CB", - }, - { - stageId: 20, - mode: "CB", - }, - { - stageId: 7, - mode: "RM", - }, - { - stageId: 19, - mode: "RM", - }, - { - stageId: 6, - mode: "TC", - }, - { - stageId: 16, - mode: "TC", - }, - ], + hasMapPool: true, }, { id: 700, @@ -13199,125 +4991,15 @@ export const PADDLING_POOL_255 = () => seed: 35, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1708503356, - members: [ - { - userId: 18290, - username: "Rekie!", - discordId: "571634807759699969", - discordAvatar: "ed9c079168825840326447e44ee9748c", - customUrl: "rekie", - inGameName: "よ°rekie#3307", - country: "GB", - twitch: null, - createdAt: 1708503356, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15135, - username: "Shortcake", - discordId: "390952525551108099", - discordAvatar: "df44ab6a236253791e0ca4010bebf528", - customUrl: null, - inGameName: "Shortcake!#2855", - country: "GB", - twitch: null, - createdAt: 1708503369, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 31597, - username: "Tetra", - discordId: "755433873449680997", - discordAvatar: "253c816ff0adc10cf9cfb56234a70791", - customUrl: null, - inGameName: "Tetra#3027", - country: "GB", - twitch: null, - createdAt: 1708503374, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 34933, - username: "RexTheCookieWolf", - discordId: "370252717337214978", - discordAvatar: "a_26d07fb59d02a81a83aa1e34adf6337d", - customUrl: null, - inGameName: null, - country: "MT", - twitch: null, - createdAt: 1708503381, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14927, - username: "Alphiqus", - discordId: "328507050214555648", - discordAvatar: "60e1eaa91c34eb47bb08fd2a59862b7c", - customUrl: "alphiqus", - inGameName: "Alphi#1030", - country: "ES", - twitch: null, - createdAt: 1708503385, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7461, - username: "Asri", - discordId: "553653885110321192", - discordAvatar: "e4b0570178fad7b141d39e8f931ca6d3", - customUrl: "asri", - inGameName: "FBK Asri#5473", - country: "RU", - twitch: null, - createdAt: 1708503399, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [18290, 15135, 31597, 34933, 14927, 7461], + ownerUserId: 18290, checkIns: [ { bracketIdx: null, @@ -13330,40 +5012,7 @@ export const PADDLING_POOL_255 = () => checkedInAt: 1708538411, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - { - stageId: 17, - mode: "CB", - }, - { - stageId: 18, - mode: "CB", - }, - { - stageId: 0, - mode: "RM", - }, - { - stageId: 3, - mode: "RM", - }, - { - stageId: 2, - mode: "TC", - }, - { - stageId: 10, - mode: "TC", - }, - ], + hasMapPool: true, }, ], bestOfs: [ @@ -13527,24 +5176,7 @@ export const PADDLING_POOL_255 = () => mode: "TC", }, ], - participatedUsers: [ - 62, 115, 205, 222, 306, 331, 342, 418, 461, 1447, 1740, 2137, 2302, - 2392, 2414, 2589, 2670, 3060, 3161, 3400, 3929, 3930, 4061, 4234, 4275, - 4606, 4807, 5072, 5368, 5528, 5844, 6202, 6508, 6710, 6870, 6935, 7007, - 7094, 7440, 7735, 8169, 8243, 8391, 8715, 8868, 9125, 9211, 9342, 9535, - 9547, 9719, 9874, 10578, 10615, 10812, 10819, 10883, 10992, 11017, - 11151, 11506, 11517, 11593, 11625, 11627, 12351, 12358, 12526, 12619, - 12642, 12976, 13296, 13562, 13736, 13832, 13997, 14489, 14927, 14973, - 15135, 15326, 15346, 15526, 15880, 16634, 17137, 17940, 18290, 18703, - 18734, 18969, 19002, 20755, 21979, 21989, 22434, 22452, 22661, 22746, - 22948, 23128, 23307, 23746, 23784, 23858, 24441, 24585, 25242, 25400, - 25814, 25954, 26392, 26665, 26683, 26726, 26792, 27108, 27515, 27578, - 27664, 27686, 27958, 27960, 28441, 28485, 28629, 28662, 28725, 28745, - 28822, 28851, 29099, 29321, 29433, 29904, 30220, 30234, 30449, 30582, - 30751, 30972, 31131, 31311, 31358, 31597, 31690, 32156, 32328, 32579, - 32688, 34933, 35118, 35807, 38062, 38080, 38902, - ], - castStreams: [], + latestTeamIdByDuplicatedUserId: {}, }, }) as TournamentData; @@ -13553,6 +5185,7 @@ export const IN_THE_ZONE_32 = ({ hasCheckedOutTeam = false, }) => ({ + streams: [], data: { stage: [ { @@ -14745,6 +6378,20 @@ export const IN_THE_ZONE_32 = ({ }, ], }, + participatedUsers: [ + 8, 18, 32, 35, 36, 41, 48, 50, 57, 70, 76, 81, 94, 100, 104, 112, 115, + 118, 123, 124, 126, 133, 138, 141, 145, 147, 151, 164, 168, 172, 185, 202, + 206, 211, 229, 232, 233, 236, 246, 249, 252, 255, 257, 260, 272, 286, 291, + 292, 305, 319, 321, 335, 346, 372, 392, 405, 411, 439, 451, 702, 957, + 1038, 1043, 1117, 1136, 1178, 1300, 1441, 1658, 2414, 2801, 3258, 3298, + 4061, 4099, 4307, 4603, 5337, 5728, 6255, 6307, 6557, 6710, 7326, 8734, + 9064, 9125, 9367, 9674, 9718, 10192, 10200, 10293, 10592, 10812, 11010, + 11148, 11467, 11517, 11593, 12395, 12976, 13296, 13342, 13614, 14489, + 14605, 15346, 15403, 15418, 15916, 16980, 18039, 18734, 20143, 20154, + 20583, 20731, 20859, 21339, 22041, 22344, 22893, 22948, 23128, 23381, + 23820, 24705, 25400, 25423, 26392, 27108, 27958, 28191, 28482, 28725, + 28851, 34238, 35807, 37105, 38080, + ], ctx: { id: 11, parentTournamentId: null, @@ -14830,89 +6477,15 @@ export const IN_THE_ZONE_32 = ({ seed: 1, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707443313, - members: [ - { - userId: 147, - username: "bran", - discordId: "151192098962407424", - discordAvatar: "bc42e11e32ed032c45b67560326d775e", - customUrl: "bran", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707443313, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 118, - username: "bagel", - discordId: "147036636608331779", - discordAvatar: "984b7b3cd00904b3e3797b7643468572", - customUrl: "bagel", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707443316, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 133, - username: "ice", - discordId: "105390854063034368", - discordAvatar: "2ba3d62baf34c8d519eedbe1add3f797", - customUrl: null, - inGameName: null, - country: null, - plusTier: 1, - twitch: null, - createdAt: 1707443318, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 257, - username: "Zero", - discordId: "220344765240180738", - discordAvatar: "8128554c8e9cdfa6130d5deccfa0744b", - customUrl: "zero", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707443321, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [147, 118, 133, 257], + ownerUserId: 147, checkIns: [ { bracketIdx: null, @@ -14920,32 +6493,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707585473, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 9, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 548, @@ -14953,89 +6501,15 @@ export const IN_THE_ZONE_32 = ({ seed: 2, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707366405, - members: [ - { - userId: 100, - username: "Leafi", - discordId: "114889120379043843", - discordAvatar: "c1f430c7fc82dde285c4229f6b2758ad", - customUrl: "leafi", - inGameName: "777 Leafi!#7597", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707366405, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 164, - username: ".q", - discordId: "266716798945067010", - discordAvatar: "92966ce63bb148b81ffe1590a30dbb21", - customUrl: "queue", - inGameName: "waddle doo#1072", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707366408, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 138, - username: "Madness", - discordId: "383774228937179136", - discordAvatar: "b550107ef8b5403fe08da02676d12352", - customUrl: "madness", - inGameName: "777 Madnss#2382", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707366409, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 305, - username: "Jared", - discordId: "275491864344395776", - discordAvatar: "2341f664d3adf39918009cf8b5c65e32", - customUrl: null, - inGameName: "777_Jared#1926", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707366410, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [100, 164, 138, 305], + ownerUserId: 100, checkIns: [ { bracketIdx: null, @@ -15043,32 +6517,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584712, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 4, - mode: "SZ", - }, - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 11, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 499, @@ -15076,89 +6525,15 @@ export const IN_THE_ZONE_32 = ({ seed: 3, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1706912643, - members: [ - { - userId: 32, - username: "Volty", - discordId: "186543007850299393", - discordAvatar: "f975216cbb37cae5997a3d42f7801ac4", - customUrl: "volty", - inGameName: "Volty#9216", - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1706912643, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 123, - username: "Grey", - discordId: "99931397451419648", - discordAvatar: "1ac948c5af5758a1188190f6e9230ebc", - customUrl: "grey", - inGameName: "----------#2150", - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1706912648, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1043, - username: "Scar", - discordId: "129931199383601153", - discordAvatar: "538fed139b88c64dc749c5d207d35eef", - customUrl: null, - inGameName: null, - country: null, - plusTier: 1, - twitch: null, - createdAt: 1706912653, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 702, - username: "Promano", - discordId: "159393251453829120", - discordAvatar: "f0f9b96bf1463973bdda4443f8598330", - customUrl: "promano", - inGameName: "Promano#6027", - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1706912655, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [32, 123, 1043, 702], + ownerUserId: 32, checkIns: [ { bracketIdx: null, @@ -15166,32 +6541,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584440, }, ], - mapPool: [ - { - stageId: 4, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 12, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 547, @@ -15199,125 +6549,15 @@ export const IN_THE_ZONE_32 = ({ seed: 4, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707359335, - members: [ - { - userId: 11517, - username: "xenith", - discordId: "936048087791702087", - discordAvatar: "db4c8ce55ac3f516d5d8136f6eb7d1eb", - customUrl: "xenith", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707359335, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 439, - username: "y0shell", - discordId: "427160548510138383", - discordAvatar: "ef96ff9718c352e2e7417ac4279f2cc3", - customUrl: "y0shell", - inGameName: null, - country: "GB", - plusTier: 1, - twitch: null, - createdAt: 1707359339, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 81, - username: "Atomic♪", - discordId: "441232639358402560", - discordAvatar: "859aabf0d52d80823edefe31c4ead0c4", - customUrl: "atomic", - inGameName: "Atomic♪#2887", - country: "FI", - plusTier: 1, - twitch: null, - createdAt: 1707359343, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23381, - username: "Miky", - discordId: "1182980612106227742", - discordAvatar: "32e8082542ab345151808d2b8304f6c7", - customUrl: "miky_n26", - inGameName: "Miky#3366", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707425048, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26278, - username: "Tera", - discordId: "1022946467415064716", - discordAvatar: "e1c469732f174d40b961ce952d755eb3", - customUrl: null, - inGameName: null, - country: null, - plusTier: 1, - twitch: null, - createdAt: 1707425317, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 104, - username: "yusnipe", - discordId: "391583460747378701", - discordAvatar: "594cef186ac46bf36110f50f1cad893e", - customUrl: null, - inGameName: null, - country: "LU", - plusTier: 1, - twitch: null, - createdAt: 1707591637, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11517, 439, 81, 23381, 26278, 104], + ownerUserId: 11517, checkIns: [ { bracketIdx: null, @@ -15325,32 +6565,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707585966, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 507, @@ -15358,107 +6573,15 @@ export const IN_THE_ZONE_32 = ({ seed: 5, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707171426, - members: [ - { - userId: 185, - username: "phoenix", - discordId: "619566583970529314", - discordAvatar: "d68b95b004a6f29dedbc1baed6d4b9da", - customUrl: "phoenix", - inGameName: null, - country: "CH", - plusTier: 1, - twitch: null, - createdAt: 1707171426, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10293, - username: "Yū", - discordId: "769160946211880970", - discordAvatar: "1e1c2ddba7dc735347b6859a8fba1d95", - customUrl: "yu", - inGameName: null, - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1707171440, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5728, - username: "Cam", - discordId: "335859980890669056", - discordAvatar: "4de21a16c8885b2e36366560c24d2212", - customUrl: "cam", - inGameName: "かCam!#7346", - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1707171452, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35, - username: "Kiver", - discordId: "92909500100513792", - discordAvatar: "b027415c41cd5cb10ed6438509fe74e5", - customUrl: "kiver", - inGameName: null, - country: "FR", - plusTier: 1, - twitch: null, - createdAt: 1707565905, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 99, - username: "luma", - discordId: "414781435057274900", - discordAvatar: "4145bdf4de089c372454730eb47ebb00", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707585837, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [185, 10293, 5728, 35, 99], + ownerUserId: 185, checkIns: [ { bracketIdx: null, @@ -15466,32 +6589,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584938, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 546, @@ -15499,107 +6597,15 @@ export const IN_THE_ZONE_32 = ({ seed: 6, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707342696, - members: [ - { - userId: 145, - username: "Omegα", - discordId: "203704363141562368", - discordAvatar: "a3909f42dd5c4f55d6a6cce3071f28ad", - customUrl: "omegazidan", - inGameName: null, - country: null, - plusTier: 1, - twitch: null, - createdAt: 1707342696, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 48, - username: "Shadowind", - discordId: "244246880442122250", - discordAvatar: "bdc0461d833a6070b1afcdb608603099", - customUrl: "shadowind", - inGameName: "Shadowind#1007", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707342701, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 172, - username: "SSNolan", - discordId: "228235320854970369", - discordAvatar: "b31ce947f16614d6a45a0c466c380efb", - customUrl: "ssnolan", - inGameName: "SSNolan <3#3133", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707342704, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 126, - username: "Basil", - discordId: "513869802947739679", - discordAvatar: "971db7830177690ad1dc2fa3c9ee8fed", - customUrl: "basil", - inGameName: "Basil#1734", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707342707, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 160, - username: "Chara", - discordId: "143918846535925761", - discordAvatar: "f1bd9c58cbdf92d3c30ec580e794c861", - customUrl: "chara", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707342777, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [145, 48, 172, 126, 160], + ownerUserId: 145, checkIns: [ { bracketIdx: null, @@ -15607,32 +6613,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707585077, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 4, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 591, @@ -15640,125 +6621,15 @@ export const IN_THE_ZONE_32 = ({ seed: 7, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707513942, - members: [ - { - userId: 22893, - username: "Lucina❤", - discordId: "214062111658213376", - discordAvatar: "efcd81e069d433ec0bae6b3576b2371f", - customUrl: null, - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707513942, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 957, - username: "CMO♪", - discordId: "209858231584030721", - discordAvatar: "b6dee5515cb9dfee7aac85d2af5186f8", - customUrl: "cmo", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707513952, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25423, - username: "blah blah BIG DEAL", - discordId: "263131403535908868", - discordAvatar: "69d83fef8f248451518dae8cd08a667f", - customUrl: null, - inGameName: null, - country: null, - plusTier: 2, - twitch: null, - createdAt: 1707513955, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20583, - username: "sunguraa", - discordId: "394204866089713666", - discordAvatar: "9368e9d4e16058e17be92195940a802c", - customUrl: "sungura", - inGameName: null, - country: "KE", - plusTier: 1, - twitch: null, - createdAt: 1707513958, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1105, - username: "cleff", - discordId: "212301688822824960", - discordAvatar: "90e05582eb7aaedfd32a0d045e1ff4ca", - customUrl: null, - inGameName: "cleffapig#5501", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707513961, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14, - username: "Mecha", - discordId: "122759401613426689", - discordAvatar: "8197d7a3c108b4e3aa3689af2fb82711", - customUrl: "httpstwittercommochamecha2", - inGameName: null, - country: "CA", - plusTier: 1, - twitch: null, - createdAt: 1707513965, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22893, 957, 25423, 20583, 1105, 14], + ownerUserId: 22893, checkIns: [ { bracketIdx: null, @@ -15766,32 +6637,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707585480, }, ], - mapPool: [ - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 20, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 592, @@ -15799,125 +6645,15 @@ export const IN_THE_ZONE_32 = ({ seed: 8, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707526815, - members: [ - { - userId: 249, - username: "Redmatt", - discordId: "313407177236807680", - discordAvatar: "99a057174d38562c8246248d6d24f7a9", - customUrl: null, - inGameName: null, - country: null, - plusTier: 1, - twitch: null, - createdAt: 1707526815, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 451, - username: "Half", - discordId: "468596581357060097", - discordAvatar: "7ea175abbcf1f73c2d153ed01d38b7f3", - customUrl: null, - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707527094, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 141, - username: "Elis", - discordId: "413497313626030110", - discordAvatar: "52b55ee940d060266adf285ae70f25af", - customUrl: null, - inGameName: null, - country: null, - plusTier: 1, - twitch: null, - createdAt: 1707527181, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 260, - username: "kai", - discordId: "138728444073738240", - discordAvatar: null, - customUrl: "kai", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707529282, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 202, - username: "sam", - discordId: "672934395891417098", - discordAvatar: "5afe64ba6bce4aed2c1aef3aa0bd46da", - customUrl: "sam", - inGameName: null, - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707534529, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 276, - username: "Trizy", - discordId: "283645464572723201", - discordAvatar: "5362a37efd582648a01b9deab907ffbf", - customUrl: "tristan", - inGameName: null, - country: "CH", - plusTier: 1, - twitch: null, - createdAt: 1707585966, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [249, 451, 141, 260, 202, 276], + ownerUserId: 249, checkIns: [ { bracketIdx: null, @@ -15925,32 +6661,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707585114, }, ], - mapPool: [ - { - stageId: 3, - mode: "SZ", - }, - { - stageId: 4, - mode: "SZ", - }, - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 9, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 609, @@ -15958,89 +6669,15 @@ export const IN_THE_ZONE_32 = ({ seed: 9, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707583385, - members: [ - { - userId: 70, - username: "Takimi", - discordId: "681164713400467614", - discordAvatar: "8ea38ee082cece223af21eceaa79624e", - customUrl: "takimi", - inGameName: null, - country: "GB", - plusTier: 2, - twitch: null, - createdAt: 1707583385, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 124, - username: "DUDE", - discordId: "90162085337497600", - discordAvatar: "d075a0fc43a832d3c1b0edbbb097cdb6", - customUrl: null, - inGameName: null, - country: null, - plusTier: 2, - twitch: null, - createdAt: 1707583412, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 255, - username: "SnipeZ!", - discordId: "219877773605470211", - discordAvatar: "406cbd6d09c200b45171af167bfc30da", - customUrl: "snipez", - inGameName: "SnipeZ!#3229", - country: "GB", - plusTier: 1, - twitch: null, - createdAt: 1707583416, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 252, - username: "Spore", - discordId: "433708069654888448", - discordAvatar: "154986052a1c1144e50d348f68fe60e7", - customUrl: "spore", - inGameName: "sporeくも#2228", - country: "GB", - plusTier: 2, - twitch: null, - createdAt: 1707583616, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [70, 124, 255, 252], + ownerUserId: 70, checkIns: [ { bracketIdx: null, @@ -16048,32 +6685,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707585711, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 11, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 564, @@ -16081,89 +6693,15 @@ export const IN_THE_ZONE_32 = ({ seed: 10, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707486395, - members: [ - { - userId: 18, - username: "Noctis", - discordId: "189021480527331328", - discordAvatar: "25afc40f415499d9cbe1f4c89b5e6442", - customUrl: "yenoctis", - inGameName: null, - country: "DE", - plusTier: 1, - twitch: null, - createdAt: 1707486395, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 151, - username: "anger", - discordId: "412203683024076800", - discordAvatar: "04da2861d50ff96a254d5bc8b02d68ea", - customUrl: "anger", - inGameName: null, - country: "DE", - plusTier: 1, - twitch: null, - createdAt: 1707486402, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15418, - username: ".", - discordId: "794201321376448542", - discordAvatar: "2b3e66ab5e9b28417f290094c9c7206e", - customUrl: null, - inGameName: null, - country: "DE", - plusTier: 1, - twitch: null, - createdAt: 1707486406, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 411, - username: "Naives", - discordId: "417040760194465803", - discordAvatar: "605b02f40052aeaab219a94120965b79", - customUrl: "naives", - inGameName: null, - country: "AT", - plusTier: 2, - twitch: null, - createdAt: 1707486410, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [18, 151, 15418, 411], + ownerUserId: 18, checkIns: [ { bracketIdx: null, @@ -16171,32 +6709,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707585627, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 4, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 590, @@ -16204,89 +6717,15 @@ export const IN_THE_ZONE_32 = ({ seed: 11, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707513290, - members: [ - { - userId: 76, - username: "alwo", - discordId: "457473830022152212", - discordAvatar: "ffd5c22b3e36cefc13181e46900f5c17", - customUrl: "alwo", - inGameName: "Tし Alwo#8043", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707513290, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3298, - username: "Lucky♧🔥", - discordId: "675299701117157377", - discordAvatar: "149601a0b17bbaa4baabf74675eafe82", - customUrl: "luckyf", - inGameName: "Tし LuckyF'#1901", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707513292, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 5337, - username: "Typhlo", - discordId: "132913124448665600", - discordAvatar: "fad0d06a3a2d51dbdc7004373d606a54", - customUrl: "typhlo", - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707513293, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6557, - username: "exz", - discordId: "398237251894509568", - discordAvatar: "3e8ded6ad5ad136a3527d31423966b81", - customUrl: null, - inGameName: "Reizh#1164", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707513294, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [76, 3298, 5337, 6557], + ownerUserId: 76, checkIns: [ { bracketIdx: null, @@ -16294,32 +6733,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584566, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 595, @@ -16327,89 +6741,15 @@ export const IN_THE_ZONE_32 = ({ seed: 12, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707531084, - members: [ - { - userId: 112, - username: "synapse", - discordId: "397208511848644619", - discordAvatar: "fc704ddd5b6c5c9939fdbed1a6ab0ef4", - customUrl: "sighnaps", - inGameName: "sighnaps#2610", - country: "US", - plusTier: 1, - twitch: null, - createdAt: 1707531084, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 57, - username: "Caden", - discordId: "491067479452549143", - discordAvatar: "cb48c2d4107304c5af6c8795f3d4d3a8", - customUrl: "caden", - inGameName: "Caden#1661", - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707531085, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1658, - username: "Birch", - discordId: "215697775814246401", - discordAvatar: "2baa53eec2b4a4b6b03b0ea960e8b0ed", - customUrl: "birch", - inGameName: '"Birch"#1397', - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707531088, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 2801, - username: "Spongebob", - discordId: "338530058572660737", - discordAvatar: "40e95f9b159244e1f533f4dcfeae7407", - customUrl: "olneh", - inGameName: null, - country: null, - plusTier: 2, - twitch: null, - createdAt: 1707531091, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [112, 57, 1658, 2801], + ownerUserId: 112, checkIns: [ { bracketIdx: null, @@ -16417,32 +6757,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584879, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 601, @@ -16450,107 +6765,15 @@ export const IN_THE_ZONE_32 = ({ seed: 13, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707568466, - members: [ - { - userId: 319, - username: "Alex", - discordId: "731230341225775184", - discordAvatar: "869213b6ac7841ee14bb417a7c7a3ed3", - customUrl: "alexdc", - inGameName: null, - country: "ES", - plusTier: 2, - twitch: null, - createdAt: 1707568466, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 291, - username: "yokaru", - discordId: "563813647823011863", - discordAvatar: "054a910351c6a39bb11d24d37d38d79e", - customUrl: "zen_yokaru", - inGameName: null, - country: "ES", - plusTier: 3, - twitch: null, - createdAt: 1707568689, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 372, - username: "Mario-v", - discordId: "164748705713356800", - discordAvatar: "d343edc2ad965131ab719b42d4ef03c3", - customUrl: null, - inGameName: null, - country: "ES", - plusTier: 3, - twitch: null, - createdAt: 1707569605, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 392, - username: "Carlox", - discordId: "193772132675616770", - discordAvatar: "1a67431a8b8e18148a8f00d62d571b5a", - customUrl: "carlox", - inGameName: null, - country: "ES", - plusTier: 2, - twitch: null, - createdAt: 1707570566, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 7326, - username: "Nebula", - discordId: "388778540545474570", - discordAvatar: "9c507efebbb57f30a4d5a994e1acb734", - customUrl: "nebulaspl", - inGameName: "SPK Nebula#1521", - country: "GB", - plusTier: 2, - twitch: null, - createdAt: 1707581716, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [319, 291, 372, 392, 7326], + ownerUserId: 319, checkIns: [ { bracketIdx: null, @@ -16558,32 +6781,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707586430, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 560, @@ -16591,89 +6789,15 @@ export const IN_THE_ZONE_32 = ({ seed: 14, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707481625, - members: [ - { - userId: 211, - username: "Migue_CaS", - discordId: "232719351634067457", - discordAvatar: "bdd9a2730e4a55cbe246a1dfdbadcbae", - customUrl: null, - inGameName: "жн♪CaS#2045", - country: "MX", - plusTier: 2, - twitch: null, - createdAt: 1707481625, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 286, - username: "1Shot?", - discordId: "184791233972011008", - discordAvatar: "bed7c7a59696536c0682bfcc879cbec4", - customUrl: "1shot", - inGameName: "1Shot?#7678", - country: "MX", - plusTier: 2, - twitch: null, - createdAt: 1707481634, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 206, - username: "Lex", - discordId: "138866309655035904", - discordAvatar: "58051caa60d83e0a99927f8bd9ceef96", - customUrl: "lex", - inGameName: "Lex#9120", - country: "MX", - plusTier: 2, - twitch: null, - createdAt: 1707481637, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11010, - username: "esp", - discordId: "292790265029197824", - discordAvatar: "2bd9d87f23b0c320812f8497caa6c667", - customUrl: "esp", - inGameName: null, - country: null, - plusTier: 2, - twitch: null, - createdAt: 1707530338, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [211, 286, 206, 11010], + ownerUserId: 211, checkIns: [ { bracketIdx: null, @@ -16681,32 +6805,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584839, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 11, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 594, @@ -16714,89 +6813,15 @@ export const IN_THE_ZONE_32 = ({ seed: 15, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707530166, - members: [ - { - userId: 41, - username: "vera", - discordId: "316256970254581771", - discordAvatar: "f6b44cd1868b835e44bf90184310a8e9", - customUrl: "omega", - inGameName: "Queen#1066", - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707530166, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 94, - username: "bishop", - discordId: "173238005761441802", - discordAvatar: "f9a6f17f2f344ed0ce7cb0dd786ec85f", - customUrl: "bishop", - inGameName: null, - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707530170, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 232, - username: "Patrick Not-Star", - discordId: "738580607071944775", - discordAvatar: "d212f14cf74129920e323c9b00b43b14", - customUrl: "nicochicopuertorico", - inGameName: "niconomics#2094", - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707530171, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 233, - username: "Archer", - discordId: "673240733691412490", - discordAvatar: "069ba2850ea78fb26f60e64a6e8720e5", - customUrl: null, - inGameName: null, - country: "US", - twitch: null, - createdAt: 1707530172, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [41, 94, 232, 233], + ownerUserId: 41, checkIns: [ { bracketIdx: null, @@ -16804,32 +6829,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584487, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 509, @@ -16837,107 +6837,15 @@ export const IN_THE_ZONE_32 = ({ seed: 16, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707181792, - members: [ - { - userId: 1300, - username: "KING KZRR", - discordId: "444897755010301979", - discordAvatar: "92ff2a94b46916e6d7ee84e8e5aeb9ac", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1707181792, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12976, - username: "Tikke", - discordId: "1005519944223555683", - discordAvatar: "40c3446f2d71533b7cd22cd50c2fc971", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707181797, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15916, - username: "Raiki", - discordId: "1028691176129310790", - discordAvatar: "00c1371c9978ed4939ff9deeb423c55f", - customUrl: "raiki", - inGameName: "Raiki ・ ジム#1454", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707181801, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27958, - username: ".", - discordId: "437402107818016780", - discordAvatar: "5b11047c3c07612b9a9269b05f91e7a7", - customUrl: "tody", - inGameName: null, - country: "JP", - plusTier: 2, - twitch: null, - createdAt: 1707201560, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4603, - username: "Punchy", - discordId: "562637304057823235", - discordAvatar: "e485707393117b769eb4d5d308a27d9c", - customUrl: "punchy", - inGameName: "FTL Punch#2613", - country: "BE", - plusTier: 2, - twitch: null, - createdAt: 1707594734, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [1300, 12976, 15916, 27958, 4603], + ownerUserId: 1300, checkIns: [ { bracketIdx: null, @@ -16945,32 +6853,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584774, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 598, @@ -16978,107 +6861,15 @@ export const IN_THE_ZONE_32 = ({ seed: 17, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707550321, - members: [ - { - userId: 22344, - username: "Nilla", - discordId: "809863658549149766", - discordAvatar: "c23a493f4bd802dd95be86dbf29f5c02", - customUrl: "nilla", - inGameName: "Nilla#7553", - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707550321, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10200, - username: "IB Woomy", - discordId: "673622543696920607", - discordAvatar: "8aea6b82c57412e21090e111e654e3da", - customUrl: "ibwoomy", - inGameName: "Woomy#1265", - country: "CA", - plusTier: 2, - twitch: null, - createdAt: 1707550327, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 229, - username: "bandit", - discordId: "672584711289307149", - discordAvatar: "5b1ad15a5afb05de6aa3e742a07f062c", - customUrl: "maskedbandit", - inGameName: "M_Bandit#2314", - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707551471, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 246, - username: "Ballóòn", - discordId: "247818300187213834", - discordAvatar: "23209624b73572d40d8e03541913fdfd", - customUrl: "balloon", - inGameName: null, - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707578018, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14564, - username: "Potato", - discordId: "149198643440779265", - discordAvatar: "7976f3a8896cc310dfcfefed3f16c541", - customUrl: "potato", - inGameName: "Potato つミ#1098", - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707585842, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22344, 10200, 229, 246, 14564], + ownerUserId: 22344, checkIns: [ { bracketIdx: null, @@ -17091,32 +6882,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707593849, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 604, @@ -17124,107 +6890,15 @@ export const IN_THE_ZONE_32 = ({ seed: 18, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707575096, - members: [ - { - userId: 236, - username: "Yeti", - discordId: "811971184315990037", - discordAvatar: "dfc73135bc42ebd455f5d2e3e1bb1359", - customUrl: "yeti_spl", - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707575096, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8734, - username: "Yuni...", - discordId: "857226158672052226", - discordAvatar: "703b6343c7ffb62a593c92896d46f1d3", - customUrl: "yuni1206", - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707575127, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 16980, - username: "Acer", - discordId: "303473393880268801", - discordAvatar: "ed5f26f86a75d2c08798f1fc37943222", - customUrl: "acer", - inGameName: "Acer#3308", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707575140, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 272, - username: "꩜", - discordId: "658636974952939530", - discordAvatar: "ad07360dfc6ab8be6370534f0663d414", - customUrl: "nepia", - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707576308, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6710, - username: "KITKAT", - discordId: "651677259144364032", - discordAvatar: "02b3060c984cad6fac233d7bb245ef7d", - customUrl: "kitkaat", - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707578575, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [236, 8734, 16980, 272, 6710], + ownerUserId: 236, checkIns: [ { bracketIdx: null, @@ -17232,32 +6906,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707587552, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 603, @@ -17265,125 +6914,15 @@ export const IN_THE_ZONE_32 = ({ seed: 19, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707569490, - members: [ - { - userId: 321, - username: "Titally", - discordId: "705086782051582042", - discordAvatar: "90e38f10cf6644311f66ec7e92860260", - customUrl: "titallyy", - inGameName: "Titally+++#1749", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707569490, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11593, - username: "Aloha", - discordId: "554350848352714753", - discordAvatar: "29d02e03a0f5414955ea1ede9da0f5cd", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707569503, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 50, - username: "Gettway🍒", - discordId: "133616977968103424", - discordAvatar: "ce17d54e96a7e8b8fea6b10db4ca652b", - customUrl: "gettway", - inGameName: null, - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707569864, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8, - username: "SG»Porky", - discordId: "135135051275829249", - discordAvatar: "e138b1d63b989a77718c22858e8652ef", - customUrl: "porky", - inGameName: "SG»Porky#2465", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707571931, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 331, - username: "kera", - discordId: "678848011090264075", - discordAvatar: "d5fef5e57e1d8a25215de3f72a63c614", - customUrl: "kera", - inGameName: null, - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707576015, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 132, - username: "xers", - discordId: "207150814735761408", - discordAvatar: null, - customUrl: "xercess", - inGameName: "Pmc Xers#1490", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707582774, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [321, 11593, 50, 8, 331, 132], + ownerUserId: 321, checkIns: [ { bracketIdx: null, @@ -17391,32 +6930,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707587686, }, ], - mapPool: [ - { - stageId: 4, - mode: "SZ", - }, - { - stageId: 9, - mode: "SZ", - }, - { - stageId: 12, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 20, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 596, @@ -17424,89 +6938,15 @@ export const IN_THE_ZONE_32 = ({ seed: 20, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707537425, - members: [ - { - userId: 1117, - username: "Crim", - discordId: "206930310611468288", - discordAvatar: "f22f6015bdad956c75f34913a3b57331", - customUrl: "creativepositioning", - inGameName: "InC сяiм#2902", - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707537425, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 36, - username: "Pika", - discordId: "122767217266917378", - discordAvatar: "10ee6c5f6b6bd14db97f147e0119242a", - customUrl: "pika", - inGameName: "Pika ☆#2843", - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707537428, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 335, - username: "Nice O", - discordId: "479125178962411520", - discordAvatar: "957d87f1a9b234a8db4816be1df91f71", - customUrl: "nicooooo", - inGameName: null, - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707537431, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 292, - username: "Soarn", - discordId: "417725809436917761", - discordAvatar: "e92b95c9c9acdcd8b25c05441bf2374e", - customUrl: "soarn", - inGameName: "soarn#9865", - country: "FR", - plusTier: 2, - twitch: null, - createdAt: 1707557483, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [1117, 36, 335, 292], + ownerUserId: 1117, checkIns: [ { bracketIdx: null, @@ -17514,32 +6954,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584597, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 600, @@ -17547,125 +6962,15 @@ export const IN_THE_ZONE_32 = ({ seed: 21, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707564691, - members: [ - { - userId: 2414, - username: "Sinayy", - discordId: "377543915043160074", - discordAvatar: "3e410a4640460470d001d0eb21d15529", - customUrl: null, - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1707564691, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4061, - username: "Snnoo", - discordId: "620181963382325268", - discordAvatar: "4cbb17927060550172c4b2a6a27babea", - customUrl: "snnoo", - inGameName: "nW sηηoo#1522", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1707564697, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10592, - username: "dragib", - discordId: "414399631124987906", - discordAvatar: "7a42724d25f59f316a48e6093c6ed5dd", - customUrl: "dragib", - inGameName: "M8 dragib#3369", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1707564698, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10812, - username: "haru", - discordId: "660902180425039882", - discordAvatar: "71db04119f1f62e186a8bd004602553c", - customUrl: "haru", - inGameName: "MG haru#2445", - country: "FR", - twitch: null, - createdAt: 1707564699, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 115, - username: "Maeee 🌸", - discordId: "351412592335650817", - discordAvatar: "99875d461f4dc57ff9c0c53cc626b964", - customUrl: "mae_spl", - inGameName: null, - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1707582778, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 12395, - username: "Shark", - discordId: "687406242515124286", - discordAvatar: "88723a4058fcc4eed1eb42590982a42a", - customUrl: "shark", - inGameName: "EU_Shark#1136", - country: null, - twitch: null, - createdAt: 1707584403, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [2414, 4061, 10592, 10812, 115, 12395], + ownerUserId: 2414, checkIns: [ { bracketIdx: null, @@ -17678,32 +6983,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707593753, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 500, @@ -17711,134 +6991,17 @@ export const IN_THE_ZONE_32 = ({ seed: 22, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707145818, - members: [ - { - userId: 11007, - username: "Trey", - discordId: "923792181100175392", - discordAvatar: "f2ecd12a44f5ed54a757912dfb92edb9", - customUrl: "apple_52_", - inGameName: "Trey#2478", - country: "PL", - plusTier: 2, - twitch: null, - createdAt: 1707145818, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 71, - username: "Violet", - discordId: "1195417964007137420", - discordAvatar: "c62c91b7d42bf4f036d085880f6eb812", - customUrl: "violett", - inGameName: "[v]iolet!#2493", - country: "US", - plusTier: 2, - twitch: null, - createdAt: 1707145821, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 204, - username: "Cuber", - discordId: "342838558564024322", - discordAvatar: "2120b550b7ff5603f9b951991af6bbb7", - customUrl: "cuberrr", - inGameName: null, - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707145823, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4762, - username: "𝔃𝓮𝓷 ✿", - discordId: "480394213863981067", - discordAvatar: "390e2a1e12a121086cbd412f4a4af81a", - customUrl: "zen", - inGameName: null, - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707145826, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6048, - username: "adapt", - discordId: "500104986584416266", - discordAvatar: "a77cf17c1fe9b7df251e353f5aed0046", - customUrl: "adaptability", - inGameName: null, - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707145829, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11007, 71, 204, 4762, 6048], + ownerUserId: 11007, checkIns: [], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 599, @@ -17846,89 +7009,15 @@ export const IN_THE_ZONE_32 = ({ seed: 23, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707558330, - members: [ - { - userId: 9125, - username: "Zivox", - discordId: "244456158201380864", - discordAvatar: "0c19856d48d3c074b052bb8b0fb96d96", - customUrl: "zivox", - inGameName: "Zivox ?#4849", - country: "FR", - plusTier: 3, - twitch: null, - createdAt: 1707558330, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 14489, - username: "keurbi", - discordId: "699648108958843011", - discordAvatar: "13a3d7f9e4da5790e84e39d12765be16", - customUrl: "keurbii", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1707558336, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 26392, - username: "Daki", - discordId: "931599095225782342", - discordAvatar: "105ad067fc8680684a149f1b42efed93", - customUrl: "dakirikouuu", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1707558339, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28725, - username: "Naka", - discordId: "570644384929021973", - discordAvatar: "e16a9798288b3988c9b3ba10bd259b1d", - customUrl: "naka", - inGameName: "Nakaverne#1908", - country: "FR", - twitch: null, - createdAt: 1707558342, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [9125, 14489, 26392, 28725], + ownerUserId: 9125, checkIns: [ { bracketIdx: null, @@ -17936,32 +7025,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707587652, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 3, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 614, @@ -17969,89 +7033,15 @@ export const IN_THE_ZONE_32 = ({ seed: 24, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707586842, - members: [ - { - userId: 6307, - username: "Kenta", - discordId: "725778044328870018", - discordAvatar: "c9b42f8f3c98eb3c0123d4c19cfa5533", - customUrl: "kentakiwi", - inGameName: "kenta caca#5508", - country: "ES", - plusTier: 3, - twitch: null, - createdAt: 1707586842, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15403, - username: "Caad", - discordId: "1015362068733513839", - discordAvatar: "07d518d309696fdd4e2574ef16cd2e86", - customUrl: null, - inGameName: "Caad#2876", - country: "FR", - twitch: null, - createdAt: 1707586869, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9718, - username: "ori_", - discordId: "561371938383986698", - discordAvatar: "0a0010be65b4f41bf848d3dd5a03a256", - customUrl: "ori_", - inGameName: "ori_#1412", - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707586905, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 18039, - username: "Rose", - discordId: "936942744985829477", - discordAvatar: "2de3d96a7f163439de0ec19f643bc717", - customUrl: "rosearrow", - inGameName: "†’Rose#1636", - country: "US", - twitch: null, - createdAt: 1707586936, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [6307, 15403, 9718, 18039], + ownerUserId: 6307, checkIns: [ { bracketIdx: null, @@ -18059,32 +7049,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707587079, }, ], - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 610, @@ -18092,125 +7057,15 @@ export const IN_THE_ZONE_32 = ({ seed: 25, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707583597, - members: [ - { - userId: 18734, - username: "Javierx9x", - discordId: "617402869280145418", - discordAvatar: "fe79aac365eb877b69aad67224a4b457", - customUrl: null, - inGameName: null, - country: "ES", - twitch: null, - createdAt: 1707583597, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 3258, - username: "geko", - discordId: "469796916226686977", - discordAvatar: "ff14910472d07b96f9ddb01fecf20f62", - customUrl: null, - inGameName: null, - country: "ES", - twitch: null, - createdAt: 1707583602, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 27108, - username: "NEOmegaX", - discordId: "482200040685830154", - discordAvatar: "92b52d3fdb574d385e88701f16cb424f", - customUrl: null, - inGameName: "い Neomegax#2245", - country: "ES", - twitch: null, - createdAt: 1707583609, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20143, - username: "! Ateno", - discordId: "885858782003990539", - discordAvatar: "fccb549bfca5f61509165b1aeb1675f6", - customUrl: null, - inGameName: "キおう 〆仝 At⇔#3946", - country: "ES", - twitch: null, - createdAt: 1707583616, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23820, - username: "♱ seb ♱", - discordId: "863787863589650472", - discordAvatar: "a_9cb301e90d936f5bfaf4af4769b04c92", - customUrl: "seb", - inGameName: "200FULLBOX#1297", - country: "ES", - twitch: null, - createdAt: 1707586602, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28851, - username: "Aprhodite", - discordId: "688872021526052936", - discordAvatar: "aaa52a048b58dc706b5d88d09d51b1c5", - customUrl: "aprhodite", - inGameName: "Aprhodite#2749", - country: "ES", - twitch: null, - createdAt: 1707586606, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [18734, 3258, 27108, 20143, 23820, 28851], + ownerUserId: 18734, checkIns: [ { bracketIdx: null, @@ -18218,32 +7073,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707586610, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 20, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 551, @@ -18251,107 +7081,15 @@ export const IN_THE_ZONE_32 = ({ seed: 26, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707429804, - members: [ - { - userId: 25400, - username: "Espace", - discordId: "264152597877882890", - discordAvatar: "d3b61683854a9746b88ee7ba7dcb05ba", - customUrl: null, - inGameName: "Space#0329", - country: "ES", - twitch: null, - createdAt: 1707429804, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13296, - username: "Akygos", - discordId: "344256410382630924", - discordAvatar: "a6d63f095307a3324d582bb6f68d876d", - customUrl: "akygos", - inGameName: "Akygos#2217", - country: "ES", - twitch: null, - createdAt: 1707429808, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 15346, - username: "Alexri", - discordId: "311182672217112586", - discordAvatar: "f86bd2fb989200f41da2efcc7ca47b61", - customUrl: "alerri", - inGameName: "Alexri#5508", - country: "ES", - twitch: null, - createdAt: 1707571232, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21099, - username: "cidy", - discordId: "403336270509506561", - discordAvatar: "2bea656d16c08bac54961258fe0236ca", - customUrl: "cidy", - inGameName: null, - country: "ES", - twitch: null, - createdAt: 1707586254, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4099, - username: "Lasky", - discordId: "308653408771112972", - discordAvatar: "3d54c0b82416fceaa139047e63520b16", - customUrl: "lasky", - inGameName: "Lasky#3152", - country: "ES", - twitch: null, - createdAt: 1707586657, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [25400, 13296, 15346, 21099, 4099], + ownerUserId: 25400, checkIns: [ { bracketIdx: null, @@ -18359,32 +7097,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707586360, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 597, @@ -18392,107 +7105,15 @@ export const IN_THE_ZONE_32 = ({ seed: 27, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707539973, - members: [ - { - userId: 405, - username: "ely", - discordId: "260999523806085120", - discordAvatar: "a_b524ba21aadf33413c242ad4d558fb1c", - customUrl: "elemental", - inGameName: "ELEMENTAL!#1489", - country: "CA", - twitch: null, - createdAt: 1707539973, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20859, - username: "Munkee", - discordId: "613432730574651412", - discordAvatar: "6482b7b3d87a0d076b6f40083ccfd652", - customUrl: "munkee", - inGameName: "MUNKEE!!!!#1357", - country: "US", - twitch: null, - createdAt: 1707539978, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13614, - username: "Bubbles", - discordId: "462057926186762291", - discordAvatar: "e0c00abd563966953530bf160d286510", - customUrl: "bubbles", - inGameName: "●βubbles#1084", - country: "US", - twitch: null, - createdAt: 1707539980, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 22041, - username: "zlook", - discordId: "880910023008600084", - discordAvatar: "966e8cd356fe54271e0760b3473ec8a9", - customUrl: "zlook", - inGameName: "ZLOOK!!!!!#1324", - country: "US", - plusTier: 3, - twitch: null, - createdAt: 1707539983, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20731, - username: "mel0mania", - discordId: "178733052762128385", - discordAvatar: "2c925566255d7b31b275debf0128c8e2", - customUrl: "mel0mania", - inGameName: "MEL0MANIA★#1137", - country: "CA", - twitch: null, - createdAt: 1707539985, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [405, 20859, 13614, 22041, 20731], + ownerUserId: 405, checkIns: [ { bracketIdx: null, @@ -18505,32 +7126,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707592696, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 589, @@ -18538,107 +7134,15 @@ export const IN_THE_ZONE_32 = ({ seed: 28, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707507831, - members: [ - { - userId: 11467, - username: "Alex_", - discordId: "609884062219501569", - discordAvatar: "d565d95da25d7e762bb6ac2891de7e66", - customUrl: "alexxx", - inGameName: null, - country: "US", - twitch: null, - createdAt: 1707507831, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 346, - username: "radish", - discordId: "617531521498087488", - discordAvatar: "a_161cddb07a961474543d2d6ad0430f76", - customUrl: "radishes", - inGameName: null, - country: "US", - twitch: null, - createdAt: 1707507835, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1038, - username: "Kabi", - discordId: "326532846959329280", - discordAvatar: "0451bc4be41eaf5e776e06757c24a786", - customUrl: "kabi", - inGameName: "Kabi#5484", - country: "US", - twitch: null, - createdAt: 1707507836, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 6255, - username: "Ang", - discordId: "492002740617216000", - discordAvatar: "d279ada7cb76adf00aba892f5a6a1170", - customUrl: "ang", - inGameName: "ang#1115", - country: "US", - twitch: null, - createdAt: 1707507840, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4097, - username: "noxraven42", - discordId: "357866429552525322", - discordAvatar: "31e16eb246021ce7553f0305d5c52481", - customUrl: "noxraven42", - inGameName: null, - country: "US", - twitch: null, - createdAt: 1707507912, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [11467, 346, 1038, 6255, 4097], + ownerUserId: 11467, checkIns: [ { bracketIdx: null, @@ -18646,32 +7150,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584843, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 612, @@ -18679,107 +7158,15 @@ export const IN_THE_ZONE_32 = ({ seed: 29, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707586297, - members: [ - { - userId: 14605, - username: "rexyyyyy", - discordId: "762464672124764170", - discordAvatar: "d3cf82bf707739a7851e2fb86ffd09dd", - customUrl: "rexyyy", - inGameName: null, - country: "HN", - twitch: null, - createdAt: 1707586297, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9674, - username: "b.dusty", - discordId: "768144722245976106", - discordAvatar: "86369c460e3f27f61c9115b5e94c60d3", - customUrl: "bdusty", - inGameName: "b.dusty#1304", - country: "US", - twitch: null, - createdAt: 1707586302, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28482, - username: "phantom 👻", - discordId: "599633578648928307", - discordAvatar: "75e8098ed3f83903d17deb0e6f66baa1", - customUrl: "phantom_spl", - inGameName: "Phantom#5343", - country: "US", - twitch: null, - createdAt: 1707586330, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 10841, - username: "eider_pancake", - discordId: "714662908037955635", - discordAvatar: "b913cbe960ab6e09fb9894a04711a520", - customUrl: "eider", - inGameName: "Eider :3#2363", - country: "MX", - twitch: null, - createdAt: 1707587341, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 20154, - username: "echo!", - discordId: "1036444173567537262", - discordAvatar: "24068156578d8580336da81e8ab6ba2d", - customUrl: "echo", - inGameName: "1¤ echo!#2760", - country: "GB", - twitch: null, - createdAt: 1707587544, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [14605, 9674, 28482, 10841, 20154], + ownerUserId: 14605, checkIns: [ { bracketIdx: null, @@ -18787,156 +7174,21 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707587553, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 16, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 611, name: "Replay", seed: 30, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707583885, - members: [ - { - userId: 37105, - username: "Tyraid", - discordId: "1189399522368037026", - discordAvatar: "df0a574122e61a2575330df05662adaf", - customUrl: "ty", - inGameName: "マ∞マTyraid#2368", - country: "US", - twitch: null, - createdAt: 1707583885, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4307, - username: "Ezio!", - discordId: "747592200887599195", - discordAvatar: "c19cd5cacbcc0fb84a1b3c2cf7eac837", - customUrl: "eziooooo", - inGameName: null, - country: "CA", - twitch: null, - createdAt: 1707583904, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 21339, - username: "Soro", - discordId: "984782488595496971", - discordAvatar: "1a0d460918b961d5e55ad17c2dc91e75", - customUrl: "soro", - inGameName: ".Soro<3#3320", - country: "CU", - twitch: null, - createdAt: 1707583961, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1136, - username: "Guigas", - discordId: "151144919136862210", - discordAvatar: "fbc77c63c85b5cc20d57de31403196b0", - customUrl: "guigas", - inGameName: "σ Guigas#6660", - country: "BR", - twitch: null, - createdAt: 1707584003, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1441, - username: "Pose", - discordId: "339981555428753411", - discordAvatar: "c725ca4584840840402dc1c1b385165e", - customUrl: "nowpose", - inGameName: "Pose.#2400", - country: "US", - twitch: null, - createdAt: 1707586447, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 25117, - username: "Datzu", - discordId: "444295883182309378", - discordAvatar: "a_46eb603abfaaee815c606e335f4ffd00", - customUrl: "datzu", - inGameName: "Datzu#1760", - country: "CO", - twitch: null, - createdAt: 1707592366, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [37105, 4307, 21339, 1136, 1441, 25117], + ownerUserId: 37105, checkIns: [ { bracketIdx: null, @@ -18944,32 +7196,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707584415, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 11, - mode: "SZ", - }, - { - stageId: 15, - mode: "SZ", - }, - { - stageId: 19, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 606, @@ -18977,107 +7204,15 @@ export const IN_THE_ZONE_32 = ({ seed: 31, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707578076, - members: [ - { - userId: 34238, - username: "Sili", - discordId: "1101867939130511420", - discordAvatar: null, - customUrl: null, - inGameName: "pk sili#2673", - country: "FR", - twitch: null, - createdAt: 1707578076, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 168, - username: "96Magi", - discordId: "358726210806743051", - discordAvatar: "dd24e52ccdad5f6e480ab301720348a2", - customUrl: "96magi", - inGameName: "96Magi#7255", - country: "CH", - plusTier: 3, - twitch: null, - createdAt: 1707578078, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 1178, - username: "kura", - discordId: "250689440056475648", - discordAvatar: "da908b1273d8cdde41269558441172c9", - customUrl: "kura1708", - inGameName: "kura#3173", - country: "FR", - twitch: null, - createdAt: 1707578080, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9064, - username: "KLAZ", - discordId: "614820279755079712", - discordAvatar: "5ea1c9f40303021fae7998cb892871d2", - customUrl: "klaz", - inGameName: "Klaz#3153", - country: "FR", - twitch: null, - createdAt: 1707578084, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 11148, - username: "Lay'", - discordId: "936001185859633212", - discordAvatar: "e903bb257d552de9aca8b15a17cdc4fb", - customUrl: "tentman", - inGameName: "「♪」 Layrin#3133", - country: "FR", - twitch: null, - createdAt: 1707578089, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [34238, 168, 1178, 9064, 11148], + ownerUserId: 34238, checkIns: [ { bracketIdx: null, @@ -19090,120 +7225,21 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707593906, }, ], - mapPool: [ - { - stageId: 2, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 11, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 608, name: "Hiro le tournevis", seed: 32, prefersNotToHost: 1, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707582953, - members: [ - { - userId: 22948, - username: "𒉭Shadøw", - discordId: "200912048916267008", - discordAvatar: "80f582c65135f45b7120177a6052cdcb", - customUrl: "shadow_carbon", - inGameName: "✞Shadøw#2265", - country: "PT", - twitch: null, - createdAt: 1707582953, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 23128, - username: "hiro", - discordId: "946503696697688095", - discordAvatar: "1f96c7be0c710c3dc5ceab90d18a7579", - customUrl: "hiro", - inGameName: " hiro#1617", - country: "FR", - twitch: null, - createdAt: 1707582958, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 38080, - username: "Awenn", - discordId: "1158149473541836820", - discordAvatar: "b7fec35f140c0d276107917f03b1e7d5", - customUrl: null, - inGameName: "Lottared!#2387", - country: "RU", - twitch: null, - createdAt: 1707582962, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 35807, - username: "Baké", - discordId: "630874409170894849", - discordAvatar: "b011e4c600a09072fbd93873b4c569f2", - customUrl: "bake", - inGameName: "り·Baké#2955", - country: "FR", - twitch: null, - createdAt: 1707582993, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [22948, 23128, 38080, 35807], + ownerUserId: 22948, checkIns: [ { bracketIdx: null, @@ -19211,32 +7247,7 @@ export const IN_THE_ZONE_32 = ({ checkedInAt: 1707587518, }, ], - mapPool: [ - { - stageId: 4, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 13, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - { - stageId: 21, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 605, @@ -19244,107 +7255,15 @@ export const IN_THE_ZONE_32 = ({ seed: 33, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707575330, - members: [ - { - userId: 10192, - username: "FG☆Chiaki", - discordId: "718795604599373854", - discordAvatar: "7667f38a7df59927501daedd13d67149", - customUrl: "chiaki_spl", - inGameName: null, - country: "FR", - twitch: null, - createdAt: 1707575330, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 24705, - username: "Mirval", - discordId: "748837898408820778", - discordAvatar: "874faa0d0fa84ac8855581cff3580507", - customUrl: "mirval", - inGameName: "Mirval#1257", - country: "FR", - twitch: null, - createdAt: 1707575334, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 9367, - username: "mishy", - discordId: "631428169047605279", - discordAvatar: "5b91b42f3ba2d2331ce5d94781d91199", - customUrl: "mishy", - inGameName: "mishy#2235", - country: "FR", - twitch: null, - createdAt: 1707575341, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 28191, - username: "Aera", - discordId: "924046469886017657", - discordAvatar: "25b3df25b57e5a0274359470c1d9e44c", - customUrl: null, - inGameName: "Aerα#4357", - country: "FR", - twitch: null, - createdAt: 1707575345, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 13342, - username: "akuma", - discordId: "443842528895172619", - discordAvatar: "15706f50808435e18e6850e838165d86", - customUrl: "akuma", - inGameName: "Akuma#9476", - country: "FR", - twitch: null, - createdAt: 1707575350, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [10192, 24705, 9367, 28191, 13342], + ownerUserId: 10192, checkIns: [ { bracketIdx: null, @@ -19359,32 +7278,7 @@ export const IN_THE_ZONE_32 = ({ } : null, ].filter((c) => c !== null), - mapPool: [ - { - stageId: 6, - mode: "SZ", - }, - { - stageId: 7, - mode: "SZ", - }, - { - stageId: 8, - mode: "SZ", - }, - { - stageId: 10, - mode: "SZ", - }, - { - stageId: 17, - mode: "SZ", - }, - { - stageId: 18, - mode: "SZ", - }, - ], + hasMapPool: true, }, { id: 593, @@ -19392,73 +7286,17 @@ export const IN_THE_ZONE_32 = ({ seed: 34, prefersNotToHost: 0, droppedOut: 0, - team: null, - inviteCode: null, + logoUrl: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, createdAt: 1707527645, - members: [ - { - userId: 26942, - username: "Triix :3", - discordId: "375113228281184257", - discordAvatar: "6752ab139bbb245d2a9dd571983f692c", - customUrl: null, - inGameName: null, - country: "US", - twitch: null, - createdAt: 1707527645, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "OWNER", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 8927, - username: "okaysaffra", - discordId: "457356936833269778", - discordAvatar: "a8180fb199de1cfad3e3279c45e4fcee", - customUrl: "okaysaffra", - inGameName: "ƒ* saffra#7686", - country: "CA", - twitch: null, - createdAt: 1707527672, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - { - userId: 4434, - username: "GYARU", - discordId: "562505510058983444", - discordAvatar: "920f317863ced869e9ebb4cb5a526623", - customUrl: "gyaru", - inGameName: "3★ GYARU#1420", - country: "CA", - twitch: null, - createdAt: 1707534384, - plusTier: null, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - role: "REGULAR", - isSub: 0, - customAvatarUrl: null, - }, - ], + inviteCode: null, + memberUserIds: [26942, 8927, 4434], + ownerUserId: 26942, checkIns: [], - mapPool: [], + hasMapPool: false, }, ], bestOfs: [ @@ -19533,20 +7371,6 @@ export const IN_THE_ZONE_32 = ({ ], toSetMapPool: [], tieBreakerMapPool: [], - participatedUsers: [ - 8, 18, 32, 35, 36, 41, 48, 50, 57, 70, 76, 81, 94, 100, 104, 112, 115, - 118, 123, 124, 126, 133, 138, 141, 145, 147, 151, 164, 168, 172, 185, - 202, 206, 211, 229, 232, 233, 236, 246, 249, 252, 255, 257, 260, 272, - 286, 291, 292, 305, 319, 321, 335, 346, 372, 392, 405, 411, 439, 451, - 702, 957, 1038, 1043, 1117, 1136, 1178, 1300, 1441, 1658, 2414, 2801, - 3258, 3298, 4061, 4099, 4307, 4603, 5337, 5728, 6255, 6307, 6557, 6710, - 7326, 8734, 9064, 9125, 9367, 9674, 9718, 10192, 10200, 10293, 10592, - 10812, 11010, 11148, 11467, 11517, 11593, 12395, 12976, 13296, 13342, - 13614, 14489, 14605, 15346, 15403, 15418, 15916, 16980, 18039, 18734, - 20143, 20154, 20583, 20731, 20859, 21339, 22041, 22344, 22893, 22948, - 23128, 23381, 23820, 24705, 25400, 25423, 26392, 27108, 27958, 28191, - 28482, 28725, 28851, 34238, 35807, 37105, 38080, - ], - castStreams: [], + latestTeamIdByDuplicatedUserId: {}, }, }) as TournamentData; diff --git a/app/features/tournament-bracket/core/tests/test-utils.ts b/app/features/tournament-bracket/core/tests/test-utils.ts index cfe53ed5c..b1302d2c2 100644 --- a/app/features/tournament-bracket/core/tests/test-utils.ts +++ b/app/features/tournament-bracket/core/tests/test-utils.ts @@ -12,16 +12,15 @@ export const tournamentCtxTeam = ( checkIns: [{ checkedInAt: 1705858841, bracketIdx: null, isCheckOut: 0 }], createdAt: 0, id: teamId, - inviteCode: null, avgSeedingSkillOrdinal: null, startingBracketIdx: null, abDivision: null, - team: null, - mapPool: [], - members: [], + hasMapPool: false, + inviteCode: null, + memberUserIds: [], + ownerUserId: null, activeRosterUserIds: [], - avatarImgId: null, - pickupAvatarUrl: null, + logoUrl: null, name: `Team ${teamId}`, prefersNotToHost: 0, droppedOut: 0, @@ -77,8 +76,7 @@ export const testTournament = ({ staff: [], tieBreakerMapPool: [], toSetMapPool: [], - participatedUsers: [], - castStreams: [], + latestTeamIdByDuplicatedUserId: {}, mapPickingStyle: "AUTO_SZ", settings: { bracketProgression: [ @@ -116,6 +114,7 @@ export const testTournament = ({ })), }, ctx: tournamentCtx, + participatedUsers: [], }); }; diff --git a/app/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts b/app/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts index a25146279..22428ccaf 100644 --- a/app/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts +++ b/app/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts @@ -4,6 +4,7 @@ import * as CalendarRepository from "~/features/calendar/CalendarRepository.serv import * as Seasons from "~/features/mmr/core/Seasons"; import { seasonRatings, seedingRatings } from "~/features/mmr/mmr-utils.server"; import * as Standings from "~/features/tournament/core/Standings"; +import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; import { summaryRatingTargets, tournamentSummary, @@ -93,16 +94,21 @@ async function standingsWithSetParticipation(tournament: Tournament) { progression: tournament.ctx.settings.bracketProgression, }); - return finalStandings.map((standing) => { - standing.team.members; - return { - placement: standing.placement, - tournamentTeamId: standing.team.id, - name: standing.team.name, - members: standing.team.members.map((member) => ({ + const rostersByTeamId = new Map( + ( + await TournamentRepository.findTeamsFullByTournamentId(tournament.ctx.id) + ).map((team) => [team.id, team.members]), + ); + + return finalStandings.map((standing) => ({ + placement: standing.placement, + tournamentTeamId: standing.team.id, + name: standing.team.name, + members: (rostersByTeamId.get(standing.team.id) ?? []) + .filter((member) => standing.team.memberUserIds.includes(member.userId)) + .map((member) => ({ ...member, setResults: setResults.get(member.userId) ?? [], })), - }; - }); + })); } diff --git a/app/features/tournament-bracket/loaders/to.$id.brackets.server.ts b/app/features/tournament-bracket/loaders/to.$id.brackets.server.ts new file mode 100644 index 000000000..667187add --- /dev/null +++ b/app/features/tournament-bracket/loaders/to.$id.brackets.server.ts @@ -0,0 +1,69 @@ +import type { LoaderFunctionArgs } from "react-router"; +import { getUser } from "~/features/auth/core/user.server"; +import type { SerializeFrom } from "~/utils/remix"; +import { parseParams } from "~/utils/remix.server"; +import { idObject } from "~/utils/zod"; +import { + requireTournamentVisible, + serializeBracket, + tournamentSharedCached, +} from "../core/Tournament.server"; +import { tournamentBracketsSearchParams } from "../tournament-bracket-search-params"; + +export type TournamentBracketsLoaderData = SerializeFrom; + +/** + * Match data of the one bracket the view renders, selected by the `idx` search param. + * The other brackets are represented by the layout's bracket state alone. + */ +export const loader = async ({ params, request }: LoaderFunctionArgs) => { + const user = getUser(); + const { id: tournamentId } = parseParams({ params, schema: idObject }); + + const tournament = await tournamentSharedCached(tournamentId); + requireTournamentVisible({ ctx: tournament.ctx, user }); + + const bracketIdx = resolveBracketIdx( + tournament, + tournamentBracketsSearchParams.parse(request).idx, + ); + const bracket = tournament.bracketByIdx(bracketIdx); + + return { + bracketIdx, + bracket: bracket ? serializeBracket(bracket) : null, + // the layout does not ship these, standings derived in the view need them + participatedUserIds: tournament.participatedUserIds, + teamProgressStatus: tournament.teamMemberOfProgressStatus(user), + // the match cards' LIVE badges need these, also not shipped by the layout + streams: tournament.streams, + }; +}; + +/** + * The bracket to show, always one of the brackets the view actually renders a tab for. Without + * a valid `idx` the first bracket, unless it is over and followed by a bracket the tournament + * actually continues in. + */ +function resolveBracketIdx( + tournament: Awaited>, + idx: number | null, +) { + const visibleBrackets = tournament.visibleBracketsMeta; + const isVisible = (idx: number) => + visibleBrackets.some((bracket) => bracket.idx === idx); + + if (idx !== null && isVisible(idx)) { + return idx; + } + + const brackets = tournament.bracketsMeta; + const defaultIdx = + brackets.length <= 1 || + brackets[1].isUnderground || + !brackets[0].everyMatchOver + ? 0 + : 1; + + return isVisible(defaultIdx) ? defaultIdx : (visibleBrackets[0]?.idx ?? 0); +} diff --git a/app/features/tournament-bracket/loaders/to.$id.divisions.server.ts b/app/features/tournament-bracket/loaders/to.$id.divisions.server.ts index 9630045a3..a68c705b1 100644 --- a/app/features/tournament-bracket/loaders/to.$id.divisions.server.ts +++ b/app/features/tournament-bracket/loaders/to.$id.divisions.server.ts @@ -4,7 +4,11 @@ import * as TournamentRepository from "~/features/tournament/TournamentRepositor import { notFoundIfNullish, parseParams } from "~/utils/remix.server"; import { idObject } from "~/utils/zod"; import type { Unwrapped } from "../../../utils/types"; -import { tournamentFromDB } from "../core/Tournament.server"; +import { + requireTournamentVisible, + tournamentDataCached, + tournamentFromDB, +} from "../core/Tournament.server"; export const loader = async ({ params }: LoaderFunctionArgs) => { const user = getUser(); @@ -13,6 +17,9 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { schema: idObject, }); + const { ctx } = await tournamentDataCached({ tournamentId }); + requireTournamentVisible({ ctx, user }); + const divisions = notFoundIfNullish(await divisionsCached(tournamentId)); return { diff --git a/app/features/tournament-bracket/routes/to.$id.brackets.tsx b/app/features/tournament-bracket/routes/to.$id.brackets.tsx index 8eb876230..6c71bcbb7 100644 --- a/app/features/tournament-bracket/routes/to.$id.brackets.tsx +++ b/app/features/tournament-bracket/routes/to.$id.brackets.tsx @@ -13,7 +13,13 @@ import { import * as React from "react"; import { ErrorBoundary } from "react-error-boundary"; import { useTranslation } from "react-i18next"; -import { Outlet, useLocation, useOutletContext } from "react-router"; +import { + Outlet, + useLoaderData, + useLocation, + useNavigation, + useOutletContext, +} from "react-router"; import { Alert } from "~/components/Alert"; import { Divider } from "~/components/Divider"; import { LinkButton, SendouButton } from "~/components/elements/Button"; @@ -25,6 +31,7 @@ import { SendouTabs, } from "~/components/elements/Tabs"; import { LocaleTimeRange } from "~/components/LocaleTimeRange"; +import { Placeholder } from "~/components/Placeholder"; import { useUser } from "~/features/auth/core/user"; import { useWebsocketRevalidation } from "~/features/chat/chat-hooks"; import { TOURNAMENT } from "~/features/tournament/tournament-constants"; @@ -35,6 +42,7 @@ import { useSearchParam } from "~/modules/search-params/hooks"; import type { SendouRouteHandle } from "~/utils/remix.server"; import { SENDOU_INK_BASE_URL, tournamentJoinPage } from "~/utils/urls"; import { + TournamentOverrideProvider, useBracketExpanded, useTournament, useTournamentPreparedMaps, @@ -47,11 +55,15 @@ import { TournamentTeamActions } from "../components/TournamentTeamActions"; import * as AbDivisions from "../core/AbDivisions"; import type { Bracket as BracketType } from "../core/Bracket"; import * as PreparedMaps from "../core/PreparedMaps"; -import type { Tournament } from "../core/Tournament"; +import type { BracketMeta, Tournament } from "../core/Tournament"; +import { + loader, + type TournamentBracketsLoaderData, +} from "../loaders/to.$id.brackets.server"; import { tournamentBracketsSearchParams } from "../tournament-bracket-search-params"; import { tournamentWebsocketRoom } from "../tournament-bracket-utils"; -export { action }; +export { action, loader }; export const handle: SendouRouteHandle = { mainBreakout: true, @@ -60,41 +72,45 @@ export const handle: SendouRouteHandle = { import styles from "../tournament-bracket.module.css"; export default function TournamentBracketsPage() { + const data = useLoaderData(); + const layoutTournament = useTournament(); + + const tournament = React.useMemo( + () => + data.bracket + ? layoutTournament.withBrackets([data.bracket], { + participatedUsers: data.participatedUserIds, + streams: data.streams, + }) + : layoutTournament, + [layoutTournament, data.bracket, data.participatedUserIds, data.streams], + ); + + return ( + + + + ); +} + +function TournamentBracketsView() { const { t } = useTranslation(["common", "tournament"]); const user = useUser(); const tournament = useTournament(); + const data = useLoaderData(); const ctx = useOutletContext(); + const location = useLocation(); useScrollToMatchOnLoad(); - const defaultBracketIdx = () => { - if ( - tournament.brackets.length === 1 || - tournament.brackets[1].isUnderground || - !tournament.brackets[0].everyMatchOver - ) { - return 0; - } - - return 1; - }; - const [bracketIdxParam, setBracketIdx] = useSearchParam( - tournamentBracketsSearchParams, - "idx", - ); - const bracketIdx = bracketIdxParam ?? defaultBracketIdx(); - - const bracket = React.useMemo( - () => tournament.bracketByIdxOrDefault(bracketIdx), - [tournament, bracketIdx], - ); + const bracket = tournament.bracketByIdx(data.bracketIdx); useWebsocketRevalidation( tournamentWebsocketRoom(tournament.ctx.id), !tournament.ctx.isFinalized, ); - const teamProgressStatus = tournament.teamMemberOfProgressStatus(user); + const teamProgressStatus = data.teamProgressStatus; const showAddSubsButton = !tournament.canFinalize(user) && !tournament.everyBracketOver && @@ -137,20 +153,16 @@ export default function TournamentBracketsPage() { }); }; - const teamsSourceText = () => { - if ( - tournament.brackets[0].type === "round_robin" && - !bracket.isUnderground - ) { + const teamsSourceText = (bracket: BracketType) => { + const firstBracket = tournament.bracketsMeta[0]; + + if (firstBracket.type === "round_robin" && !bracket.isUnderground) { return `Teams that place in the top ${Math.max( ...(bracket.sources ?? []).flatMap((s) => s.placements), )} of their group will advance to this stage`; } - if ( - tournament.brackets[0].type === "round_robin" && - bracket.isUnderground - ) { + if (firstBracket.type === "round_robin" && bracket.isUnderground) { const placements = ( bracket.sources?.flatMap((s) => s.placements) ?? [] ).sort((a, b) => a - b); @@ -158,28 +170,22 @@ export default function TournamentBracketsPage() { return `Teams that don't advance to the final stage can play in this bracket (placements: ${placements.join(", ")})`; } - if ( - tournament.brackets[0].type === "double_elimination" && - bracket.isUnderground - ) { + if (firstBracket.type === "double_elimination" && bracket.isUnderground) { return `Teams that get eliminated in the first ${Math.abs( Math.min(...(bracket.sources ?? []).flatMap((s) => s.placements)), )} rounds of the losers bracket can play in this bracket`; } - if ( - tournament.brackets[0].type === "single_elimination" && - bracket.isUnderground - ) { + if (firstBracket.type === "single_elimination" && bracket.isUnderground) { return `Teams that get eliminated in the first ${Math.abs( Math.min(...(bracket.sources ?? []).flatMap((s) => s.placements)), )} rounds can play in this bracket`; } - const advanceThreshold = tournament.brackets[0].settings?.advanceThreshold; + const advanceThreshold = firstBracket.settings?.advanceThreshold; if ( advanceThreshold && - tournament.ctx.settings.bracketProgression[bracketIdx].sources?.[0] + tournament.ctx.settings.bracketProgression[bracket.idx].sources?.[0] .placements.length === 0 ) { return `Teams that win at least ${advanceThreshold} sets in the Swiss bracket will advance to this stage`; @@ -198,7 +204,9 @@ export default function TournamentBracketsPage() { {showTeamActionsRow ? (
{/** TournamentTeamActions more confusing than helpful for leagues, for example might say "Waiting for match..." when previous match was rescheduled */} - {!tournament.isLeagueDivision ? : null} + {!tournament.isLeagueDivision ? ( + + ) : null} {showAddSubsButton ? : null}
) : null} @@ -206,7 +214,8 @@ export default function TournamentBracketsPage() {
{tournament.canFinalize(user) ? ( } > @@ -224,15 +233,15 @@ export default function TournamentBracketsPage() { ) : null}
) : null} - - {(currentBracket, currentBracketIdx) => ( + + {bracket ? ( - )} + ) : null}
); @@ -265,8 +274,7 @@ function useScrollToMatchOnLoad() { function eligibleTeamCountForBracket( tournament: Tournament, - bracket: BracketType, - bracketIdx: number, + bracket: BracketMeta, ) { if (bracket.sources) { return ( @@ -280,17 +288,13 @@ function eligibleTeamCountForBracket( } return tournament.ctx.teams.filter( - (team) => (team.startingBracketIdx ?? 0) === bracketIdx, + (team) => (team.startingBracketIdx ?? 0) === bracket.idx, ).length; } -function bracketTabTeamCount( - tournament: Tournament, - bracket: BracketType, - bracketIdx: number, -) { +function bracketTabTeamCount(tournament: Tournament, bracket: BracketMeta) { return bracket.preview - ? eligibleTeamCountForBracket(tournament, bracket, bracketIdx) + ? eligibleTeamCountForBracket(tournament, bracket) : bracket.participantTournamentTeamIds.length; } @@ -450,11 +454,11 @@ function AddSubsPopOver() { } const subsAvailableToAdd = - tournament.maxMembersPerTeam - ownedTeam.members.length; + tournament.maxMembersPerTeam - ownedTeam.memberUserIds.length; const inviteLink = `${SENDOU_INK_BASE_URL}${tournamentJoinPage({ tournamentId: tournament.ctx.id, - inviteCode: ownedTeam.inviteCode, + inviteCode: ownedTeam.inviteCode!, })}`; return ( @@ -505,48 +509,61 @@ function SubsPopover({ children }: { children: React.ReactNode }) { ); } +/** + * Bracket switcher. Only the bracket the loader shipped the match data of is rendered; + * switching navigates so that the newly selected bracket's data gets loaded. + */ function BracketTabs({ - bracketIdx, - setBracketIdx, + loadedBracketIdx, children, }: { - bracketIdx: number; - setBracketIdx: (bracketIdx: number) => void; - children: (bracket: BracketType, bracketIdx: number) => React.ReactNode; + loadedBracketIdx: number; + children: React.ReactNode; }) { const tournament = useTournament(); - - const visibleBrackets = tournament.ctx.settings.bracketProgression.filter( - (_, i) => - !tournament.ctx.isFinalized || - !tournament.bracketByIdxOrDefault(i).preview, + const [idxParam, setIdxParam] = useSearchParam( + tournamentBracketsSearchParams, + "idx", ); + const navigation = useNavigation(); + + const visibleBrackets = tournament.visibleBracketsMeta; + + // while the newly selected bracket is being loaded its tab is already the selected one + const pendingIdx = navigation.location + ? tournamentBracketsSearchParams.parse( + new URLSearchParams(navigation.location.search), + ).idx + : null; + const requestedIdx = pendingIdx ?? idxParam ?? loadedBracketIdx; + // the search param can point to a bracket without a tab e.g. one hidden after finalization + const selectedIdx = visibleBrackets.some( + (bracket) => bracket.idx === requestedIdx, + ) + ? requestedIdx + : loadedBracketIdx; const bracketNameForTab = (name: string) => name.replace("bracket", ""); return ( setBracketIdx(Number(key))} + selectedKey={String(selectedIdx)} + onSelectionChange={(key) => setIdxParam(Number(key))} > - {visibleBrackets.map((bracket, i) => ( + {visibleBrackets.map((bracket) => ( {bracketNameForTab(bracket.name)} ))} - {visibleBrackets.map((_, i) => ( - - {children(tournament.bracketByIdxOrDefault(i), i)} + {visibleBrackets.map((bracket) => ( + + {bracket.idx === loadedBracketIdx ? children : } ))} @@ -562,7 +579,7 @@ function BracketTabContent({ bracket: BracketType; bracketIdx: number; waitingForTeamsText: (bracket: BracketType, bracketIdx: number) => string; - teamsSourceText: () => string | null; + teamsSourceText: (bracket: BracketType) => string | null; }) { return ( <> @@ -585,7 +602,7 @@ function BracketTabContent({
{bracket.sources ? (
- {teamsSourceText()} + {teamsSourceText(bracket)}
) : null} {bracket.requiresCheckIn ? ( @@ -694,8 +711,7 @@ function StartBracketAlert({ const abDivisionsStartError = getAbDivisionsStartError(bracket, tournament); const totalTeamsAvailableForTheBracket = eligibleTeamCountForBracket( tournament, - bracket, - bracketIdx, + tournament.bracketsMeta[bracketIdx], ); return ( diff --git a/app/features/tournament-bracket/tournament-bracket-search-params.ts b/app/features/tournament-bracket/tournament-bracket-search-params.ts index 45de23865..96c7d3542 100644 --- a/app/features/tournament-bracket/tournament-bracket-search-params.ts +++ b/app/features/tournament-bracket/tournament-bracket-search-params.ts @@ -3,6 +3,6 @@ import * as SearchParams from "~/modules/search-params/search-params"; import { SP } from "~/modules/search-params/search-params"; export const tournamentBracketsSearchParams = SearchParams.define({ - idx: SP.param(z.number().int().min(0).nullable(), { loader: false }), + idx: SP.param(z.number().int().min(0).nullable(), { loader: true }), group: SP.param(z.number().int().nullable(), { loader: false }), }); diff --git a/app/features/tournament-bracket/tournament-bracket-utils.ts b/app/features/tournament-bracket/tournament-bracket-utils.ts index 16c9695fd..bab049c94 100644 --- a/app/features/tournament-bracket/tournament-bracket-utils.ts +++ b/app/features/tournament-bracket/tournament-bracket-utils.ts @@ -39,8 +39,8 @@ export function tournamentTeamToActiveRosterUserIds( } // they don't need to select active roster as they have no subs - if (team.members.length === teamMinMemberCount) { - return team.members.map((member) => member.userId); + if (team.memberUserIds.length === teamMinMemberCount) { + return team.memberUserIds; } return null; @@ -55,9 +55,9 @@ export function ensureOneStandingPerUser(standings: Standing[]) { ...standing, team: { ...standing.team, - members: standing.team.members.filter((member) => { - if (userIds.has(member.userId)) return false; - userIds.add(member.userId); + memberUserIds: standing.team.memberUserIds.filter((userId) => { + if (userIds.has(userId)) return false; + userIds.add(userId); return true; }), }, diff --git a/app/features/tournament-lfg/actions/to.$id.looking.server.ts b/app/features/tournament-lfg/actions/to.$id.looking.server.ts index 70ba2fc70..22f59b760 100644 --- a/app/features/tournament-lfg/actions/to.$id.looking.server.ts +++ b/app/features/tournament-lfg/actions/to.$id.looking.server.ts @@ -6,6 +6,7 @@ import { requireNotBannedByOrganization } from "~/features/tournament/tournament import { clearTournamentDataCache, tournamentFromDBCached, + tournamentTeamsFullCached, } from "~/features/tournament-bracket/core/Tournament.server"; import { parseFormData } from "~/form/parse.server"; import { errorToastIfFalsy, parseParams } from "~/utils/remix.server"; @@ -65,7 +66,10 @@ export const action = async ({ request, params }: ActionFunctionArgs) => { const team = tournament.teamMemberOfByUser(user); if (team) { - const member = team.members.find((m) => m.userId === user.id); + const teams = await tournamentTeamsFullCached({ tournamentId, user }); + const member = teams + .find((t) => t.id === team.id) + ?.members.find((m) => m.userId === user.id); const canManageTeam = member?.role === "OWNER" || member?.role === "MANAGER"; errorToastIfFalsy( @@ -74,7 +78,7 @@ export const action = async ({ request, params }: ActionFunctionArgs) => { ); errorToastIfFalsy( - team.members.length < tournament.maxMembersPerTeam, + team.memberUserIds.length < tournament.maxMembersPerTeam, "Team is already at max capacity", ); const pickup = await TournamentLFGRepository.startLooking(team.id); diff --git a/app/features/tournament-lfg/loaders/to.$id.looking.server.ts b/app/features/tournament-lfg/loaders/to.$id.looking.server.ts index d200beca9..d646b2a81 100644 --- a/app/features/tournament-lfg/loaders/to.$id.looking.server.ts +++ b/app/features/tournament-lfg/loaders/to.$id.looking.server.ts @@ -2,8 +2,13 @@ import type { LoaderFunctionArgs } from "react-router"; import * as R from "remeda"; import type { Pronouns } from "~/db/tables-json"; import { getUser } from "~/features/auth/core/user.server"; -import { tournamentFromDBCached } from "~/features/tournament-bracket/core/Tournament.server"; +import { + requireTournamentVisible, + tournamentFromDBCached, + tournamentTeamsFullCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import * as UserCardRepository from "~/features/user-card/UserCardRepository.server"; +import * as UserRepository from "~/features/user-page/UserRepository.server"; import type { MainWeaponId } from "~/modules/in-game-lists/types"; import type { SerializeFrom } from "~/utils/remix"; import { parseParams } from "~/utils/remix.server"; @@ -26,6 +31,7 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { tournamentId, user, }); + requireTournamentVisible({ ctx: tournament.ctx, user }); if (!tournament.lfgEnabled) { throw new Response(null, { status: 404 }); @@ -163,9 +169,17 @@ async function resolveOwnTeam({ user, }); - const team = tournament.teamMemberOfByUser(user); + const teamLite = tournament.teamMemberOfByUser(user); + if (!teamLite) return null; + + const teamsFull = await tournamentTeamsFullCached({ tournamentId, user }); + const team = teamsFull.find((t) => t.id === teamLite.id); if (!team) return null; + const plusTiers = await UserRepository.findPlusTiersByUserIds( + team.members.map((m) => m.userId), + ); + const members: LFGGroupMember[] = team.members.map((m) => ({ id: m.userId, username: m.username, @@ -179,7 +193,7 @@ async function resolveOwnTeam({ role: m.role, isStayAsSub: false, weapons: null, - plusTier: m.plusTier, + plusTier: plusTiers.get(m.userId) ?? null, })); return { diff --git a/app/features/tournament-match/actions/to.$id.matches.$mid.server.ts b/app/features/tournament-match/actions/to.$id.matches.$mid.server.ts index 617fa5b5d..f31585fb3 100644 --- a/app/features/tournament-match/actions/to.$id.matches.$mid.server.ts +++ b/app/features/tournament-match/actions/to.$id.matches.$mid.server.ts @@ -10,7 +10,6 @@ import { executeBracketOperation } from "~/features/tournament-bracket/core/exec import * as PickBan from "~/features/tournament-bracket/core/PickBan"; import { clearTournamentDataCache, - type TournamentDataTeam, tournamentFromDB, } from "~/features/tournament-bracket/core/Tournament.server"; import { @@ -86,6 +85,9 @@ export const action: ActionFunction = async ({ params, request }) => { let emitMatchUpdate = false; let emitTournamentUpdate = false; + // true when nothing outside match data (scores, pick/ban events) changed, letting + // broadcast receivers skip revalidating the tournament layout and root loaders + let onlyMatchResultsChanged = false; let setIsOver = false; let endedDroppedMatchIds: number[] = []; let followingMatchIds: number[] = []; @@ -110,6 +112,9 @@ export const action: ActionFunction = async ({ params, request }) => { emitMatchUpdate = true; emitTournamentUpdate = true; + // a set ending (or dropped teams' matches ending) changes bracket state + // the layout ships (bracketsMeta), so only mid-set reports are scoped + onlyMatchResultsChanged = !setIsOver && endedDroppedMatchIds.length === 0; break; } @@ -127,9 +132,7 @@ export const action: ActionFunction = async ({ params, request }) => { const team = tournament.teamById(data.teamId)!; errorToastIfFalsy( - data.roster.every((userId) => - team.members.some((m) => m.userId === userId), - ), + data.roster.every((userId) => team.memberUserIds.includes(userId)), "Invalid roster", ); @@ -239,10 +242,10 @@ export const action: ActionFunction = async ({ params, request }) => { const teamTwo = tournament.teamById(match.opponentTwo!.id!)!; errorToastIfFalsy( data.rosters[0].every((userId) => - teamOne.members.some((m) => m.userId === userId), + teamOne.memberUserIds.includes(userId), ) && data.rosters[1].every((userId) => - teamTwo.members.some((m) => m.userId === userId), + teamTwo.memberUserIds.includes(userId), ), "Invalid roster", ); @@ -299,18 +302,27 @@ export const action: ActionFunction = async ({ params, request }) => { const results = await TournamentMatchRepository.findResultsByMatchId(matchId); - const teamOne = match.opponentOne?.id - ? tournament.teamById(match.opponentOne.id) - : undefined; - const teamTwo = match.opponentTwo?.id - ? tournament.teamById(match.opponentTwo.id) - : undefined; - invariant(teamOne && teamTwo, "Teams are missing"); - invariant( - match.roundMaps && match.opponentOne?.id && match.opponentTwo?.id, - "Missing fields to pick/ban", + match.opponentOne?.id && match.opponentTwo?.id, + "Teams are missing", ); + const mapPools = await TournamentTeamRepository.findMapPoolsByTeamIds([ + match.opponentOne.id, + match.opponentTwo.id, + ]); + const teamOneCtx = tournament.teamById(match.opponentOne.id); + const teamTwoCtx = tournament.teamById(match.opponentTwo.id); + invariant(teamOneCtx && teamTwoCtx, "Teams are missing"); + const teamOne = { + ...teamOneCtx, + mapPool: mapPools.get(match.opponentOne.id) ?? [], + }; + const teamTwo = { + ...teamTwoCtx, + mapPool: mapPools.get(match.opponentTwo.id) ?? [], + }; + + invariant(match.roundMaps, "Missing fields to pick/ban"); const currentPickBanEvents = await TournamentRepository.findPickBanEventsByMatchId(match.id); @@ -349,7 +361,7 @@ export const action: ActionFunction = async ({ params, request }) => { : [], mapList, tieBreakerMapPool: tournament.ctx.tieBreakerMapPool, - teams: [teamOne, teamTwo] as [TournamentDataTeam, TournamentDataTeam], + teams: [teamOne, teamTwo] as [PickBan.MapPoolTeam, PickBan.MapPoolTeam], pickerTeamId, pickBanEvents: currentPickBanEvents, }; @@ -435,6 +447,7 @@ export const action: ActionFunction = async ({ params, request }) => { } emitMatchUpdate = true; + onlyMatchResultsChanged = true; break; } @@ -668,6 +681,10 @@ export const action: ActionFunction = async ({ params, request }) => { .map((followingMatch) => followingMatch.id); } + const revalidateScope = onlyMatchResultsChanged + ? ("MATCH_RESULTS" as const) + : undefined; + if (emitMatchUpdate) { const otherMatchIdsToRevalidate = Array.from( new Set([...endedDroppedMatchIds, ...followingMatchIds]), @@ -678,11 +695,13 @@ export const action: ActionFunction = async ({ params, request }) => { room: tournamentMatchWebsocketRoom(matchId), type: "TOURNAMENT_MATCH_UPDATED", revalidateOnly: true, + revalidateScope, }, ...otherMatchIdsToRevalidate.map((id) => ({ room: tournamentMatchWebsocketRoom(id), type: "TOURNAMENT_MATCH_UPDATED" as const, revalidateOnly: true as const, + revalidateScope, })), ]); } @@ -692,6 +711,7 @@ export const action: ActionFunction = async ({ params, request }) => { room: tournamentWebsocketRoom(tournament.ctx.id), type: "TOURNAMENT_UPDATED", revalidateOnly: true, + revalidateScope, }, ]); } diff --git a/app/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx b/app/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx index f07cdc06f..706923311 100644 --- a/app/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx +++ b/app/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx @@ -6,11 +6,10 @@ import { import { useUser } from "~/features/auth/core/user"; import { useTournament } from "~/features/tournament/routes/to.$id"; import * as PickBan from "~/features/tournament-bracket/core/PickBan"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; import { modesShort } from "~/modules/in-game-lists/modes"; import type { ModeShort, StageId } from "~/modules/in-game-lists/types"; import type { TournamentMatchLoaderData } from "../loaders/to.$id.matches.$mid.server"; -import { useMatch } from "../match-page-context"; +import { type MatchPageTeam, useMatch } from "../match-page-context"; import { UndoReportButton } from "./TournamentMatchActionTab"; type FromIndicator = NonNullable; @@ -21,7 +20,7 @@ export function TournamentMatchActionPickBanTab({ turnOfResult, }: { data: TournamentMatchLoaderData; - teams: [TournamentDataTeam, TournamentDataTeam]; + teams: [MatchPageTeam, MatchPageTeam]; turnOfResult: PickBan.TurnOfResult; }) { const user = useUser(); diff --git a/app/features/tournament-match/components/TournamentMatchActionTab.tsx b/app/features/tournament-match/components/TournamentMatchActionTab.tsx index 7ece46f95..afe01dc18 100644 --- a/app/features/tournament-match/components/TournamentMatchActionTab.tsx +++ b/app/features/tournament-match/components/TournamentMatchActionTab.tsx @@ -14,7 +14,7 @@ import { tournamentTeamToActiveRosterUserIds } from "~/features/tournament-brack import { databaseTimestampToJavascriptTimestamp } from "~/utils/dates"; import type { CommonUser } from "~/utils/kysely.server"; import type { TournamentMatchLoaderData } from "../loaders/to.$id.matches.$mid.server"; -import { useMatch } from "../match-page-context"; +import { type MatchPageTeam, useMatch } from "../match-page-context"; export function TournamentMatchActionTab({ data, @@ -55,9 +55,7 @@ export function TournamentMatchActionTab({ if (!teamOne || !teamTwo) return null; - const withKo = tournament.bracketByIdxOrDefault( - tournament.matchIdToBracketIdx(data.match.id) ?? 0, - ).collectsKos; + const withKo = data.bracketContext.collectsKos; const count = data.match.roundMaps.count; const countType = data.match.roundMaps.type; @@ -86,7 +84,6 @@ export function TournamentMatchActionTab({ setEndingTeamIds.length > 0 ? { ...buildSetEndingData({ - tournament, teams: [teamOne, teamTwo], scores, results: data.results, @@ -103,12 +100,12 @@ export function TournamentMatchActionTab({ { id: teamOne.id, name: teamOne.name, - avatar: tournament.tournamentTeamLogoSrc(teamOne) ?? undefined, + avatar: teamOne.logoUrl ?? undefined, }, { id: teamTwo.id, name: teamTwo.name, - avatar: tournament.tournamentTeamLogoSrc(teamTwo) ?? undefined, + avatar: teamTwo.logoUrl ?? undefined, }, ]} ownTeamId={ownTeamId} @@ -220,24 +217,19 @@ function useTournamentWeaponReport({ const activeRoster = tournamentTeamToActiveRosterUserIds(team, tournament.minMembersPerTeam) ?? - team.members.map((m) => m.userId); + team.memberUserIds; return activeRoster.includes(viewerUserId); } } function buildSetEndingData({ - tournament, teams, scores, results, opponentOneId, }: { - tournament: ReturnType; - teams: [ - NonNullable["teamById"]>>, - NonNullable["teamById"]>>, - ]; + teams: [MatchPageTeam, MatchPageTeam]; scores: [number, number]; results: TournamentMatchLoaderData["results"]; opponentOneId: number; @@ -299,9 +291,7 @@ function buildSetEndingData({ }; }); - const activeRosterUsers = ( - team: NonNullable["teamById"]>>, - ): CommonUser[] => { + const activeRosterUsers = (team: MatchPageTeam): CommonUser[] => { const activeIds = team.activeRosterUserIds; const members = activeIds ? team.members.filter((m) => activeIds.includes(m.userId)) @@ -313,11 +303,11 @@ function buildSetEndingData({ teams: { alpha: { name: teamOne.name, - avatar: tournament.tournamentTeamLogoSrc(teamOne) ?? undefined, + avatar: teamOne.logoUrl ?? undefined, }, bravo: { name: teamTwo.name, - avatar: tournament.tournamentTeamLogoSrc(teamTwo) ?? undefined, + avatar: teamTwo.logoUrl ?? undefined, }, }, score: { alpha: scores[0], bravo: scores[1] }, diff --git a/app/features/tournament-match/components/TournamentMatchAdminTab.tsx b/app/features/tournament-match/components/TournamentMatchAdminTab.tsx index a654ce9e6..71720af96 100644 --- a/app/features/tournament-match/components/TournamentMatchAdminTab.tsx +++ b/app/features/tournament-match/components/TournamentMatchAdminTab.tsx @@ -17,9 +17,8 @@ import { SubmitButton } from "~/components/SubmitButton"; import { useUser } from "~/features/auth/core/user"; import { useTournament } from "~/features/tournament/routes/to.$id"; import type { MatchStatus } from "~/features/tournament-bracket/core/engine"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; import type { TournamentMatchLoaderData } from "../loaders/to.$id.matches.$mid.server"; -import { useMatch } from "../match-page-context"; +import { type MatchPageTeam, useMatch } from "../match-page-context"; import { OrganizerMatchMapListDialog } from "./OrganizerMatchMapListDialog"; import styles from "./TournamentMatchAdminTab.module.css"; @@ -38,9 +37,7 @@ export function TournamentMatchAdminTab({ const isOrganizer = tournament.isOrganizer(user); const canReopen = - isOrganizer && - data.matchIsOver && - tournament.matchCanBeReopened(data.match.id); + isOrganizer && data.matchIsOver && data.bracketContext.canBeReopened; const canEndSet = isOrganizer && !data.matchIsOver && data.match.startedAt !== null; @@ -256,11 +253,7 @@ function ReopenMatchButton() { ); } -function EndSetPopover({ - teams, -}: { - teams: [TournamentDataTeam, TournamentDataTeam]; -}) { +function EndSetPopover({ teams }: { teams: [MatchPageTeam, MatchPageTeam] }) { const { t } = useTranslation(["tournament"]); const [selectedWinner, setSelectedWinner] = React.useState< number | null | undefined @@ -344,14 +337,11 @@ function EditReportedScoresSection({ teams, }: { data: TournamentMatchLoaderData; - teams: [TournamentDataTeam, TournamentDataTeam]; + teams: [MatchPageTeam, MatchPageTeam]; }) { const { t } = useTranslation(["tournament"]); - const tournament = useTournament(); - const withKo = tournament.bracketByIdxOrDefault( - tournament.matchIdToBracketIdx(data.match.id) ?? 0, - ).collectsKos; + const withKo = data.bracketContext.collectsKos; return (
@@ -379,7 +369,7 @@ function EditReportedScoreRow({ }: { index: number; result: TournamentMatchLoaderData["results"][number]; - teams: [TournamentDataTeam, TournamentDataTeam]; + teams: [MatchPageTeam, MatchPageTeam]; withKo: boolean; }) { const { t } = useTranslation(["common", "game-misc", "tournament"]); @@ -452,7 +442,7 @@ function EditReportedScoreForm({ }: { fetcher: ReturnType; result: TournamentMatchLoaderData["results"][number]; - teams: [TournamentDataTeam, TournamentDataTeam]; + teams: [MatchPageTeam, MatchPageTeam]; withKo: boolean; minMembersPerTeam: number; onCancel: () => void; diff --git a/app/features/tournament-match/components/TournamentMatchBanner.tsx b/app/features/tournament-match/components/TournamentMatchBanner.tsx index 5129fdba0..f42bf05e6 100644 --- a/app/features/tournament-match/components/TournamentMatchBanner.tsx +++ b/app/features/tournament-match/components/TournamentMatchBanner.tsx @@ -25,10 +25,6 @@ import { MatchBannerTimer } from "~/components/match-page/MatchBannerTimer"; import { MatchBannerTopRow } from "~/components/match-page/MatchBannerTopRow"; import type { TournamentRoundMaps } from "~/db/tables-json"; import { useTournament } from "~/features/tournament/routes/to.$id"; -import { - isLeagueRoundLocked, - resolveLeagueRoundStartDate, -} from "~/features/tournament/tournament-utils"; import * as PickBan from "~/features/tournament-bracket/core/PickBan"; import { useDateTimeFormat } from "~/hooks/intl/useDateTimeFormat"; import { useAutoRerender } from "~/hooks/useAutoRerender"; @@ -67,7 +63,7 @@ export function TournamentMatchBanner({ const host = hostingTeam ? { name: hostingTeam.name, - avatarUrl: tournament.tournamentTeamLogoSrc(hostingTeam) ?? undefined, + avatarUrl: hostingTeam.logoUrl ?? undefined, } : null; @@ -80,9 +76,9 @@ export function TournamentMatchBanner({ tournament, }); - const leagueRoundLocked = isLeagueRoundLocked(tournament, data.match.roundId); - const leagueRoundStartDate = leagueRoundLocked - ? resolveLeagueRoundStartDate(tournament, data.match.roundId) + const { leagueRoundLocked } = data.bracketContext; + const leagueRoundStartDate = data.bracketContext.leagueRoundStartDate + ? databaseTimestampToDate(data.bracketContext.leagueRoundStartDate) : null; const pickBanBanner = resolvePickBanBanner(data, tournament, t); @@ -94,7 +90,7 @@ export function TournamentMatchBanner({ : undefined; const activeRosterByTeamId = (tournamentTeamId: number) => { - const team = tournament.teamById(tournamentTeamId); + const team = teams.find((t) => t?.id === tournamentTeamId); if (!team) return null; const activeRosterUserIds = team.activeRosterUserIds; @@ -326,7 +322,7 @@ function CurrentMapPickInfo({ {teams.map((team) => ( diff --git a/app/features/tournament-match/components/TournamentMatchHeader.tsx b/app/features/tournament-match/components/TournamentMatchHeader.tsx index b321df294..f88b5ea0b 100644 --- a/app/features/tournament-match/components/TournamentMatchHeader.tsx +++ b/app/features/tournament-match/components/TournamentMatchHeader.tsx @@ -13,9 +13,7 @@ export function TournamentMatchHeader({ }) { const tournament = useTournament(); - const { bracketName, roundName } = tournament.matchContextNamesById( - data.match.id, - ); + const { bracketName, roundName } = data.bracketContext.names; return ( ); - function rosterTeamData( - team: NonNullable>, - ) { + function rosterTeamData(team: MatchPageTeam) { const subbedOut = !data.matchIsOver && team.activeRosterUserIds && - team.members.length > tournament.minMembersPerTeam - ? team.members - .filter((m) => !team.activeRosterUserIds!.includes(m.userId)) - .map((m) => m.userId) + team.memberUserIds.length > tournament.minMembersPerTeam + ? team.memberUserIds.filter( + (userId) => !team.activeRosterUserIds!.includes(userId), + ) : undefined; return { @@ -353,7 +347,7 @@ function TournamentMatchRosterTab({ tournamentId: tournament.ctx.id, tournamentTeamId: team.id, }), - avatar: tournament.tournamentTeamLogoSrc(team) ?? undefined, + avatar: team.logoUrl ?? undefined, }, members: team.members.map((m) => ({ id: m.userId, @@ -369,19 +363,15 @@ function TournamentMatchRosterTab({ }; } - function canEditSubbedOutForTeam( - team: NonNullable>, - ) { + function canEditSubbedOutForTeam(team: MatchPageTeam) { if (data.matchIsOver) return false; - if (team.members.length <= tournament.minMembersPerTeam) return false; + if (team.memberUserIds.length <= tournament.minMembersPerTeam) return false; - const isMemberOfTeam = team.members.some((m) => m.userId === user?.id); + const isMemberOfTeam = user ? team.memberUserIds.includes(user.id) : false; return isMemberOfTeam || tournament.isOrganizer(user); } - function needsActiveRosterSelection( - team: NonNullable>, - ) { + function needsActiveRosterSelection(team: MatchPageTeam) { if (!canEditSubbedOutForTeam(team)) return false; return !tournamentTeamToActiveRosterUserIds( team, @@ -390,12 +380,12 @@ function TournamentMatchRosterTab({ } function handleSubbedOutChange(teamId: number, subbedOut: number[]) { - const team = tournament.teamById(teamId); + const team = [teamOne, teamTwo].find((t) => t?.id === teamId); if (!team) return; - const activeRoster = team.members - .filter((m) => !subbedOut.includes(m.userId)) - .map((m) => m.userId); + const activeRoster = team.memberUserIds.filter( + (userId) => !subbedOut.includes(userId), + ); fetcher.submit( { diff --git a/app/features/tournament-match/core/executeRoll.server.ts b/app/features/tournament-match/core/executeRoll.server.ts index 6612441f7..ce33aa7e9 100644 --- a/app/features/tournament-match/core/executeRoll.server.ts +++ b/app/features/tournament-match/core/executeRoll.server.ts @@ -1,7 +1,6 @@ import type { TournamentRoundMaps } from "~/db/tables-json"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; import * as PickBan from "~/features/tournament-bracket/core/PickBan"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; import type { ModeWithStage } from "~/modules/in-game-lists/types"; import invariant from "~/utils/invariant"; import { seededRandom } from "~/utils/random"; @@ -24,7 +23,7 @@ export async function executeRoll({ >; results: Awaited>; tournamentId: number; - teams: [TournamentDataTeam, TournamentDataTeam]; + teams: [PickBan.MapPoolTeam, PickBan.MapPoolTeam]; tieBreakerMapPool: ModeWithStage[]; }): Promise { const customFlow = maps.customFlow; diff --git a/app/features/tournament-match/core/mapList.server.ts b/app/features/tournament-match/core/mapList.server.ts index 427aebde9..0bb782fe1 100644 --- a/app/features/tournament-match/core/mapList.server.ts +++ b/app/features/tournament-match/core/mapList.server.ts @@ -123,11 +123,16 @@ export async function resolveMatchMapList({ }) : undefined; + const mapPools = + match.mapPickingStyle !== "TO" + ? await TournamentTeamRepository.findMapPoolsByTeamIds(teams) + : new Map>(); + return resolveMapList({ tournamentId: match.tournamentId, matchId: match.id, teams, - mapPoolByTeamId: (teamId) => tournament.teamById(teamId)?.mapPool ?? [], + mapPoolByTeamId: (teamId) => mapPools.get(teamId) ?? [], mapPickingStyle: match.mapPickingStyle, maps: match.roundMaps, tieBreakerMapPool: tournament.ctx.tieBreakerMapPool, diff --git a/app/features/tournament-match/loaders/to.$id.matches.$mid.server.ts b/app/features/tournament-match/loaders/to.$id.matches.$mid.server.ts index ea861d192..0d4247fae 100644 --- a/app/features/tournament-match/loaders/to.$id.matches.$mid.server.ts +++ b/app/features/tournament-match/loaders/to.$id.matches.$mid.server.ts @@ -6,15 +6,23 @@ import { chatAccessible } from "~/features/chat/chat-utils"; import * as ReportedWeaponRepository from "~/features/sendouq-match/ReportedWeaponRepository.server"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; import * as TournamentTeamRepository from "~/features/tournament/TournamentTeamRepository.server"; -import { isLeagueRoundLocked } from "~/features/tournament/tournament-utils"; +import { + isLeagueRoundLocked, + resolveLeagueRoundStartDate, +} from "~/features/tournament/tournament-utils"; import { matchEndedEarly } from "~/features/tournament-bracket/core/engine"; import * as PickBan from "~/features/tournament-bracket/core/PickBan"; -import { tournamentFromDBCached } from "~/features/tournament-bracket/core/Tournament.server"; +import { + requireTournamentVisible, + tournamentFromDBCached, + tournamentTeamsFullCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import { matchPageParamsSchema } from "~/features/tournament-bracket/tournament-bracket-schemas.server"; import { tournamentTeamToActiveRosterUserIds } from "~/features/tournament-bracket/tournament-bracket-utils"; import * as UserCardRepository from "~/features/user-card/UserCardRepository.server"; import * as UserRepository from "~/features/user-page/UserRepository.server"; import { cache, IN_MILLISECONDS, ttl } from "~/utils/cache.server"; +import { dateToDatabaseTimestamp } from "~/utils/dates"; import { IS_E2E_TEST_RUN } from "~/utils/e2e"; import { logger } from "~/utils/logger"; import type { SerializeFrom } from "~/utils/remix"; @@ -36,6 +44,11 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { tournamentId, user: undefined, }); + requireTournamentVisible({ ctx: tournament.ctx, user }); + + const teamsFull = await tournamentTeamsFullCached({ tournamentId, user }); + const teamFullById = (tournamentTeamId: number) => + teamsFull.find((team) => team.id === tournamentTeamId); const match = notFoundIfNullish( await TournamentMatchRepository.findMatchById(matchId), @@ -75,8 +88,8 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { resultsCount: results.length, }); if (currentStep?.action === "ROLL") { - const teamOne = tournament.teamById(match.opponentOne.id); - const teamTwo = tournament.teamById(match.opponentTwo.id); + const teamOne = teamFullById(match.opponentOne.id); + const teamTwo = teamFullById(match.opponentTwo.id); if (teamOne && teamTwo) { const rollExecuted = await executeRoll({ matchId, @@ -121,8 +134,7 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { tournamentId, matchId, teams: [match.opponentOne.id, match.opponentTwo.id], - mapPoolByTeamId: (teamId) => - tournament.teamById(teamId)?.mapPool ?? [], + mapPoolByTeamId: (teamId) => teamFullById(teamId)?.mapPool ?? [], mapPickingStyle: match.mapPickingStyle, maps: match.roundMaps, tieBreakerMapPool: tournament.ctx.tieBreakerMapPool, @@ -165,13 +177,13 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { tournamentTeamToActiveRosterUserIds( teamAlpha, tournament.minMembersPerTeam, - ) ?? teamAlpha.members.map((m) => m.userId); + ) ?? teamAlpha.memberUserIds; const teamBravo = tournament.teamById(match.opponentTwo.id)!; const teamBravoActiveRoster = tournamentTeamToActiveRosterUserIds( teamBravo, tournament.minMembersPerTeam, - ) ?? teamBravo.members.map((m) => m.userId); + ) ?? teamBravo.memberUserIds; const playerIds = [...teamAlphaActiveRoster, ...teamBravoActiveRoster]; @@ -206,12 +218,24 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { hasPermsToSeeChat && !chatCodeExpired ? match.chatCode : undefined; const isParticipant = match.players.some((p) => p.id === user?.id); + const leagueRoundLocked = isLeagueRoundLocked(tournament, match.roundId); const canJoin = !matchIsOver && match.opponentOne?.id != null && match.opponentTwo?.id != null && (isParticipant || tournament.isOrganizerOrStreamer(user)) && - !isLeagueRoundLocked(tournament, match.roundId); + !leagueRoundLocked; + + const bracketIdx = tournament.matchIdToBracketIdx(matchId); + const bracket = + typeof bracketIdx === "number" ? tournament.bracketByIdx(bracketIdx) : null; + const leagueRoundStartDate = leagueRoundLocked + ? resolveLeagueRoundStartDate( + tournament, + bracket ?? undefined, + match.roundId, + ) + : null; return { ...(await UserCardRepository.findAllByUserIds({ @@ -228,11 +252,35 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { results, reportedWeapons, mapList, + teams: [match.opponentOne?.id, match.opponentTwo?.id].flatMap( + (tournamentTeamId) => { + const team = tournamentTeamId ? teamFullById(tournamentTeamId) : null; + return team ? [team] : []; + }, + ), matchIsOver, endedEarly, noScreen, chatCode: visibleChatCode, canJoin, + // the views can't derive these themselves, the layout ships no bracket match data + bracketContext: { + bracketIdx, + bracketType: bracket?.type ?? null, + collectsKos: bracket?.collectsKos ?? false, + groupNumber: + bracket?.data.group.find((group) => group.id === match.groupId) + ?.number ?? null, + hasRoundRobin: tournament.bracketsMeta.some( + (meta) => meta.type === "round_robin", + ), + names: tournament.matchContextNamesById(matchId), + canBeReopened: tournament.matchCanBeReopened(matchId), + leagueRoundLocked, + leagueRoundStartDate: leagueRoundStartDate + ? dateToDatabaseTimestamp(leagueRoundStartDate) + : null, + }, pickBanEventCount: pickBanEvents.length, pickBanEvents: pickBanEvents.map((e) => ({ type: e.type, diff --git a/app/features/tournament-match/match-page-context.tsx b/app/features/tournament-match/match-page-context.tsx index 7d4f45245..194e62afd 100644 --- a/app/features/tournament-match/match-page-context.tsx +++ b/app/features/tournament-match/match-page-context.tsx @@ -3,7 +3,6 @@ import { TAB_KEYS } from "~/components/match-page/MatchTabs"; import { resolveRoomPass } from "~/components/match-page/utils"; import { useUser } from "~/features/auth/core/user"; import { useTournament } from "~/features/tournament/routes/to.$id"; -import { isLeagueRoundLocked } from "~/features/tournament/tournament-utils"; import * as PickBan from "~/features/tournament-bracket/core/PickBan"; import type { Tournament } from "~/features/tournament-bracket/core/Tournament"; import { @@ -13,7 +12,12 @@ import { import type { TournamentMatchLoaderData } from "./loaders/to.$id.matches.$mid.server"; import { matchIsLocked, resolveHostingTeam } from "./tournament-match-utils"; -export type MatchPageTeam = NonNullable>; +/** + * One of the match's two teams: the tournament wide lite team (with its resolved seed) + * plus the roster and map pool that the match loader ships for these two teams only. + */ +export type MatchPageTeam = NonNullable> & + Pick; export type MatchTabKey = (typeof TAB_KEYS)[keyof typeof TAB_KEYS]; @@ -54,9 +58,23 @@ export function MatchPageProvider({ const opponentOneId = data.match.opponentOne?.id; const opponentTwoId = data.match.opponentTwo?.id; + const teamById = (tournamentTeamId: number | null | undefined) => { + if (!tournamentTeamId) return null; + + const team = tournament.teamById(tournamentTeamId); + const withRoster = data.teams.find((t) => t.id === tournamentTeamId); + if (!team || !withRoster) return null; + + return { + ...team, + members: withRoster.members, + mapPool: withRoster.mapPool, + }; + }; + const teams: [MatchPageTeam | null, MatchPageTeam | null] = [ - (opponentOneId ? tournament.teamById(opponentOneId) : null) ?? null, - (opponentTwoId ? tournament.teamById(opponentTwoId) : null) ?? null, + teamById(opponentOneId), + teamById(opponentTwoId), ]; const [teamOne, teamTwo] = teams; @@ -122,7 +140,7 @@ export function MatchPageProvider({ isPickBanStep, isAdminEligible: tournament.isOrganizerOrStreamer(user) && !tournament.ctx.isFinalized, - leagueRoundLocked: isLeagueRoundLocked(tournament, data.match.roundId), + leagueRoundLocked: data.bracketContext.leagueRoundLocked, lockedForCast, waitingForPreviousMatch, }); @@ -252,24 +270,17 @@ function resolveJoinInfo({ const hostingTeam = resolveHostingTeam([teamOne, teamTwo]); - const hasRoundRobin = tournament.brackets.some( - (b) => b.type === "round_robin", - ); - const bracketIdx = tournament.brackets.findIndex((b) => - b.data.match.some((m) => m.id === data.match.id), - ); - const bracket = tournament.brackets[bracketIdx]; - const bracketMatch = bracket?.data.match.find((m) => m.id === data.match.id); - const group = bracket?.data.group.find((g) => g.id === bracketMatch?.groupId); + const { bracketIdx, bracketType, groupNumber, hasRoundRobin } = + data.bracketContext; const poolCode = tournament.resolvePoolCode({ hostingTeamId: hostingTeam.id, groupLetters: - group && bracket?.type === "round_robin" - ? groupNumberToLetters(group.number) + typeof groupNumber === "number" && bracketType === "round_robin" + ? groupNumberToLetters(groupNumber) : undefined, bracketNumber: - hasRoundRobin && bracket?.type !== "round_robin" + hasRoundRobin && bracketType !== "round_robin" && bracketIdx !== null ? bracketIdx + 1 : undefined, }); diff --git a/app/features/tournament/TournamentRepository.server.ts b/app/features/tournament/TournamentRepository.server.ts index 1774e32b9..7070a4f53 100644 --- a/app/features/tournament/TournamentRepository.server.ts +++ b/app/features/tournament/TournamentRepository.server.ts @@ -2,6 +2,7 @@ import { sub } from "date-fns"; import { type Insertable, type NotNull, sql, type Transaction } from "kysely"; import { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/sqlite"; import { ordinal } from "openskill"; +import * as R from "remeda"; import { db } from "~/db/sql"; import type { DB, Tables } from "~/db/tables"; import type { @@ -33,13 +34,6 @@ import { updatedCastedMatchesInfo } from "./tournament-utils"; export type FindById = NonNullable>; export async function findById(id: number) { - const isSetAsRanked = await db - .selectFrom("Tournament") - .select("settings") - .where("id", "=", id) - .executeTakeFirst() - .then((row) => row?.settings.isRanked ?? false); - const result = await db .selectFrom("Tournament") .innerJoin("CalendarEvent", "Tournament.id", "CalendarEvent.tournamentId") @@ -161,9 +155,15 @@ export async function findById(id: number) { eb .selectFrom("TournamentTeam") .leftJoin( - "UserSubmittedImage", + "UserSubmittedImage as PickupAvatar", "TournamentTeam.avatarImgId", - "UserSubmittedImage.id", + "PickupAvatar.id", + ) + .leftJoin("AllTeam", "AllTeam.id", "TournamentTeam.teamId") + .leftJoin( + "UserSubmittedImage as TeamAvatar", + "AllTeam.avatarImgId", + "TeamAvatar.id", ) .select(({ eb: innerEb }) => [ "TournamentTeam.id", @@ -171,51 +171,54 @@ export async function findById(id: number) { "TournamentTeam.seed", "TournamentTeam.prefersNotToHost", "TournamentTeam.droppedOut", - "TournamentTeam.inviteCode", "TournamentTeam.createdAt", + "TournamentTeam.inviteCode", "TournamentTeam.activeRosterUserIds", "TournamentTeam.startingBracketIdx", "TournamentTeam.abDivision", - "TournamentTeam.avatarImgId", - concatUserSubmittedImagePrefix( - innerEb.ref("UserSubmittedImage.url"), - ).as("pickupAvatarUrl"), + concatUserSubmittedImagePrefix(innerEb.ref("TeamAvatar.url")).as( + "teamLogoUrl", + ), + concatUserSubmittedImagePrefix(innerEb.ref("PickupAvatar.url")).as( + "pickupAvatarUrl", + ), + sql /*sql*/`exists( + select 1 from "MapPoolMap" + where "MapPoolMap"."tournamentTeamId" = "TournamentTeam"."id" + )`.as("hasMapPool"), + innerEb + .selectFrom("TournamentTeamMember") + .innerJoin("SeedingSkill", (join) => + join + .onRef( + "SeedingSkill.userId", + "=", + "TournamentTeamMember.userId", + ) + .on( + "SeedingSkill.type", + "=", + sql< + Tables["SeedingSkill"]["type"] + > /*sql*/`case when json_extract("Tournament"."settings", '$.isRanked') = 1 then 'RANKED' else 'UNRANKED' end`, + ), + ) + .select(({ fn }) => + fn.avg("SeedingSkill.ordinal").as("v"), + ) + .whereRef( + "TournamentTeamMember.tournamentTeamId", + "=", + "TournamentTeam.id", + ) + .as("avgSeedingSkillOrdinal"), jsonArrayFrom( innerEb .selectFrom("TournamentTeamMember") - .innerJoin("User", "TournamentTeamMember.userId", "User.id") - .leftJoin("SeedingSkill", (join) => - join - .onRef("User.id", "=", "SeedingSkill.userId") - .on( - "SeedingSkill.type", - "=", - isSetAsRanked ? "RANKED" : "UNRANKED", - ), - ) - .leftJoin("PlusTier", "PlusTier.userId", "User.id") - .leftJoin("LiveStream", "LiveStream.userId", "User.id") - .select((eb) => [ - "User.id as userId", - "User.username", - "User.discordId", - "User.discordAvatar", - "User.customUrl", - "User.country", - "User.twitch", - "SeedingSkill.ordinal", - "PlusTier.tier as plusTier", + .select([ + "TournamentTeamMember.userId", "TournamentTeamMember.role", "TournamentTeamMember.createdAt", - "TournamentTeamMember.isSub", - sql /*sql*/`coalesce( - "TournamentTeamMember"."inGameName", - "User"."inGameName" - )`.as("inGameName"), - "LiveStream.twitch as streamTwitch", - "LiveStream.viewerCount as streamViewerCount", - "LiveStream.thumbnailUrl as streamThumbnailUrl", - customAvatarUrl(eb).as("customAvatarUrl"), ]) .whereRef( "TournamentTeamMember.tournamentTeamId", @@ -239,34 +242,6 @@ export async function findById(id: number) { "TournamentTeam.id", ), ).as("checkIns"), - jsonArrayFrom( - innerEb - .selectFrom("MapPoolMap") - .whereRef( - "MapPoolMap.tournamentTeamId", - "=", - "TournamentTeam.id", - ) - .select(["MapPoolMap.stageId", "MapPoolMap.mode"]), - ).as("mapPool"), - jsonObjectFrom( - innerEb - .selectFrom("AllTeam") - .leftJoin( - "UserSubmittedImage", - "AllTeam.avatarImgId", - "UserSubmittedImage.id", - ) - .whereRef("AllTeam.id", "=", "TournamentTeam.teamId") - .select((eb) => [ - "AllTeam.id", - "AllTeam.customUrl", - concatUserSubmittedImagePrefix( - eb.ref("UserSubmittedImage.url"), - ).as("logoUrl"), - "AllTeam.deletedAt", - ]), - ).as("team"), ]) .where("TournamentTeam.tournamentId", "=", id) .where("TournamentTeam.isPlaceholder", "=", 0) @@ -290,40 +265,6 @@ export async function findById(id: number) { .select(["MapPoolMap.mode", "MapPoolMap.stageId"]) .whereRef("MapPoolMap.calendarEventId", "=", "CalendarEvent.id"), ).as("toSetMapPool"), - jsonArrayFrom( - eb - .selectFrom("TournamentStage") - .innerJoin( - "TournamentMatch", - "TournamentMatch.stageId", - "TournamentStage.id", - ) - .innerJoin( - "TournamentMatchGameResult", - "TournamentMatch.id", - "TournamentMatchGameResult.matchId", - ) - .innerJoin( - "TournamentMatchGameResultParticipant", - "TournamentMatchGameResult.id", - "TournamentMatchGameResultParticipant.matchGameResultId", - ) - .select("TournamentMatchGameResultParticipant.userId") - .groupBy("TournamentMatchGameResultParticipant.userId") - .where("TournamentStage.tournamentId", "=", id), - ).as("participatedUsers"), - jsonArrayFrom( - eb - .selectFrom("LiveStream") - .select([ - "LiveStream.twitch", - "LiveStream.viewerCount", - "LiveStream.thumbnailUrl", - ]) - .where( - sql`"LiveStream"."twitch" IN (SELECT value FROM json_each("Tournament"."castTwitchAccounts"))`, - ), - ).as("castStreams"), ]) .where("Tournament.id", "=", id) .$narrowType<{ author: NotNull }>() @@ -333,19 +274,306 @@ export async function findById(id: number) { return { ...result, - teams: result.teams.map((team) => ({ + teams: result.teams.map(({ members, ...team }) => ({ ...team, - members: team.members.map(({ ordinal, ...member }) => member), - avgSeedingSkillOrdinal: nullifyingAvg( - team.members - .map((member) => member.ordinal) - .filter((ordinal) => typeof ordinal === "number"), - ), + avgSeedingSkillOrdinal: + typeof team.avgSeedingSkillOrdinal === "number" + ? Math.round(team.avgSeedingSkillOrdinal * 100) / 100 + : null, + memberUserIds: members.map((member) => member.userId), + ownerUserId: + members.find((member) => member.role === "OWNER")?.userId ?? null, })), - participatedUsers: result.participatedUsers.map((user) => user.userId), + latestTeamIdByDuplicatedUserId: latestTeamIdByDuplicatedUserId( + result.teams, + ), }; } +/** + * User ids of everyone on multiple teams' rosters mapped to the team they joined + * most recently. Nearly always empty, allowing the teams to drop per member join + * timestamps that only this tiebreak needed. + */ +function latestTeamIdByDuplicatedUserId( + teams: Array<{ + id: number; + members: Array<{ userId: number; createdAt: number }>; + }>, +) { + const latestByUserId = new Map< + number, + { teamId: number; joinedAt: number } + >(); + const duplicatedUserIds = new Set(); + + for (const team of teams) { + for (const member of team.members) { + const existing = latestByUserId.get(member.userId); + if (existing) { + duplicatedUserIds.add(member.userId); + } + if (!existing || member.createdAt > existing.joinedAt) { + latestByUserId.set(member.userId, { + teamId: team.id, + joinedAt: member.createdAt, + }); + } + } + } + + const result: Record = {}; + for (const userId of duplicatedUserIds) { + result[userId] = latestByUserId.get(userId)!.teamId; + } + + return result; +} + +/** + * Live streams of the tournament: streams of checked-in participants and the streams + * of the tournament's cast Twitch accounts. Kept out of {@link findById} so the + * frequently changing stream data does not live in the cached tournament context. + */ +export async function findStreamsByTournamentId(tournamentId: number) { + const [participantStreams, castStreams] = await Promise.all([ + db + .selectFrom("LiveStream") + .innerJoin( + "TournamentTeamMember", + "TournamentTeamMember.userId", + "LiveStream.userId", + ) + .innerJoin( + "TournamentTeam", + "TournamentTeam.id", + "TournamentTeamMember.tournamentTeamId", + ) + .innerJoin("User", "User.id", "LiveStream.userId") + .select((eb) => [ + "LiveStream.userId", + "LiveStream.twitch", + "LiveStream.viewerCount", + "LiveStream.thumbnailUrl", + "TournamentTeam.name as teamName", + ...commonUserSelect(eb), + ]) + .where("TournamentTeam.tournamentId", "=", tournamentId) + .where("TournamentTeam.isPlaceholder", "=", 0) + .where("LiveStream.twitch", "is not", null) + .where(({ exists, selectFrom }) => + exists( + selectFrom("TournamentTeamCheckIn") + .select("TournamentTeamCheckIn.tournamentTeamId") + .whereRef( + "TournamentTeamCheckIn.tournamentTeamId", + "=", + "TournamentTeam.id", + ), + ), + ) + .groupBy("LiveStream.userId") + .$narrowType<{ userId: NotNull; twitch: NotNull }>() + .execute(), + db + .selectFrom("LiveStream") + .select([ + "LiveStream.twitch", + "LiveStream.viewerCount", + "LiveStream.thumbnailUrl", + ]) + .where( + sql`"LiveStream"."twitch" IN (SELECT value FROM json_each((SELECT "castTwitchAccounts" FROM "Tournament" WHERE "Tournament"."id" = ${tournamentId})))`, + ) + .execute(), + ]); + + return { participantStreams, castStreams }; +} + +/** User ids of everyone who played at least one map of the tournament. */ +export async function findParticipatedUserIdsById(tournamentId: number) { + const rows = await db + .selectFrom("TournamentStage") + .innerJoin( + "TournamentMatch", + "TournamentMatch.stageId", + "TournamentStage.id", + ) + .innerJoin( + "TournamentMatchGameResult", + "TournamentMatch.id", + "TournamentMatchGameResult.matchId", + ) + .innerJoin( + "TournamentMatchGameResultParticipant", + "TournamentMatchGameResult.id", + "TournamentMatchGameResultParticipant.matchGameResultId", + ) + .select("TournamentMatchGameResultParticipant.userId") + .groupBy("TournamentMatchGameResultParticipant.userId") + .where("TournamentStage.tournamentId", "=", tournamentId) + .execute(); + + return rows.map((row) => row.userId); +} + +export type TeamFull = Unwrapped; + +/** + * Full rosters of a tournament's teams: per member profile data, map pools and + * invite codes. Kept out of {@link findById} because the tournament layout ships + * the lite team shape only — views that render rosters load these separately. + */ +export async function findTeamsFullByTournamentId(tournamentId: number) { + const teams = await db + .selectFrom("TournamentTeam") + .innerJoin("Tournament", "Tournament.id", "TournamentTeam.tournamentId") + .leftJoin( + "UserSubmittedImage as PickupAvatar", + "TournamentTeam.avatarImgId", + "PickupAvatar.id", + ) + .select((eb) => [ + "TournamentTeam.id", + "TournamentTeam.name", + "TournamentTeam.seed", + "TournamentTeam.prefersNotToHost", + "TournamentTeam.droppedOut", + "TournamentTeam.inviteCode", + "TournamentTeam.createdAt", + "TournamentTeam.activeRosterUserIds", + "TournamentTeam.startingBracketIdx", + "TournamentTeam.abDivision", + "TournamentTeam.avatarImgId", + concatUserSubmittedImagePrefix(eb.ref("PickupAvatar.url")).as( + "pickupAvatarUrl", + ), + jsonArrayFrom( + eb + .selectFrom("TournamentTeamMember") + .innerJoin("User", "TournamentTeamMember.userId", "User.id") + .leftJoin("SeedingSkill", (join) => + join + .onRef("User.id", "=", "SeedingSkill.userId") + .on( + "SeedingSkill.type", + "=", + sql< + Tables["SeedingSkill"]["type"] + > /*sql*/`case when json_extract("Tournament"."settings", '$.isRanked') = 1 then 'RANKED' else 'UNRANKED' end`, + ), + ) + .select((eb) => [ + "User.id as userId", + "User.username", + "User.discordId", + "User.discordAvatar", + "User.customUrl", + "User.country", + "SeedingSkill.ordinal", + "TournamentTeamMember.role", + "TournamentTeamMember.createdAt", + "TournamentTeamMember.isSub", + sql /*sql*/`coalesce( + "TournamentTeamMember"."inGameName", + "User"."inGameName" + )`.as("inGameName"), + customAvatarUrl(eb).as("customAvatarUrl"), + ]) + .whereRef( + "TournamentTeamMember.tournamentTeamId", + "=", + "TournamentTeam.id", + ) + .orderBy(sql`"TournamentTeamMember"."role" = 'OWNER'`, "desc") + .orderBy("TournamentTeamMember.createdAt", "asc"), + ).as("members"), + jsonArrayFrom( + eb + .selectFrom("TournamentTeamCheckIn") + .select([ + "TournamentTeamCheckIn.bracketIdx", + "TournamentTeamCheckIn.checkedInAt", + "TournamentTeamCheckIn.isCheckOut", + ]) + .whereRef( + "TournamentTeamCheckIn.tournamentTeamId", + "=", + "TournamentTeam.id", + ), + ).as("checkIns"), + jsonArrayFrom( + eb + .selectFrom("MapPoolMap") + .whereRef("MapPoolMap.tournamentTeamId", "=", "TournamentTeam.id") + .select(["MapPoolMap.stageId", "MapPoolMap.mode"]), + ).as("mapPool"), + jsonObjectFrom( + eb + .selectFrom("AllTeam") + .leftJoin( + "UserSubmittedImage", + "AllTeam.avatarImgId", + "UserSubmittedImage.id", + ) + .whereRef("AllTeam.id", "=", "TournamentTeam.teamId") + .select((eb) => [ + "AllTeam.id", + "AllTeam.customUrl", + concatUserSubmittedImagePrefix(eb.ref("UserSubmittedImage.url")).as( + "logoUrl", + ), + "AllTeam.deletedAt", + ]), + ).as("team"), + ]) + .where("TournamentTeam.tournamentId", "=", tournamentId) + .where("TournamentTeam.isPlaceholder", "=", 0) + .orderBy("TournamentTeam.seed", "asc") + .orderBy("TournamentTeam.createdAt", "asc") + .orderBy("TournamentTeam.id", "asc") + .execute(); + + return teams.map((team) => ({ + ...team, + members: team.members.map(({ ordinal, ...member }) => member), + avgSeedingSkillOrdinal: nullifyingAvg( + team.members + .map((member) => member.ordinal) + .filter((ordinal) => typeof ordinal === "number"), + ), + })); +} + +/** + * Twitch accounts of the given tournaments' participants who have not dropped out. + * Kept out of {@link findById} since only the live stream sync routine needs them. + */ +export async function findParticipantTwitchAccounts(tournamentIds: number[]) { + if (tournamentIds.length === 0) return []; + + return db + .selectFrom("TournamentTeamMember") + .innerJoin( + "TournamentTeam", + "TournamentTeam.id", + "TournamentTeamMember.tournamentTeamId", + ) + .innerJoin("User", "User.id", "TournamentTeamMember.userId") + .select([ + "TournamentTeam.tournamentId", + "TournamentTeamMember.userId", + "User.twitch", + ]) + .where("TournamentTeam.tournamentId", "in", tournamentIds) + .where("TournamentTeam.isPlaceholder", "=", 0) + .where("TournamentTeam.droppedOut", "=", 0) + .where("User.twitch", "is not", null) + .$narrowType<{ twitch: NotNull }>() + .execute(); +} + /** * Loads a tournament's rules markdown. Kept out of {@link findById} since it can * be large and is only needed on the tournament's rules page. @@ -448,6 +676,24 @@ export function findChildTournamentsForDivCalc(parentTournamentId: number) { .execute(); } +/** + * Per-user results of a finalized tournament as persisted at finalization time. + * Empty for tournaments that have not been finalized. + */ +export function findResultsByTournamentId(tournamentId: number) { + return db + .selectFrom("TournamentResult") + .select([ + "TournamentResult.tournamentTeamId", + "TournamentResult.userId", + "TournamentResult.placement", + "TournamentResult.div", + ]) + .where("TournamentResult.tournamentId", "=", tournamentId) + .orderBy("TournamentResult.placement", "asc") + .execute(); +} + /** * User ids eligible for a LUTI division placement in the given tournament: they have a result, were * on a team that did not drop out, and played at least one match. @@ -1356,14 +1602,9 @@ export async function searchByName({ 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 @@ -1380,9 +1621,32 @@ export function updateTeamSeeds({ .execute(); } + const memberRows = + teamIds.length > 0 + ? await trx + .selectFrom("TournamentTeamMember") + .innerJoin("User", "User.id", "TournamentTeamMember.userId") + .select([ + "TournamentTeamMember.tournamentTeamId", + "User.id as userId", + "User.username", + ]) + .where("TournamentTeamMember.tournamentTeamId", "in", teamIds) + .execute() + : []; + + const membersByTeamId = R.groupBy( + memberRows, + (member) => member.tournamentTeamId, + ); const snapshot = JSON.stringify({ savedAt: databaseTimestampNow(), - teams: teamsWithMembers, + teams: teamIds.map((teamId) => ({ + teamId, + members: (membersByTeamId[teamId] ?? []).map( + ({ userId, username }) => ({ userId, username }), + ), + })), }); await trx .updateTable("Tournament") diff --git a/app/features/tournament/TournamentTeamRepository.server.ts b/app/features/tournament/TournamentTeamRepository.server.ts index b407d9da3..17b0b01f5 100644 --- a/app/features/tournament/TournamentTeamRepository.server.ts +++ b/app/features/tournament/TournamentTeamRepository.server.ts @@ -1,4 +1,4 @@ -import type { Transaction } from "kysely"; +import type { NotNull, Transaction } from "kysely"; import { sql } from "kysely"; import { db } from "~/db/sql"; import type { DB, Tables } from "~/db/tables"; @@ -930,6 +930,37 @@ export function findByInviteCode(inviteCode: string) { .executeTakeFirst(); } +/** Map pools of the given tournament teams, keyed by tournament team id. */ +export async function findMapPoolsByTeamIds(tournamentTeamIds: number[]) { + const rows = await db + .selectFrom("MapPoolMap") + .select([ + "MapPoolMap.tournamentTeamId", + "MapPoolMap.stageId", + "MapPoolMap.mode", + ]) + .where("MapPoolMap.tournamentTeamId", "in", tournamentTeamIds) + .$narrowType<{ tournamentTeamId: NotNull }>() + .execute(); + + const result = new Map< + number, + Array<{ mode: ModeShort; stageId: StageId }> + >(); + for (const row of rows) { + const existing = result.get(row.tournamentTeamId); + if (existing) { + existing.push({ mode: row.mode, stageId: row.stageId }); + } else { + result.set(row.tournamentTeamId, [ + { mode: row.mode, stageId: row.stageId }, + ]); + } + } + + return result; +} + export async function findRecentlyPlayedMapsByIds({ teamIds, limit = 5, diff --git a/app/features/tournament/actions/to.$id.join.server.ts b/app/features/tournament/actions/to.$id.join.server.ts index 0beb13831..87c9f5f77 100644 --- a/app/features/tournament/actions/to.$id.join.server.ts +++ b/app/features/tournament/actions/to.$id.join.server.ts @@ -52,7 +52,7 @@ export const action: ActionFunction = async ({ params, url }) => { (team) => team.id === leanTeam.id, ); const previousTeam = tournament.ctx.teams.find((team) => - team.members.some((member) => member.userId === user.id), + team.memberUserIds.includes(user.id), ); errorToastIfFalsy( diff --git a/app/features/tournament/actions/to.$id.register.server.ts b/app/features/tournament/actions/to.$id.register.server.ts index 6833c3e92..5b6d43188 100644 --- a/app/features/tournament/actions/to.$id.register.server.ts +++ b/app/features/tournament/actions/to.$id.register.server.ts @@ -146,7 +146,7 @@ export const action: ActionFunction = async ({ request, params }) => { case "DELETE_TEAM_MEMBER": { errorToastIfFalsy(ownTeam, "You are not registered to this tournament"); errorToastIfFalsy( - ownTeam.members.some((member) => member.userId === data.userId), + ownTeam.memberUserIds.includes(data.userId), "User is not in your team", ); errorToastIfFalsy(data.userId !== user.id, "Can't kick yourself"); @@ -155,7 +155,7 @@ export const action: ActionFunction = async ({ request, params }) => { // and then having members kicked without it affecting the checking in status errorToastIfFalsy( !ownTeamCheckedIn || - ownTeam.members.length > tournament.minMembersPerTeam, + ownTeam.memberUserIds.length > tournament.minMembersPerTeam, "Can't kick a member after checking in", ); @@ -249,8 +249,8 @@ export const action: ActionFunction = async ({ request, params }) => { } case "ADD_PLAYER": { errorToastIfFalsy( - tournament.ctx.teams.every((team) => - team.members.every((member) => member.userId !== data.userId), + tournament.ctx.teams.every( + (team) => !team.memberUserIds.includes(data.userId), ), "User is already in a team", ); @@ -329,11 +329,11 @@ export const action: ActionFunction = async ({ request, params }) => { await TournamentTeamRepository.deleteById(ownTeam.id); - for (const member of ownTeam.members) { + for (const userId of ownTeam.memberUserIds) { ShowcaseTournaments.removeFromCached({ tournamentId, type: "participant", - userId: member.userId, + userId, }); ShowcaseTournaments.updateCachedTournamentTeamCount({ diff --git a/app/features/tournament/components/TeamWithRoster.tsx b/app/features/tournament/components/TeamWithRoster.tsx index 6f92a41fc..ca6faadb8 100644 --- a/app/features/tournament/components/TeamWithRoster.tsx +++ b/app/features/tournament/components/TeamWithRoster.tsx @@ -4,7 +4,7 @@ import { Avatar } from "~/components/Avatar"; import { ModeImage, StageImage } from "~/components/Image"; import type { Tables } from "~/db/tables"; import { useUser } from "~/features/auth/core/user"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; +import type { TournamentTeamFull } from "~/features/tournament-bracket/core/Tournament.server"; import { userPage } from "~/utils/urls"; import { accountCreatedInTheLastSixMonths } from "~/utils/users"; import { useTournament, useTournamentFriendCodes } from "../routes/to.$id"; @@ -18,7 +18,7 @@ export function TeamWithRoster({ teamPageUrl, activePlayers, }: { - team: TournamentDataTeam; + team: TournamentTeamFull; mapPool?: Array> | null; seed?: number; bracketLabel?: string; @@ -29,14 +29,12 @@ export function TeamWithRoster({ const tournament = useTournament(); const friendCodes = useTournamentFriendCodes(); - const teamLogoSrc = tournament.tournamentTeamLogoSrc(team); - return (
- + {seed ? (
{bracketLabel ? `${bracketLabel} ` : null}#{seed} diff --git a/app/features/tournament/components/TournamentNav.tsx b/app/features/tournament/components/TournamentNav.tsx index 83f2297cc..9a31d919e 100644 --- a/app/features/tournament/components/TournamentNav.tsx +++ b/app/features/tournament/components/TournamentNav.tsx @@ -63,13 +63,19 @@ const PRIORITY_ORDER: NavItemKey[] = [ export function TournamentNav({ tournament, + streamsCount, hasChildTournaments, }: { tournament: Tournament; + streamsCount: number; hasChildTournaments: boolean; }) { const { t } = useTranslation(["tournament"]); - const navItems = useNavItems({ tournament, hasChildTournaments }); + const navItems = useNavItems({ + tournament, + streamsCount, + hasChildTournaments, + }); const { visibleCount, containerRef, measureRef } = useNavOverflow( navItems.length, ); @@ -145,9 +151,11 @@ export function TournamentNav({ function useNavItems({ tournament, + streamsCount, hasChildTournaments, }: { tournament: Tournament; + streamsCount: number; hasChildTournaments: boolean; }): NavItem[] { const { t } = useTranslation(["tournament"]); @@ -212,7 +220,7 @@ function useNavItems({ items.streams = { key: "streams", label: t("tournament:nav.streams", { - count: tournament.streams.length, + count: streamsCount, }), to: "streams", icon: , diff --git a/app/features/tournament/components/TournamentStream.tsx b/app/features/tournament/components/TournamentStream.tsx index d43f2477f..357c36099 100644 --- a/app/features/tournament/components/TournamentStream.tsx +++ b/app/features/tournament/components/TournamentStream.tsx @@ -15,10 +15,6 @@ export function TournamentStream({ withThumbnail?: boolean; }) { const tournament = useTournament(); - const team = tournament.ctx.teams.find((team) => - team.members.some((m) => m.userId === stream.userId), - ); - const user = team?.members.find((m) => m.userId === stream.userId); return (
) : null}
- {user && team ? ( + {stream.user ? (
- {user.username} + {stream.user.username} - {team.name} + {stream.teamName}
) : ( diff --git a/app/features/tournament/core/Standings.ts b/app/features/tournament/core/Standings.ts index 9207ae067..013ccedbb 100644 --- a/app/features/tournament/core/Standings.ts +++ b/app/features/tournament/core/Standings.ts @@ -154,6 +154,74 @@ export function matchesPlayed({ }); } +type PersistedResultRow = { + tournamentTeamId: number; + userId: number; + placement: number; + div: string | null; +}; + +/** + * Standings of a finalized tournament reconstructed from the per-user results persisted at + * finalization, instead of recomputing them from bracket match data. Returns null when the + * persisted rows cannot back the standings (no rows, a team no longer in the tournament + * context, or a division label the progression no longer produces) so the caller can fall + * back to {@link tournamentStandings}. + */ +export function standingsFromPersistedResults({ + tournament, + results, +}: { + tournament: Tournament; + results: PersistedResultRow[]; +}): TournamentStandingsResult | null { + if (results.length === 0) return null; + + const standings: Array = []; + + for (const rows of Object.values( + R.groupBy(results, (row) => row.tournamentTeamId), + )) { + const team = tournament.teamById(rows[0].tournamentTeamId); + if (!team) return null; + + standings.push({ + team: { ...team, memberUserIds: rows.map((row) => row.userId) }, + placement: rows[0].placement, + div: rows[0].div, + }); + } + + const sorted = R.sortBy( + standings, + (standing) => standing.placement, + (standing) => standing.team.seed ?? Number.POSITIVE_INFINITY, + ); + + if (sorted.every((standing) => standing.div === null)) { + return { type: "single", standings: sorted }; + } + + const progression = tournament.ctx.settings.bracketProgression; + const divs = Progression.hasAbDivisionsFinals(progression) + ? ["A", "B"] + : Progression.startingBrackets(progression).map((bracketIdx) => + getBracketProgressionLabel(bracketIdx, progression), + ); + const hasUnknownDiv = sorted.some( + (standing) => standing.div === null || !divs.includes(standing.div), + ); + if (hasUnknownDiv) return null; + + return { + type: "multi", + standings: divs.map((div) => ({ + div, + standings: sorted.filter((standing) => standing.div === div), + })), + }; +} + /** * Computes the standings for a given tournament by aggregating results from relevant brackets. * diff --git a/app/features/tournament/core/layout-payload.ts b/app/features/tournament/core/layout-payload.ts new file mode 100644 index 000000000..a6f371599 --- /dev/null +++ b/app/features/tournament/core/layout-payload.ts @@ -0,0 +1,68 @@ +import type { TournamentLoaderData } from "../loaders/to.$id.server"; + +/** + * Team keys that {@link serializeTournamentLoaderData} drops when null and + * {@link parseTournamentLoaderData} restores. Null for most teams, so dropping + * them trims the layout payload of big tournaments by a few gzipped kilobytes. + */ +const NULL_COMPACTED_TEAM_KEYS = [ + "seed", + "inviteCode", + "logoUrl", + "activeRosterUserIds", + "startingBracketIdx", + "abDivision", + "avgSeedingSkillOrdinal", + "ownerUserId", +] as const; + +type LayoutTeam = TournamentLoaderData["tournament"]["ctx"]["teams"][number]; + +/** + * Serializes the tournament layout loader data, omitting null-valued team keys. + * Counterpart of {@link parseTournamentLoaderData}, the only way the payload + * should be read. + */ +export function serializeTournamentLoaderData( + data: TournamentLoaderData, +): string { + // JSON.stringify so that we skip expensive rr7 data serialization (hot path loader) + return JSON.stringify({ + ...data, + tournament: { + ...data.tournament, + ctx: { + ...data.tournament.ctx, + teams: data.tournament.ctx.teams.map(compactTeamNulls), + }, + }, + }); +} + +/** + * Parses the tournament layout loader data serialized by + * {@link serializeTournamentLoaderData}, restoring the null team keys it omitted. + */ +export function parseTournamentLoaderData(raw: string): TournamentLoaderData { + const data = JSON.parse(raw) as TournamentLoaderData; + + for (const team of data.tournament.ctx.teams) { + const teamRecord = team as Record; + for (const key of NULL_COMPACTED_TEAM_KEYS) { + teamRecord[key] ??= null; + } + } + + return data; +} + +function compactTeamNulls(team: LayoutTeam) { + const compacted: Record = { ...team }; + for (const key of NULL_COMPACTED_TEAM_KEYS) { + if (compacted[key] === null) { + delete compacted[key]; + } + } + + return compacted as unknown as LayoutTeam; +} diff --git a/app/features/tournament/loaders/to.$id.info.server.ts b/app/features/tournament/loaders/to.$id.info.server.ts index 28ea524e3..15e615c17 100644 --- a/app/features/tournament/loaders/to.$id.info.server.ts +++ b/app/features/tournament/loaders/to.$id.info.server.ts @@ -2,6 +2,10 @@ import type { LoaderFunctionArgs } from "react-router"; import { getUser } from "~/features/auth/core/user.server"; import * as SavedCalendarEventRepository from "~/features/tournament/SavedCalendarEventRepository.server"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; +import { + requireTournamentVisible, + tournamentDataCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import { parseParams } from "~/utils/remix.server"; import { idObject } from "~/utils/zod"; @@ -12,6 +16,9 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { schema: idObject, }); + const { ctx } = await tournamentDataCached({ tournamentId }); + requireTournamentVisible({ ctx, user }); + const description = await TournamentRepository.findDescriptionById(tournamentId); diff --git a/app/features/tournament/loaders/to.$id.register.server.ts b/app/features/tournament/loaders/to.$id.register.server.ts index aa4327e1e..83fd34876 100644 --- a/app/features/tournament/loaders/to.$id.register.server.ts +++ b/app/features/tournament/loaders/to.$id.register.server.ts @@ -3,7 +3,11 @@ import { getUser } from "~/features/auth/core/user.server"; import * as SQGroupRepository from "~/features/sendouq/SQGroupRepository.server"; import * as TeamRepository from "~/features/team/TeamRepository.server"; import * as SavedCalendarEventRepository from "~/features/tournament/SavedCalendarEventRepository.server"; -import { tournamentFromDBCached } from "~/features/tournament-bracket/core/Tournament.server"; +import { + requireTournamentVisible, + tournamentFromDBCached, + tournamentTeamsFullCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import { parseParams } from "~/utils/remix.server"; import { idObject } from "~/utils/zod"; @@ -17,10 +21,13 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { }); const tournament = await tournamentFromDBCached({ tournamentId, user }); - const ownTeam = tournament.ownedTeamByUser(user); + requireTournamentVisible({ ctx: tournament.ctx, user }); - if (!ownTeam) { + const teamMemberOf = tournament.teamMemberOfByUser(user); + + if (!teamMemberOf) { return { + ownTeam: null, mapPool: null, friendPlayers: null, teams: await TeamRepository.findAllMemberOfByUserId(user.id), @@ -31,8 +38,14 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { }; } + const ownTeam = + (await tournamentTeamsFullCached({ tournamentId, user })).find( + (team) => team.id === teamMemberOf.id, + ) ?? null; + return { - mapPool: ownTeam.mapPool, + ownTeam, + mapPool: ownTeam?.mapPool ?? null, friendPlayers: await SQGroupRepository.findFriendsAndTeammates(user.id), teams: await TeamRepository.findAllMemberOfByUserId(user.id), isSaved: false, diff --git a/app/features/tournament/loaders/to.$id.results.server.ts b/app/features/tournament/loaders/to.$id.results.server.ts new file mode 100644 index 000000000..0b92f82c6 --- /dev/null +++ b/app/features/tournament/loaders/to.$id.results.server.ts @@ -0,0 +1,76 @@ +import type { LoaderFunctionArgs } from "react-router"; +import { getUser } from "~/features/auth/core/user.server"; +import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; +import type { Standing } from "~/features/tournament-bracket/core/Bracket"; +import { + requireTournamentVisible, + tournamentSharedCached, + tournamentTeamsFullCached, +} from "~/features/tournament-bracket/core/Tournament.server"; +import type { SerializeFrom } from "~/utils/remix"; +import { parseParams } from "~/utils/remix.server"; +import { idObject } from "~/utils/zod"; +import * as Standings from "../core/Standings"; + +export type TournamentResultsLoaderData = SerializeFrom; + +export const loader = async ({ params }: LoaderFunctionArgs) => { + const { id: tournamentId } = parseParams({ params, schema: idObject }); + + const tournament = await tournamentSharedCached(tournamentId); + requireTournamentVisible({ ctx: tournament.ctx, user: getUser() }); + + const teams = await tournamentTeamsFullCached({ tournamentId }); + + const rosterByTeamId = new Map( + teams.map((team) => [ + team.id, + team.members.map((member) => ({ + userId: member.userId, + username: member.username, + country: member.country, + })), + ]), + ); + + const toRow = (standings: Standing[]) => (standing: Standing) => ({ + placement: standing.placement, + spr: Standings.calculateSPR({ standings, teamId: standing.team.id }), + team: { + id: standing.team.id, + name: standing.team.name, + seed: standing.team.seed, + logoUrl: standing.team.logoUrl, + }, + roster: (rosterByTeamId.get(standing.team.id) ?? []).filter((member) => + standing.team.memberUserIds.includes(member.userId), + ), + matches: Standings.matchesPlayed({ tournament, teamId: standing.team.id }), + }); + + const persistedStandings = tournament.ctx.isFinalized + ? Standings.standingsFromPersistedResults({ + tournament, + results: + await TournamentRepository.findResultsByTournamentId(tournamentId), + }) + : null; + const result = + persistedStandings ?? Standings.tournamentStandings(tournament); + + return { + standings: + result.type === "single" + ? { + type: "single" as const, + standings: result.standings.map(toRow(result.standings)), + } + : { + type: "multi" as const, + standings: result.standings.map(({ div, standings }) => ({ + div, + standings: standings.map(toRow(standings)), + })), + }, + }; +}; diff --git a/app/features/tournament/loaders/to.$id.rules.server.ts b/app/features/tournament/loaders/to.$id.rules.server.ts index e003b71c4..a4e361511 100644 --- a/app/features/tournament/loaders/to.$id.rules.server.ts +++ b/app/features/tournament/loaders/to.$id.rules.server.ts @@ -1,5 +1,10 @@ import type { LoaderFunctionArgs } from "react-router"; +import { getUser } from "~/features/auth/core/user.server"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; +import { + requireTournamentVisible, + tournamentDataCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import { parseParams } from "~/utils/remix.server"; import { idObject } from "~/utils/zod"; @@ -9,6 +14,9 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { schema: idObject, }); + const { ctx } = await tournamentDataCached({ tournamentId }); + requireTournamentVisible({ ctx, user: getUser() }); + return { rules: await TournamentRepository.findRulesById(tournamentId), }; diff --git a/app/features/tournament/loaders/to.$id.server.ts b/app/features/tournament/loaders/to.$id.server.ts index d3a64e405..807785096 100644 --- a/app/features/tournament/loaders/to.$id.server.ts +++ b/app/features/tournament/loaders/to.$id.server.ts @@ -6,15 +6,22 @@ import { LEAGUES, TOURNAMENT, } from "~/features/tournament/tournament-constants"; -import { tournamentDataCached } from "~/features/tournament-bracket/core/Tournament.server"; +import { isTournamentOrganizer } from "~/features/tournament-bracket/core/Tournament"; +import { + bracketsMetaCached, + requireTournamentVisible, + type TournamentLayoutData, + tournamentDataCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import * as TournamentMatchVodRepository from "~/features/tournament-bracket/TournamentMatchVodRepository.server"; import { databaseTimestampToDate } from "~/utils/dates"; import { parseParams } from "~/utils/remix.server"; import { idObject } from "~/utils/zod"; +import { serializeTournamentLoaderData } from "../core/layout-payload"; export type TournamentLoaderData = { - tournament: Awaited>; - streamingParticipants: number[]; + tournament: TournamentLayoutData; + /** Count for the streams tab badge; the streams view loads the actual streams itself. */ streamsCount: number; hasChildTournaments: boolean; friendCodes: @@ -36,6 +43,7 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { }); const tournament = await tournamentDataCached({ tournamentId, user }); + requireTournamentVisible({ ctx: tournament.ctx, user }); const friendCodeVisibilityDays = tournament.ctx.parentTournamentId ? 120 : 30; const tournamentStartedRecently = isAfter( @@ -51,18 +59,6 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { tournament.ctx.organization?.members.some( (m) => m.userId === user?.id && m.role === "ADMIN", ); - const isTournamentOrganizer = - isTournamentAdmin || - tournament.ctx.staff.some( - (s) => s.role === "ORGANIZER" && s.id === user?.id, - ) || - tournament.ctx.organization?.members.some( - (m) => m.userId === user?.id && m.role === "ORGANIZER", - ); - if (tournament.ctx.settings.isDraft && !isTournamentOrganizer) { - throw new Response(null, { status: 404 }); - } - const showFriendCodes = tournamentStartedRecently && isTournamentAdmin; const isLeagueSignup = Object.values(LEAGUES) @@ -79,15 +75,19 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { subDays(new Date(), TOURNAMENT.VOD_VISIBILITY_DAYS), ); - // skip expensive rr7 data serialization (hot path loader) - return JSON.stringify({ - tournament, + return serializeTournamentLoaderData({ + tournament: { + ctx: tournament.ctx, + bracketsMeta: await bracketsMetaCached(tournamentId), + }, + streamsCount: tournament.streams.length, hasChildTournaments, friendCodes: showFriendCodes ? await TournamentRepository.findFriendCodesByTournamentId(tournamentId) : undefined, preparedMaps: - isTournamentOrganizer && !tournament.ctx.isFinalized + isTournamentOrganizer({ ctx: tournament.ctx, user }) && + !tournament.ctx.isFinalized ? await TournamentRepository.findPreparedMapsById(tournamentId) : undefined, vods: showVods diff --git a/app/features/tournament/loaders/to.$id.streams.server.ts b/app/features/tournament/loaders/to.$id.streams.server.ts new file mode 100644 index 000000000..3c4e73a1a --- /dev/null +++ b/app/features/tournament/loaders/to.$id.streams.server.ts @@ -0,0 +1,21 @@ +import type { LoaderFunctionArgs } from "react-router"; +import { getUser } from "~/features/auth/core/user.server"; +import { + fetchTournamentStreams, + requireTournamentVisible, + tournamentSharedCached, +} from "~/features/tournament-bracket/core/Tournament.server"; +import type { SerializeFrom } from "~/utils/remix"; +import { parseParams } from "~/utils/remix.server"; +import { idObject } from "~/utils/zod"; + +export type TournamentStreamsLoaderData = SerializeFrom; + +export const loader = async ({ params }: LoaderFunctionArgs) => { + const { id: tournamentId } = parseParams({ params, schema: idObject }); + + const tournament = await tournamentSharedCached(tournamentId); + requireTournamentVisible({ ctx: tournament.ctx, user: getUser() }); + + return { streams: await fetchTournamentStreams(tournamentId) }; +}; diff --git a/app/features/tournament/loaders/to.$id.teams.$tid.server.ts b/app/features/tournament/loaders/to.$id.teams.$tid.server.ts index 19074f6d4..f1a218d20 100644 --- a/app/features/tournament/loaders/to.$id.teams.$tid.server.ts +++ b/app/features/tournament/loaders/to.$id.teams.$tid.server.ts @@ -1,23 +1,38 @@ import type { LoaderFunctionArgs } from "react-router"; -import { tournamentDataCached } from "~/features/tournament-bracket/core/Tournament.server"; +import { getUser } from "~/features/auth/core/user.server"; +import { + requireTournamentVisible, + tournamentDataCached, + tournamentSharedCached, + tournamentTeamsFullCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import { tournamentTeamPageParamsSchema } from "~/features/tournament-bracket/tournament-bracket-schemas.server"; import * as TournamentMatchRepository from "~/features/tournament-match/TournamentMatchRepository.server"; import invariant from "~/utils/invariant"; +import type { SerializeFrom } from "~/utils/remix"; import { parseParams } from "~/utils/remix.server"; +import * as Standings from "../core/Standings"; import { type AllRoundsItem, tournamentTeamSets, winCounts, } from "../core/sets.server"; +export type TournamentTeamLoaderData = SerializeFrom; + export const loader = async ({ params }: LoaderFunctionArgs) => { const { id: tournamentId, tid: tournamentTeamId } = parseParams({ params, schema: tournamentTeamPageParamsSchema, }); + const user = getUser(); const tournament = await tournamentDataCached({ tournamentId }); - const team = tournament?.ctx.teams.find((t) => t.id === tournamentTeamId); + requireTournamentVisible({ ctx: tournament.ctx, user }); + + const team = (await tournamentTeamsFullCached({ tournamentId, user })).find( + (t) => t.id === tournamentTeamId, + ); const tournamentHasStarted = (tournament?.data.stage.length ?? 0) > 0; if (!team || (tournamentHasStarted && team.checkIns.length === 0)) { throw new Response(null, { status: 404 }); @@ -42,9 +57,47 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { const sets = tournamentTeamSets({ sets: setHistory, allRounds }); + const fullTournament = await tournamentSharedCached(tournamentId); + const standingsResult = Standings.tournamentStandings(fullTournament); + const overallStandings = Standings.flattenStandings(standingsResult); + const undergroundBracketIdx = fullTournament.bracketsMeta.find( + (bracket) => bracket.isUnderground, + )?.idx; + return { tournamentTeamId, - sets, + team, + activePlayers: + sets.length > 0 + ? fullTournament.participatedPlayerUserIdsByTeamId(tournamentTeamId) + : undefined, + tournamentName: tournament.ctx.name, + sets: sets.map((set) => ({ + ...set, + // the layout ships no bracket match data, so the names can't be derived in the view + matchContextNames: fullTournament.matchContextNamesById( + set.tournamentMatchId, + ), + })), winCounts: winCounts(sets), + division: + standingsResult.type === "multi" + ? (standingsResult.standings.find((div) => + div.standings.some( + (standing) => standing.team.id === tournamentTeamId, + ), + )?.div ?? null) + : null, + placement: overallStandings.find( + (standing) => standing.team.id === tournamentTeamId, + )?.placement, + undergroundPlacement: + typeof undergroundBracketIdx === "number" + ? fullTournament + .bracketByIdx(undergroundBracketIdx) + ?.standings.find( + (standing) => standing.team.id === tournamentTeamId, + )?.placement + : undefined, }; }; diff --git a/app/features/tournament/loaders/to.$id.teams.server.ts b/app/features/tournament/loaders/to.$id.teams.server.ts new file mode 100644 index 000000000..0ed05ba9b --- /dev/null +++ b/app/features/tournament/loaders/to.$id.teams.server.ts @@ -0,0 +1,43 @@ +import type { LoaderFunctionArgs } from "react-router"; +import { getUser } from "~/features/auth/core/user.server"; +import { + requireTournamentVisible, + tournamentSharedCached, + tournamentTeamsFullInSeedOrder, +} from "~/features/tournament-bracket/core/Tournament.server"; +import type { SerializeFrom } from "~/utils/remix"; +import { paginate, parseParams } from "~/utils/remix.server"; +import { idObject } from "~/utils/zod"; +import { tournamentTeamsSearchParams } from "../tournament-search-params"; + +export type TournamentTeamsLoaderData = SerializeFrom; + +/** How many rosters are rendered (and shipped) per page of the teams tab. */ +const TEAMS_PAGE_SIZE = 50; + +export const loader = async ({ request, params, url }: LoaderFunctionArgs) => { + const user = getUser(); + const { id: tournamentId } = parseParams({ params, schema: idObject }); + const { page } = tournamentTeamsSearchParams.parse(request); + + const tournament = await tournamentSharedCached(tournamentId); + requireTournamentVisible({ ctx: tournament.ctx, user }); + + const teams = await tournamentTeamsFullInSeedOrder({ tournament, user }); + + const { currentPage, pagesCount } = paginate({ + url, + page, + pageSize: TEAMS_PAGE_SIZE, + totalCount: teams.length, + }); + + return { + teams: teams.slice( + (currentPage - 1) * TEAMS_PAGE_SIZE, + currentPage * TEAMS_PAGE_SIZE, + ), + currentPage, + pagesCount, + }; +}; diff --git a/app/features/tournament/routes/to.$id.index.ts b/app/features/tournament/routes/to.$id.index.ts index 61e10fd2d..695db5699 100644 --- a/app/features/tournament/routes/to.$id.index.ts +++ b/app/features/tournament/routes/to.$id.index.ts @@ -1,5 +1,9 @@ import { type LoaderFunctionArgs, redirect } from "react-router"; -import { tournamentFromDBCached } from "~/features/tournament-bracket/core/Tournament.server"; +import { getUser } from "~/features/auth/core/user.server"; +import { + requireTournamentVisible, + tournamentFromDBCached, +} from "~/features/tournament-bracket/core/Tournament.server"; import { parseParams } from "~/utils/remix.server"; import { tournamentBracketsPage, @@ -18,6 +22,7 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { tournamentId, user: undefined, }); + requireTournamentVisible({ ctx: tournament.ctx, user: getUser() }); if (!tournament.hasStarted) { return redirect(tournamentInfoPage(tournamentId)); diff --git a/app/features/tournament/routes/to.$id.info.tsx b/app/features/tournament/routes/to.$id.info.tsx index 636bf3818..385aab5fa 100644 --- a/app/features/tournament/routes/to.$id.info.tsx +++ b/app/features/tournament/routes/to.$id.info.tsx @@ -7,7 +7,6 @@ import { containerClassName } from "~/components/Main"; import { Markdown } from "~/components/Markdown"; import { TierPill } from "~/components/TierPill"; import * as Seasons from "~/features/mmr/core/Seasons"; -import type { TournamentData } from "~/features/tournament-bracket/core/Tournament.server"; import { metaTags } from "~/utils/remix"; import type { SendouRouteHandle } from "~/utils/remix.server"; import { removeMarkdown } from "~/utils/strings"; @@ -19,6 +18,7 @@ import { TournamentHeader, TournamentHeaderActions, } from "../components/TournamentHeader"; +import { parseTournamentLoaderData } from "../core/layout-payload"; import { loader } from "../loaders/to.$id.info.server"; import { bracketProgressionLabel } from "../tournament-utils"; import { useTournament } from "./to.$id"; @@ -27,8 +27,10 @@ import styles from "./to.$id.info.module.css"; export { action, loader }; export const meta: MetaFunction = (args) => { - const tournamentData = JSON.parse(args.matches[1].loaderData as any) - ?.tournament as TournamentData | undefined; + const rawLayoutData = args.matches[1].loaderData as string | undefined; + const tournamentData = rawLayoutData + ? parseTournamentLoaderData(rawLayoutData).tournament + : undefined; if (!tournamentData) return []; return metaTags({ diff --git a/app/features/tournament/routes/to.$id.register.tsx b/app/features/tournament/routes/to.$id.register.tsx index d4e40d955..a5fc64eac 100644 --- a/app/features/tournament/routes/to.$id.register.tsx +++ b/app/features/tournament/routes/to.$id.register.tsx @@ -17,7 +17,7 @@ import { Config } from "~/config"; import { useUser } from "~/features/auth/core/user"; import { MapPool } from "~/features/map-list-generator/core/map-pool"; import { ModeMapPoolPicker } from "~/features/settings/components/ModeMapPoolPicker"; -import type { TournamentDataTeam } from "~/features/tournament-bracket/core/Tournament.server"; +import type { TournamentTeamFull } from "~/features/tournament-bracket/core/Tournament.server"; import { FormField } from "~/form/FormField"; import { SendouForm, useFormFieldContext } from "~/form/SendouForm"; import { useDateTimeFormat } from "~/hooks/intl/useDateTimeFormat"; @@ -159,7 +159,9 @@ function RegistrationForms({ readOnly = false }: { readOnly?: boolean }) { return ; } - const ownTeam = tournament.ownedTeamByUser(user); + const ownTeam = tournament.ownedTeamByUser(user) + ? (data?.ownTeam ?? null) + : null; const ownTeamCheckedIn = Boolean(ownTeam && ownTeam.checkIns.length > 0); const hasFriendCodeSet = Boolean(user?.friendCode); @@ -219,10 +221,10 @@ function RegistrationForms({ readOnly = false }: { readOnly?: boolean }) { } function ReadOnlyRegistrationForms() { - const user = useUser(); + const data = useLoaderData(); const tournament = useTournament(); - const team = tournament.teamMemberOfByUser(user); + const team = data?.ownTeam; if (!team) return null; const checkedIn = team.checkIns.length > 0; @@ -453,7 +455,7 @@ function TeamInfo({ canUnregister, readOnly = false, }: { - ownTeam?: TournamentDataTeam | null; + ownTeam?: TournamentTeamFull | null; canUnregister: boolean; readOnly?: boolean; }) { @@ -638,7 +640,7 @@ function FillRoster({ ownTeamCheckedIn, readOnly = false, }: { - ownTeam: TournamentDataTeam; + ownTeam: TournamentTeamFull; ownTeamCheckedIn: boolean; readOnly?: boolean; }) { @@ -673,8 +675,8 @@ function FillRoster({ const playersAvailableToDirectlyAdd = (() => { if (readOnly) return []; return (data?.friendPlayers?.friends ?? []).filter((user) => { - const isNotInTeam = tournament.ctx.teams.every((team) => - team.members.every((member) => member.userId !== user.id), + const isNotInTeam = tournament.ctx.teams.every( + (team) => !team.memberUserIds.includes(user.id), ); const hasInGameNameIfNeeded = @@ -855,7 +857,7 @@ function DirectlyAddPlayerSelect({ ); } -function DeleteMember({ members }: { members: TournamentDataTeam["members"] }) { +function DeleteMember({ members }: { members: TournamentTeamFull["members"] }) { const { t } = useTranslation(["tournament", "common"]); const id = React.useId(); const fetcher = useFetcher(); @@ -903,7 +905,7 @@ function CounterPickMapPoolPicker({ mapPool, }: { readOnly?: boolean; - mapPool?: NonNullable; + mapPool?: NonNullable; }) { const { t } = useTranslation(["common", "game-misc", "tournament"]); const tournament = useTournament(); diff --git a/app/features/tournament/routes/to.$id.results.tsx b/app/features/tournament/routes/to.$id.results.tsx index d662dffc9..e5cd17319 100644 --- a/app/features/tournament/routes/to.$id.results.tsx +++ b/app/features/tournament/routes/to.$id.results.tsx @@ -3,7 +3,7 @@ import { differenceInDays } from "date-fns"; import { ShieldMinus } from "lucide-react"; import * as React from "react"; import { useTranslation } from "react-i18next"; -import { Link } from "react-router"; +import { Link, useLoaderData } from "react-router"; import { Avatar } from "~/components/Avatar"; import { SendouButton } from "~/components/elements/Button"; import { @@ -16,20 +16,30 @@ import { Flag } from "~/components/Flag"; import { InfoPopover } from "~/components/InfoPopover"; import { Placement } from "~/components/Placement"; import { Table } from "~/components/Table"; -import type { Standing } from "~/features/tournament-bracket/core/Bracket"; import { useSpoilerFree } from "~/hooks/useSpoilerFree"; import { SPR_INFO_URL, tournamentMatchPage, tournamentTeamPage, } from "~/utils/urls"; -import * as Standings from "../core/Standings"; +import type { TournamentResultsLoaderData } from "../loaders/to.$id.results.server"; import styles from "../tournament.module.css"; import { TOURNAMENT } from "../tournament-constants"; import { useTournament } from "./to.$id"; +export { loader } from "../loaders/to.$id.results.server"; + +type ResultsStanding = + TournamentResultsLoaderData["standings"]["standings"] extends Array + ? T extends { standings: Array } + ? U + : T + : never; + export default function TournamentResultsPage() { const { t } = useTranslation(["common"]); + const { standings: standingsResult } = + useLoaderData(); const tournament = useTournament(); const { isCensored, reveal } = useSpoilerFree(); @@ -53,8 +63,6 @@ export default function TournamentResultsPage() { ); } - const standingsResult = Standings.tournamentStandings(tournament); - if (standingsResult.type === "single") { if (standingsResult.standings.length === 0) { return ( @@ -95,7 +103,7 @@ export default function TournamentResultsPage() { ); } -function ResultsTable({ standings }: { standings: Standing[] }) { +function ResultsTable({ standings }: { standings: ResultsStanding[] }) { const tournament = useTournament(); let lastRenderedPlacement = 0; @@ -141,12 +149,7 @@ function ResultsTable({ standings }: { standings: Standing[] }) { rowDarkerBg = !rowDarkerBg; } - const teamLogoSrc = tournament.tournamentTeamLogoSrc(standing.team); - - const spr = Standings.calculateSPR({ - standings, - teamId: standing.team.id, - }); + const teamLogoSrc = standing.team.logoUrl; return ( - {standing.team.members.map((player) => ( + {standing.roster.map((player) => (
{standing.team.seed} {tournament.ctx.isFinalized ? ( - {spr > 0 ? "+" : ""} - {spr} + {standing.spr > 0 ? "+" : ""} + {standing.spr} ) : null} - + ); @@ -209,14 +212,11 @@ function ResultsTable({ standings }: { standings: Standing[] }) { ); } -function MatchHistoryRow({ teamId }: { teamId: number }) { - const tournament = useTournament(); - - const teamMatches = Standings.matchesPlayed({ - tournament, - teamId, - }); - +function MatchHistoryRow({ + matches: teamMatches, +}: { + matches: ResultsStanding["matches"]; +}) { return (
{teamMatches.map((match, i) => { diff --git a/app/features/tournament/routes/to.$id.streams.tsx b/app/features/tournament/routes/to.$id.streams.tsx index 458522fc6..8cec7d009 100644 --- a/app/features/tournament/routes/to.$id.streams.tsx +++ b/app/features/tournament/routes/to.$id.streams.tsx @@ -1,19 +1,24 @@ import { useTranslation } from "react-i18next"; +import { useLoaderData } from "react-router"; import { Redirect } from "~/components/Redirect"; import { tournamentRegisterPage } from "~/utils/urls"; import { TournamentStream } from "../components/TournamentStream"; +import type { TournamentStreamsLoaderData } from "../loaders/to.$id.streams.server"; import styles from "../tournament.module.css"; import { useTournament } from "./to.$id"; +export { loader } from "../loaders/to.$id.streams.server"; + export default function TournamentStreamsPage() { const { t } = useTranslation(["tournament"]); const tournament = useTournament(); + const { streams } = useLoaderData(); if (!tournament.hasStarted || tournament.everyBracketOver) { return ; } - if (tournament.streams.length === 0) { + if (streams.length === 0) { return (
{t("tournament:streams.none")} @@ -24,7 +29,7 @@ export default function TournamentStreamsPage() { // TODO: link to user page, later tournament team page? return (
- {tournament.streams.map((stream) => ( + {streams.map((stream) => ( ))}
diff --git a/app/features/tournament/routes/to.$id.teams.$tid.tsx b/app/features/tournament/routes/to.$id.teams.$tid.tsx index 537593a23..3ef98b707 100644 --- a/app/features/tournament/routes/to.$id.teams.$tid.tsx +++ b/app/features/tournament/routes/to.$id.teams.$tid.tsx @@ -7,10 +7,7 @@ import { SendouButton } from "~/components/elements/Button"; import { SendouPopover } from "~/components/elements/Popover"; import { ModeImage, StageImage } from "~/components/Image"; import { Placement } from "~/components/Placement"; -import type { - TournamentData, - TournamentDataTeam, -} from "~/features/tournament-bracket/core/Tournament.server"; +import type { TournamentTeamFull } from "~/features/tournament-bracket/core/Tournament.server"; import type { TournamentMaplistSource } from "~/modules/tournament-map-list-generator/types"; import { metaTags } from "~/utils/remix"; import { @@ -20,30 +17,26 @@ import { userPage, } from "~/utils/urls"; import { TeamWithRoster } from "../components/TeamWithRoster"; -import * as Standings from "../core/Standings"; -import type { PlayedSet } from "../core/sets.server"; -import { loader } from "../loaders/to.$id.teams.$tid.server"; +import { + loader, + type TournamentTeamLoaderData, +} from "../loaders/to.$id.teams.$tid.server"; import styles from "../tournament.module.css"; import { useTournament } from "./to.$id"; export { loader }; export const meta: MetaFunction = (args) => { - const tournamentData = JSON.parse(args.matches[1].loaderData as any) - ?.tournament as TournamentData; - if (!args.loaderData || !tournamentData) return []; + if (!args.loaderData) return []; - const team = tournamentData.ctx.teams.find( - (t) => t.id === args.loaderData!.tournamentTeamId, - )!; - const teamLogoUrl = team.team?.logoUrl ?? team.pickupAvatarUrl; + const { team, tournamentName } = args.loaderData; return metaTags({ - title: `${team.name} @ ${tournamentData.ctx.name}`, - description: `${team.name} roster (${team.members.map((m) => m.username).join(", ")}) and sets in ${tournamentData.ctx.name}.`, - image: teamLogoUrl + title: `${team.name} @ ${tournamentName}`, + description: `${team.name} roster (${team.members.map((m) => m.username).join(", ")}) and sets in ${tournamentName}.`, + image: team.logoUrl ? { - url: teamLogoUrl, + url: team.logoUrl, dimensions: { width: 124, height: 124 }, } : undefined, @@ -57,7 +50,7 @@ export default function TournamentTeamPage() { const teamIndex = tournament.ctx.teams.findIndex( (t) => t.id === data.tournamentTeamId, ); - const team = tournament.teamById(data.tournamentTeamId)!; + const team = data.team; return (
@@ -65,13 +58,7 @@ export default function TournamentTeamPage() { 0 - ? tournament - .participatedPlayersByTeamId(team.id) - .map((p) => p.userId) - : undefined - } + activePlayers={data.activePlayers} /> {team.team && !team.team.deletedAt ? ( (); - const tournament = useTournament(); - const standingsResult = Standings.tournamentStandings(tournament); - const overallStandings = Standings.flattenStandings(standingsResult); - const placement = overallStandings.find( - (s) => s.team.id === data.tournamentTeamId, - )?.placement; - - const undergroundBracket = tournament.brackets.find((b) => b.isUnderground); - const undergroundPlacement = undergroundBracket?.standings.find( - (s) => s.team.id === data.tournamentTeamId, - )?.placement; + const { placement, undergroundPlacement, division } = data; return (
@@ -171,21 +148,19 @@ function StatSquares({ {t("tournament:team.placement.footer")}
) : null} - {standingsResult.type === "multi" ? ( -
- { - standingsResult.standings.find((s) => - s.standings.some((s) => s.team.id === data.tournamentTeamId), - )?.div - } -
- ) : null} + {division ?
{division}
: null}
); } -function SetInfo({ set, team }: { set: PlayedSet; team: TournamentDataTeam }) { +function SetInfo({ + set, + team, +}: { + set: TournamentTeamLoaderData["sets"][number]; + team: TournamentTeamFull; +}) { const { t } = useTranslation(["tournament"]); const tournament = useTournament(); @@ -220,7 +195,7 @@ function SetInfo({ set, team }: { set: PlayedSet; team: TournamentDataTeam }) { }; const { bracketName, roundNameWithoutMatchIdentifier } = - tournament.matchContextNamesById(set.tournamentMatchId); + set.matchContextNames; return (
diff --git a/app/features/tournament/routes/to.$id.teams.tsx b/app/features/tournament/routes/to.$id.teams.tsx index e83cc2445..7b987d79f 100644 --- a/app/features/tournament/routes/to.$id.teams.tsx +++ b/app/features/tournament/routes/to.$id.teams.tsx @@ -1,39 +1,36 @@ +import { useLoaderData } from "react-router"; +import { Pagination } from "~/components/Pagination"; import { Redirect } from "~/components/Redirect"; +import { useSearchParamPagination } from "~/hooks/useSearchParamPagination"; import { tournamentDivisionsPage, tournamentTeamPage } from "~/utils/urls"; import { TeamWithRoster } from "../components/TeamWithRoster"; +import type { TournamentTeamsLoaderData } from "../loaders/to.$id.teams.server"; +import { tournamentTeamsSearchParams } from "../tournament-search-params"; import { getBracketProgressionLabel } from "../tournament-utils"; import { useHasChildTournaments, useTournament } from "./to.$id"; +export { loader } from "../loaders/to.$id.teams.server"; + export default function TournamentTeamsPage() { const tournament = useTournament(); const hasChildTournaments = useHasChildTournaments(); + const data = useLoaderData(); + const pagination = useSearchParamPagination({ + definition: tournamentTeamsSearchParams, + currentPage: data.currentPage, + pagesCount: data.pagesCount, + }); if (tournament.isLeagueSignup && hasChildTournaments) { return ; } - const perBracketSeedCounters = new Map(); - const teamSeedInfo = tournament.ctx.teams.map((team, globalIndex) => { - if (!tournament.isMultiStartingBracket) { - return { seed: globalIndex + 1, bracketLabel: undefined }; - } - - const bracketIdx = team.startingBracketIdx ?? 0; - const currentSeed = (perBracketSeedCounters.get(bracketIdx) ?? 0) + 1; - perBracketSeedCounters.set(bracketIdx, currentSeed); - - const bracketLabel = getBracketProgressionLabel( - bracketIdx, - tournament.ctx.settings.bracketProgression, - ); - - return { seed: currentSeed, bracketLabel }; - }); + const seedInfoByTeamId = teamSeedInfo(tournament); return (
- {tournament.ctx.teams.map((team, i) => { - const { seed, bracketLabel } = teamSeedInfo[i]; + {data.teams.map((team) => { + const { seed, bracketLabel } = seedInfoByTeamId.get(team.id) ?? {}; return ( ); })} + {data.pagesCount > 1 ? : null}
); } + +function teamSeedInfo(tournament: ReturnType) { + const perBracketSeedCounters = new Map(); + + return new Map( + tournament.ctx.teams.map((team, globalIndex) => { + if (!tournament.isMultiStartingBracket) { + return [ + team.id, + { + seed: globalIndex + 1, + bracketLabel: undefined as string | undefined, + }, + ] as const; + } + + const bracketIdx = team.startingBracketIdx ?? 0; + const currentSeed = (perBracketSeedCounters.get(bracketIdx) ?? 0) + 1; + perBracketSeedCounters.set(bracketIdx, currentSeed); + + return [ + team.id, + { + seed: currentSeed, + bracketLabel: getBracketProgressionLabel( + bracketIdx, + tournament.ctx.settings.bracketProgression, + ), + }, + ] as const; + }), + ); +} diff --git a/app/features/tournament/routes/to.$id.tsx b/app/features/tournament/routes/to.$id.tsx index 50f0873e3..1c5631e08 100644 --- a/app/features/tournament/routes/to.$id.tsx +++ b/app/features/tournament/routes/to.$id.tsx @@ -8,6 +8,7 @@ import { } from "react-router"; import { containerClassName, Main } from "~/components/Main"; import { Placeholder } from "~/components/Placeholder"; +import { isMatchResultsScopedRevalidation } from "~/features/chat/revalidation-scope"; import { useChatContext } from "~/features/chat/useChatContext"; import { Tournament } from "~/features/tournament-bracket/core/Tournament"; import { useHydrated } from "~/hooks/useHydrated"; @@ -15,12 +16,14 @@ import type { SendouRouteHandle } from "~/utils/remix.server"; import { tournamentPage } from "~/utils/urls"; import { isRevalidation, metaTags } from "../../../utils/remix"; import { TournamentNav } from "../components/TournamentNav"; +import { parseTournamentLoaderData } from "../core/layout-payload"; import { loader, type TournamentLoaderData } from "../loaders/to.$id.server"; export { loader }; export const shouldRevalidate: ShouldRevalidateFunction = (args) => { + if (isMatchResultsScopedRevalidation(args)) return false; if (isRevalidation(args)) return args.defaultShouldRevalidate; if (args.formMethod === "POST") return args.defaultShouldRevalidate; if (args.currentParams.id !== args.nextParams.id) { @@ -35,7 +38,7 @@ export const meta: MetaFunction = (args) => { if (!rawData) return []; - const data = JSON.parse(rawData) as TournamentLoaderData; + const data = parseTournamentLoaderData(rawData); return metaTags({ title: data.tournament.ctx.name, @@ -55,7 +58,7 @@ export const handle: SendouRouteHandle = { if (!rawData) return []; - const data = JSON.parse(rawData) as TournamentLoaderData; + const data = parseTournamentLoaderData(rawData); return [ { @@ -70,6 +73,24 @@ export const handle: SendouRouteHandle = { const TournamentContext = React.createContext(null!); +/** + * Overrides the tournament of the subtree, used by the views that load bracket match data + * of their own on top of what the layout ships. + */ +export function TournamentOverrideProvider({ + tournament, + children, +}: { + tournament: Tournament; + children: React.ReactNode; +}) { + return ( + + {children} + + ); +} + export default function TournamentLayoutShell() { const isHydrated = useHydrated(); @@ -89,7 +110,7 @@ export default function TournamentLayoutShell() { export function TournamentLayout() { const rawData = useLoaderData(); const data = React.useMemo( - () => JSON.parse(rawData) as TournamentLoaderData, + () => parseTournamentLoaderData(rawData), [rawData], ); const tournament = React.useMemo( @@ -111,6 +132,7 @@ export function TournamentLayout() { <> @@ -152,7 +174,7 @@ type TournamentContext = { }; export function useTournament() { - return useOutletContext().tournament; + return React.useContext(TournamentContext); } export function useBracketExpanded() { diff --git a/app/features/tournament/tournament-search-params.test.ts b/app/features/tournament/tournament-search-params.test.ts index 8d76108ca..3073745d4 100644 --- a/app/features/tournament/tournament-search-params.test.ts +++ b/app/features/tournament/tournament-search-params.test.ts @@ -6,6 +6,7 @@ import { import { tournamentJoinSearchParams, tournamentSearchSearchParams, + tournamentTeamsSearchParams, } from "./tournament-search-params"; describe("tournamentSearchSearchParams", () => { @@ -40,3 +41,18 @@ describe("tournamentJoinSearchParams", () => { }); }); }); + +describe("tournamentTeamsSearchParams", () => { + it("round-trips", () => { + assertRoundTrips(tournamentTeamsSearchParams, { + page: [1, 2, 17], + }); + }); + + it("decodes garbage to defaults", () => { + assertDecodesToDefault(tournamentTeamsSearchParams, "page", [ + ["0"], + ["abc"], + ]); + }); +}); diff --git a/app/features/tournament/tournament-search-params.ts b/app/features/tournament/tournament-search-params.ts index 81fdea819..78eba804e 100644 --- a/app/features/tournament/tournament-search-params.ts +++ b/app/features/tournament/tournament-search-params.ts @@ -31,3 +31,7 @@ export const tournamentSearchSearchParams = SearchParams.define({ export const tournamentJoinSearchParams = SearchParams.define({ code: SP.param(z.string().nullable(), { loader: true }), }); + +export const tournamentTeamsSearchParams = SearchParams.define({ + page: SP.page(), +}); diff --git a/app/features/tournament/tournament-utils.test.ts b/app/features/tournament/tournament-utils.test.ts index 2e4e15fc6..f6dd39ea7 100644 --- a/app/features/tournament/tournament-utils.test.ts +++ b/app/features/tournament/tournament-utils.test.ts @@ -28,7 +28,7 @@ const createTeam = ( ): TeamForOrdering => ({ id, seed: options.seed ?? null, - members: { length: options.members ?? 4 }, + memberUserIds: { length: options.members ?? 4 }, avgSeedingSkillOrdinal: options.avgSeedingSkillOrdinal === undefined ? 100 diff --git a/app/features/tournament/tournament-utils.ts b/app/features/tournament/tournament-utils.ts index 76afff929..1d207b471 100644 --- a/app/features/tournament/tournament-utils.ts +++ b/app/features/tournament/tournament-utils.ts @@ -13,6 +13,7 @@ import { assertUnreachable } from "../../utils/types"; import { MapPool } from "../map-list-generator/core/map-pool"; import { BANNED_MAPS } from "../match-profile/banned-maps"; import * as Seasons from "../mmr/core/Seasons"; +import type { Bracket as BracketClass } from "../tournament-bracket/core/Bracket"; import type { ParsedBracket } from "../tournament-bracket/core/Progression"; import * as Progression from "../tournament-bracket/core/Progression"; import type { Tournament as TournamentClass } from "../tournament-bracket/core/Tournament"; @@ -186,6 +187,7 @@ export function tournamentInWeaponReportingWindow({ export function resolveLeagueRoundStartDate( tournament: TournamentClass, + bracket: BracketClass | undefined, roundId: number, ) { if (!tournament.isLeagueDivision) return null; @@ -197,10 +199,6 @@ export function resolveLeagueRoundStartDate( ); if (!league) return null; - const bracket = tournament.brackets.find((b) => - b.data.round.some((r) => r.id === roundId), - ); - const round = bracket?.data.round.find((r) => r.id === roundId); const onlyRelevantRounds = bracket?.data.round.filter( (r) => r.groupId === round?.groupId, @@ -226,7 +224,10 @@ export function isLeagueRoundLocked( tournament: TournamentClass, roundId: number, ) { - const date = resolveLeagueRoundStartDate(tournament, roundId); + const bracket = tournament.brackets.find((b) => + b.data.round.some((r) => r.id === roundId), + ); + const date = resolveLeagueRoundStartDate(tournament, bracket, roundId); if (!date) return false; @@ -269,7 +270,7 @@ export function validateCanJoinTeam({ maxTeamSize, }: { inviteCode?: string | null; - teamToJoin?: { members: { userId: number }[] }; + teamToJoin?: { memberUserIds: number[] }; userId?: number; maxTeamSize: number; }) { @@ -285,10 +286,10 @@ export function validateCanJoinTeam({ if (!teamToJoin) { return "NO_TEAM_MATCHING_CODE"; } - if (teamToJoin.members.some((member) => member.userId === userId)) { + if (teamToJoin.memberUserIds.includes(userId)) { return "ALREADY_JOINED"; } - if (teamToJoin.members.length >= maxTeamSize) { + if (teamToJoin.memberUserIds.length >= maxTeamSize) { return "TEAM_FULL"; } @@ -308,7 +309,7 @@ export function normalizedTeamCount({ export type TeamForOrdering = { id: number; seed: number | null; - members: { length: number }; + memberUserIds: { length: number }; avgSeedingSkillOrdinal: number | null; createdAt: number; startingBracketIdx: number | null; @@ -327,8 +328,8 @@ export function compareTeamsForOrdering( return a.seed - b.seed; } - const aIsFull = a.members.length >= minMembersPerTeam; - const bIsFull = b.members.length >= minMembersPerTeam; + const aIsFull = a.memberUserIds.length >= minMembersPerTeam; + const bIsFull = b.memberUserIds.length >= minMembersPerTeam; if (aIsFull && !bIsFull) { return -1; diff --git a/app/features/user-page/UserRepository.server.ts b/app/features/user-page/UserRepository.server.ts index 460730980..c20821d53 100644 --- a/app/features/user-page/UserRepository.server.ts +++ b/app/features/user-page/UserRepository.server.ts @@ -48,6 +48,19 @@ export async function findCountriesByUserIds(userIds: number[]) { return new Map(rows.map((row) => [row.id, row.country])); } +/** Plus tiers of the given users keyed by user id, users without a tier absent. */ +export async function findPlusTiersByUserIds(userIds: number[]) { + if (userIds.length === 0) return new Map(); + + const rows = await db + .selectFrom("PlusTier") + .select(["PlusTier.userId", "PlusTier.tier"]) + .where("PlusTier.userId", "in", userIds) + .execute(); + + return new Map(rows.map((row) => [row.userId, row.tier])); +} + export async function findBuildFieldsByIdentifier(identifier: string) { const row = await userByIdentifierQuery(identifier) .select(({ eb }) => [ diff --git a/app/root.tsx b/app/root.tsx index 241d51cc2..0e2edad8a 100644 --- a/app/root.tsx +++ b/app/root.tsx @@ -43,6 +43,7 @@ import { Layout, NPROGRESS_ANCHOR_ID } from "./components/layout"; import { getUser } from "./features/auth/core/user.server"; import { userMiddleware } from "./features/auth/core/user-middleware.server"; import { ChatProvider } from "./features/chat/ChatProvider"; +import { isMatchResultsScopedRevalidation } from "./features/chat/revalidation-scope"; import { getSidenavSession } from "./features/layout/core/sidenav-session.server"; import { sessionIdMiddleware } from "./features/session-id/session-id-middleware.server"; import { @@ -91,6 +92,7 @@ import "nprogress/nprogress.css"; NProgress.configure({ parent: `#${NPROGRESS_ANCHOR_ID}` }); export const shouldRevalidate: ShouldRevalidateFunction = (args) => { + if (isMatchResultsScopedRevalidation(args)) return false; if (isRevalidation(args)) return true; if (args.formData?.get("revalidateRoot") === "true") return true; diff --git a/app/routines/notifyCheckInStart.ts b/app/routines/notifyCheckInStart.ts index 6164e7935..fa0fed15a 100644 --- a/app/routines/notifyCheckInStart.ts +++ b/app/routines/notifyCheckInStart.ts @@ -37,7 +37,7 @@ export const NotifyCheckInStartRoutine = new Routine({ pictureUrl: tournament.ctx.logoUrl, }, userIds: tournament.ctx.teams - .flatMap((team) => team.members.map((member) => member.userId)) + .flatMap((team) => team.memberUserIds) .concat(tournament.ctx.staff.map((staff) => staff.id)), }); } diff --git a/app/routines/syncLiveStreams.test.ts b/app/routines/syncLiveStreams.test.ts index e585da8ad..ad15e7a79 100644 --- a/app/routines/syncLiveStreams.test.ts +++ b/app/routines/syncLiveStreams.test.ts @@ -1,11 +1,13 @@ import { add } from "date-fns"; import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; +import * as TournamentFactory from "~/db/seed/factories/TournamentFactory"; +import * as TournamentTeamFactory from "~/db/seed/factories/TournamentTeamFactory"; +import * as UserFactory from "~/db/seed/factories/UserFactory"; import { db } from "~/db/sql"; +import * as TournamentTeamRepository from "~/features/tournament/TournamentTeamRepository.server"; import { RunningTournaments } from "~/features/tournament-bracket/core/RunningTournaments.server"; -import { - testTournament, - tournamentCtxTeam, -} from "~/features/tournament-bracket/core/tests/test-utils"; +import { testTournament } from "~/features/tournament-bracket/core/tests/test-utils"; +import { withUserId } from "~/utils/Test"; import { SyncLiveStreamsRoutine } from "./syncLiveStreams"; const { mockGetStreams } = vi.hoisted(() => ({ @@ -20,9 +22,17 @@ vi.mock("~/modules/twitch/utils.server", () => ({ hasTwitchEnvVars: () => true, })); -vi.mock("~/features/user-page/UserRepository.server", () => ({ - findIdsByTwitchUsernames: () => [], -})); +vi.mock( + "~/features/user-page/UserRepository.server", + async (importOriginal) => ({ + ...(await importOriginal< + typeof import("~/features/user-page/UserRepository.server") + >()), + findIdsByTwitchUsernames: () => [], + }), +); + +const users = UserFactory.pool(); function findAllTournamentStreamers() { return db.selectFrom("TournamentStreamer").selectAll().execute(); @@ -32,11 +42,43 @@ function findAllLiveStreams() { return db.selectFrom("LiveStream").selectAll().execute(); } -function addRunningTournament( - ctx?: Partial[0]["ctx"]>, -) { - const tournament = testTournament({ ctx }); - RunningTournaments.add(tournament); +/** + * A tournament the sync routine considers live: its teams are in the database, + * which is where the routine looks up their members' Twitch accounts, and the + * tournament itself is in the running tournaments registry. + */ +async function addRunningTournament({ + memberUserIds = [], + castTwitchAccounts = [], + droppedOut = false, +}: { + memberUserIds?: number[]; + castTwitchAccounts?: string[]; + droppedOut?: boolean; +} = {}) { + const tournament = await TournamentFactory.create({ authorId: users.id(1) }); + + if (memberUserIds.length > 0) { + const team = await TournamentTeamFactory.create({ + tournamentId: tournament.id, + memberUserIds, + }); + + if (droppedOut) { + await withUserId(users.id(1), () => + TournamentTeamRepository.dropOut({ + tournamentTeamId: team.id, + previewBracketIdxs: [], + }), + ); + } + } + + RunningTournaments.clear(); + RunningTournaments.add( + testTournament({ ctx: { id: tournament.id, castTwitchAccounts } }), + ); + return tournament; } @@ -51,6 +93,7 @@ describe("syncLiveStreams tournament streamers", () => { timeOffset += 31; RunningTournaments.clear(); mockGetStreams.mockReset(); + await users.create(1); }); afterEach(() => { @@ -87,40 +130,18 @@ describe("syncLiveStreams tournament streamers", () => { { twitchUserName: "player_one", viewerCount: 100, thumbnailUrl: "" }, ]); - addRunningTournament({ - teams: [ - tournamentCtxTeam(1, { - members: [ - { - userId: 10, - username: "Player One", - discordId: "10", - discordAvatar: null, - customUrl: null, - inGameName: null, - country: null, - twitch: "player_one", - plusTier: null, - role: "OWNER", - isSub: 0, - createdAt: 0, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - customAvatarUrl: null, - }, - ], - }), - ], + const player = await UserFactory.create({ twitch: "player_one" }); + const tournament = await addRunningTournament({ + memberUserIds: [player.id], }); await SyncLiveStreamsRoutine.run(); const rows = await findAllTournamentStreamers(); expect(rows).toHaveLength(1); - expect(rows[0].userId).toBe(10); + expect(rows[0].userId).toBe(player.id); expect(rows[0].twitchAccount).toBe("player_one"); - expect(rows[0].tournamentId).toBe(1); + expect(rows[0].tournamentId).toBe(tournament.id); }); test("skips dropped-out teams", async () => { @@ -128,32 +149,10 @@ describe("syncLiveStreams tournament streamers", () => { { twitchUserName: "dropped_player", viewerCount: 50, thumbnailUrl: "" }, ]); - addRunningTournament({ - teams: [ - tournamentCtxTeam(1, { - droppedOut: 1, - members: [ - { - userId: 20, - username: "Dropped", - discordId: "20", - discordAvatar: null, - customUrl: null, - inGameName: null, - country: null, - twitch: "dropped_player", - plusTier: null, - role: "OWNER", - isSub: 0, - createdAt: 0, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - customAvatarUrl: null, - }, - ], - }), - ], + const player = await UserFactory.create({ twitch: "dropped_player" }); + await addRunningTournament({ + memberUserIds: [player.id], + droppedOut: true, }); await SyncLiveStreamsRoutine.run(); @@ -167,9 +166,7 @@ describe("syncLiveStreams tournament streamers", () => { { twitchUserName: "caster_account", viewerCount: 200, thumbnailUrl: "" }, ]); - addRunningTournament({ - castTwitchAccounts: ["caster_account"], - }); + await addRunningTournament({ castTwitchAccounts: ["caster_account"] }); await SyncLiveStreamsRoutine.run(); @@ -184,32 +181,8 @@ describe("syncLiveStreams tournament streamers", () => { { twitchUserName: "unrelated_stream", viewerCount: 10, thumbnailUrl: "" }, ]); - addRunningTournament({ - teams: [ - tournamentCtxTeam(1, { - members: [ - { - userId: 30, - username: "No Match", - discordId: "30", - discordAvatar: null, - customUrl: null, - inGameName: null, - country: null, - twitch: "different_account", - plusTier: null, - role: "OWNER", - isSub: 0, - createdAt: 0, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - customAvatarUrl: null, - }, - ], - }), - ], - }); + const player = await UserFactory.create({ twitch: "different_account" }); + await addRunningTournament({ memberUserIds: [player.id] }); await SyncLiveStreamsRoutine.run(); @@ -222,72 +195,21 @@ describe("syncLiveStreams tournament streamers", () => { { twitchUserName: "streamer_a", viewerCount: 100, thumbnailUrl: "" }, ]); - addRunningTournament({ - teams: [ - tournamentCtxTeam(1, { - members: [ - { - userId: 40, - username: "Streamer A", - discordId: "40", - discordAvatar: null, - customUrl: null, - inGameName: null, - country: null, - twitch: "streamer_a", - plusTier: null, - role: "OWNER", - isSub: 0, - createdAt: 0, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - customAvatarUrl: null, - }, - ], - }), - ], - }); + const playerA = await UserFactory.create({ twitch: "streamer_a" }); + await addRunningTournament({ memberUserIds: [playerA.id] }); await SyncLiveStreamsRoutine.run(); const rowsAfterFirst = await findAllTournamentStreamers(); expect(rowsAfterFirst).toHaveLength(1); - // add a different tournament — if throttle works, nothing new is inserted - RunningTournaments.clear(); - + // a different tournament — if throttle works, nothing new is inserted mockGetStreams.mockResolvedValue([ { twitchUserName: "streamer_b", viewerCount: 50, thumbnailUrl: "" }, ]); - addRunningTournament({ - id: 2, - teams: [ - tournamentCtxTeam(2, { - members: [ - { - userId: 50, - username: "Streamer B", - discordId: "50", - discordAvatar: null, - customUrl: null, - inGameName: null, - country: null, - twitch: "streamer_b", - plusTier: null, - role: "OWNER", - isSub: 0, - createdAt: 0, - streamTwitch: null, - streamViewerCount: null, - streamThumbnailUrl: null, - customAvatarUrl: null, - }, - ], - }), - ], - }); + const playerB = await UserFactory.create({ twitch: "streamer_b" }); + await addRunningTournament({ memberUserIds: [playerB.id] }); // call again without advancing time — should be throttled await SyncLiveStreamsRoutine.run(); diff --git a/app/routines/syncLiveStreams.ts b/app/routines/syncLiveStreams.ts index 6ed8d4012..2f15959bd 100644 --- a/app/routines/syncLiveStreams.ts +++ b/app/routines/syncLiveStreams.ts @@ -1,5 +1,6 @@ import { differenceInMinutes } from "date-fns"; import * as LiveStreamRepository from "~/features/live-streams/LiveStreamRepository.server"; +import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; import { RunningTournaments } from "~/features/tournament-bracket/core/RunningTournaments.server"; import * as UserRepository from "~/features/user-page/UserRepository.server"; import { getStreams } from "~/modules/twitch"; @@ -73,30 +74,27 @@ async function syncTournamentStreamers( typeof LiveStreamRepository.insertTournamentStreamers >[0] = []; + const participants = await TournamentRepository.findParticipantTwitchAccounts( + tournaments.map((tournament) => tournament.ctx.id), + ); + + for (const participant of participants) { + if (!streamsByTwitchName.has(participant.twitch.toLowerCase())) continue; + + rows.push({ + userId: participant.userId, + tournamentId: participant.tournamentId, + twitchAccount: participant.twitch, + }); + } + for (const tournament of tournaments) { - const tournamentId = tournament.ctx.id; - - for (const team of tournament.ctx.teams) { - if (team.droppedOut) continue; - - for (const member of team.members) { - if (!member.twitch) continue; - if (!streamsByTwitchName.has(member.twitch.toLowerCase())) continue; - - rows.push({ - userId: member.userId, - tournamentId, - twitchAccount: member.twitch, - }); - } - } - for (const twitchAccount of tournament.ctx.castTwitchAccounts ?? []) { if (!streamsByTwitchName.has(twitchAccount.toLowerCase())) continue; rows.push({ userId: null, - tournamentId, + tournamentId: tournament.ctx.id, twitchAccount, }); } diff --git a/e2e/tournament.spec.ts b/e2e/tournament.spec.ts index 5c02e763c..e8146df4b 100644 --- a/e2e/tournament.spec.ts +++ b/e2e/tournament.spec.ts @@ -1,7 +1,13 @@ import { addHours, addMinutes } from "date-fns"; import { ADMIN_ID } from "~/features/admin/admin-constants"; import { dateToDatabaseTimestamp } from "~/utils/dates"; -import { expect, impersonate, isNotVisible, test } from "./helpers/playwright"; +import { + expect, + impersonate, + isNotVisible, + navigate, + test, +} from "./helpers/playwright"; import { TournamentBracketsPage } from "./pages/tournament/tournament-brackets-page"; import { TournamentPage } from "./pages/tournament/tournament-page"; import { TournamentRegisterPage } from "./pages/tournament/tournament-register-page"; @@ -12,6 +18,9 @@ const TEAM_NAME = "Chimera"; const ROSTER_SIZE = 4; const SEEDED_TEAM_COUNT = 8; +/** Views of a tournament whose loaders each ship some of its teams' data. */ +const TOURNAMENT_TEAM_VIEWS = ["teams", "results", "brackets", "admin/seeds"]; + test.describe("Tournament", () => { test("registers for tournament", async ({ page, factories }) => { const [captain, ...friends] = @@ -131,6 +140,42 @@ test.describe("Tournament", () => { teamNameForSeed(1), ); }); + + test("hides a draft tournament from non-organizers, including its loaders", async ({ + page, + factories, + }) => { + const tournament = await factories.TournamentFactory.create({ + authorId: ADMIN_ID, + isDraft: true, + startTimes: [dateToDatabaseTimestamp(addHours(new Date(), 2))], + }); + const captain = await factories.UserFactory.create(); + const team = await factories.TournamentTeamFactory.create({ + tournamentId: tournament.id, + team: pickUpTeam(TEAM_NAME), + memberUserIds: [captain.id], + }); + + // the draft's own pages never render, so flush the factory writes elsewhere + await navigate({ page, url: "/" }); + + for (const view of [...TOURNAMENT_TEAM_VIEWS, `teams/${team.id}`]) { + const url = `/to/${tournament.id}/${view}`; + + const pageResponse = await page.request.fetch(url); + expect(pageResponse.status(), `${url} page`).toBe(404); + + // each view's loader is also reachable on its own via single fetch + const dataResponse = await page.request.fetch(`${url}.data`); + expect(await dataResponse.text(), `${url}.data`).not.toContain(TEAM_NAME); + } + + const scopedToTeamsLoader = await page.request.fetch( + `/to/${tournament.id}/teams.data?_routes=features/tournament/routes/to.$id.teams`, + ); + expect(await scopedToTeamsLoader.text()).not.toContain(TEAM_NAME); + }); }); function pickUpTeam(name: string) { diff --git a/scripts/benchmark-db/cases.ts b/scripts/benchmark-db/cases.ts index d8c52070b..7bab47b1b 100644 --- a/scripts/benchmark-db/cases.ts +++ b/scripts/benchmark-db/cases.ts @@ -34,6 +34,7 @@ import * as SavedCalendarEventRepository from "~/features/tournament/SavedCalend import * as TournamentAuditLogRepository from "~/features/tournament/TournamentAuditLogRepository.server"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; import * as TournamentTeamRepository from "~/features/tournament/TournamentTeamRepository.server"; +import * as BracketRepository from "~/features/tournament-bracket/BracketRepository.server"; import * as TournamentMatchVodRepository from "~/features/tournament-bracket/TournamentMatchVodRepository.server"; import * as TournamentLFGRepository from "~/features/tournament-lfg/TournamentLFGRepository.server"; import * as TournamentMatchRepository from "~/features/tournament-match/TournamentMatchRepository.server"; @@ -657,6 +658,13 @@ export function buildCases(fx: Fixtures): { XRankPlacementRepository.findPeaksByUserId(xrank.userId, "both"), ); + // BracketRepository + add( + "BracketRepository.findByTournamentId", + fx.heaviestBracketTournamentId, + (tournamentId) => BracketRepository.findByTournamentId(tournamentId), + ); + // TournamentMatchVodRepository add( "TournamentMatchVodRepository.findVodsByTournamentId", @@ -876,6 +884,24 @@ export function buildCases(fx: Fixtures): { add("TournamentRepository.findById", fx.heavyTournamentId, (tournamentId) => TournamentRepository.findById(tournamentId), ); + add( + "TournamentRepository.findStreamsByTournamentId", + fx.heavyTournamentId, + (tournamentId) => + TournamentRepository.findStreamsByTournamentId(tournamentId), + ); + add( + "TournamentRepository.findTeamsFullByTournamentId", + fx.heavyTournamentId, + (tournamentId) => + TournamentRepository.findTeamsFullByTournamentId(tournamentId), + ); + add( + "TournamentRepository.findParticipatedUserIdsById", + fx.heavyTournamentId, + (tournamentId) => + TournamentRepository.findParticipatedUserIdsById(tournamentId), + ); add( "TournamentRepository.findRulesById", fx.heavyTournamentId, @@ -910,6 +936,12 @@ export function buildCases(fx: Fixtures): { (parentTournamentId) => TournamentRepository.findChildTournamentsForDivCalc(parentTournamentId), ); + add( + "TournamentRepository.findResultsByTournamentId", + fx.heavyResultsTournamentId, + (tournamentId) => + TournamentRepository.findResultsByTournamentId(tournamentId), + ); add( "TournamentRepository.findLeagueDivParticipantUserIds", fx.parentTournamentId, @@ -932,6 +964,12 @@ export function buildCases(fx: Fixtures): { (tournamentIds) => TournamentRepository.findRelatedUsersByTournamentIds(tournamentIds), ); + add( + "TournamentRepository.findParticipantTwitchAccounts", + fx.recentTournamentIds, + (tournamentIds) => + TournamentRepository.findParticipantTwitchAccounts(tournamentIds), + ); addStatic("TournamentRepository.findAllForShowcase", () => TournamentRepository.findAllForShowcase(), ); @@ -976,6 +1014,11 @@ export function buildCases(fx: Fixtures): { (teamIds) => TournamentTeamRepository.findRecentlyPlayedMapsByIds({ teamIds }), ); + add( + "TournamentTeamRepository.findMapPoolsByTeamIds", + fx.tournamentTeamPair, + (teamIds) => TournamentTeamRepository.findMapPoolsByTeamIds(teamIds), + ); // TrophyRepository addStatic("TrophyRepository.all", () => TrophyRepository.all()); @@ -1011,6 +1054,9 @@ export function buildCases(fx: Fixtures): { add("UserRepository.findCountriesByUserIds", fx.skillBatch, (skillBatch) => UserRepository.findCountriesByUserIds(skillBatch.userIds), ); + add("UserRepository.findPlusTiersByUserIds", fx.skillBatch, (skillBatch) => + UserRepository.findPlusTiersByUserIds(skillBatch.userIds), + ); add("UserRepository.findBuildFieldsByIdentifier", fx.heavyUser, (user) => UserRepository.findBuildFieldsByIdentifier(user.identifier), ); diff --git a/scripts/benchmark-db/fixtures.ts b/scripts/benchmark-db/fixtures.ts index 300f0e959..bbabe34a1 100644 --- a/scripts/benchmark-db/fixtures.ts +++ b/scripts/benchmark-db/fixtures.ts @@ -28,6 +28,10 @@ export interface Fixtures { heavyGroupIds: [number, number] | null; heavyStageModeCombo: { stageId: StageId; mode: ModeShort } | null; heavyTournamentId: number | null; + /** Tournament with the most matches. Unlike `heavyTournamentId` (most teams) this one is guaranteed to have brackets. */ + heaviestBracketTournamentId: number | null; + /** Finalized tournament with the most persisted results. */ + heavyResultsTournamentId: number | null; heavyTournamentMatchId: number | null; tournamentMatchGameResultId: number | null; heavyTournamentTeamId: number | null; @@ -121,6 +125,8 @@ export async function resolveFixtures(): Promise { heavyGroupIds: await resolveHeavyGroupIds(heavyGroupMatchId), heavyStageModeCombo: await resolveHeavyStageModeCombo(), heavyTournamentId, + heaviestBracketTournamentId: await resolveHeaviestBracketTournamentId(), + heavyResultsTournamentId: await resolveHeavyResultsTournamentId(), heavyTournamentMatchId: await resolveHeavyTournamentMatchId(), tournamentMatchGameResultId: await resolveTournamentMatchGameResultId(), heavyTournamentTeamId: @@ -389,6 +395,38 @@ async function resolveHeavyTournamentId() { return row?.tournamentId ?? null; } +async function resolveHeaviestBracketTournamentId() { + const row = await db + .selectFrom("TournamentMatch") + .innerJoin( + "TournamentStage", + "TournamentStage.id", + "TournamentMatch.stageId", + ) + .select(({ fn }) => [ + "TournamentStage.tournamentId", + fn.countAll().as("count"), + ]) + .groupBy("TournamentStage.tournamentId") + .orderBy("count", "desc") + .limit(1) + .executeTakeFirst(); + + return row?.tournamentId ?? null; +} + +async function resolveHeavyResultsTournamentId() { + const row = await db + .selectFrom("TournamentResult") + .select(({ fn }) => ["tournamentId", fn.countAll().as("count")]) + .groupBy("tournamentId") + .orderBy("count", "desc") + .limit(1) + .executeTakeFirst(); + + return row?.tournamentId ?? null; +} + async function resolveHeavyTournamentMatchId() { const row = await db .selectFrom("TournamentMatchGameResult")