diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 6c2bb56..9e4bac1 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -159,6 +159,9 @@ schedule Schedule? readyAcceptances MatchReady[] @relation("MatchReadyMatch") + + cs2MatchId Int? // die in die JSON geschriebene matchid + exportedAt DateTime? // wann die JSON exportiert wurde } model MatchPlayer { diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index d415502..788e277 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -1,4 +1,4 @@ -// src/app/admin/page.tsx +// /src/app/admin/page.tsx import { redirect } from 'next/navigation' export default function AdminRedirectPage() { diff --git a/src/app/admin/teams/[teamId]/TeamAdminClient.tsx b/src/app/admin/teams/[teamId]/TeamAdminClient.tsx index 2ed4ddb..cb84f59 100644 --- a/src/app/admin/teams/[teamId]/TeamAdminClient.tsx +++ b/src/app/admin/teams/[teamId]/TeamAdminClient.tsx @@ -1,4 +1,4 @@ -// src/app/(admin)/admin/teams/[teamId]/TeamAdminClient.tsx +// /src/app/(admin)/admin/teams/[teamId]/TeamAdminClient.tsx 'use client' import { useCallback, useEffect, useState, useRef } from 'react' diff --git a/src/app/admin/teams/page.tsx b/src/app/admin/teams/page.tsx index f09c359..dfef165 100644 --- a/src/app/admin/teams/page.tsx +++ b/src/app/admin/teams/page.tsx @@ -1,3 +1,5 @@ +// /src/app/admin/teams/page.tsx + 'use client' import Card from '@/app/components/Card' diff --git a/src/app/api/matches/[matchId]/_builders.ts b/src/app/api/matches/[matchId]/_builders.ts index 9d36069..30d85a4 100644 --- a/src/app/api/matches/[matchId]/_builders.ts +++ b/src/app/api/matches/[matchId]/_builders.ts @@ -1,4 +1,4 @@ -// /app/api/matches/[id]/_builders.ts +// /src/app/api/matches/[id]/_builders.ts import { prisma } from '@/app/lib/prisma' /** Klein, konsistent, Frontend-freundlich */ diff --git a/src/app/api/matches/[matchId]/mapvote/admin-edit/route.ts b/src/app/api/matches/[matchId]/mapvote/admin-edit/route.ts index 9e9623a..51e94a8 100644 --- a/src/app/api/matches/[matchId]/mapvote/admin-edit/route.ts +++ b/src/app/api/matches/[matchId]/mapvote/admin-edit/route.ts @@ -1,4 +1,4 @@ -// /app/api/matches/[matchId]/mapvote/admin-edit/route.ts +// /src/app/api/matches/[matchId]/mapvote/admin-edit/route.ts import { NextRequest, NextResponse } from 'next/server' import { getServerSession } from 'next-auth' import { authOptions } from '@/app/lib/auth' diff --git a/src/app/api/matches/[matchId]/mapvote/reset/route.ts b/src/app/api/matches/[matchId]/mapvote/reset/route.ts index 571c319..45d77cc 100644 --- a/src/app/api/matches/[matchId]/mapvote/reset/route.ts +++ b/src/app/api/matches/[matchId]/mapvote/reset/route.ts @@ -1,4 +1,4 @@ -// /app/api/matches/[id]/mapvote/reset/route.ts +// /src/app/api/matches/[id]/mapvote/reset/route.ts import { NextRequest, NextResponse } from 'next/server' import { getServerSession } from 'next-auth' import { authOptions } from '@/app/lib/auth' diff --git a/src/app/api/matches/[matchId]/mapvote/route.ts b/src/app/api/matches/[matchId]/mapvote/route.ts index 60dd127..36f2e4a 100644 --- a/src/app/api/matches/[matchId]/mapvote/route.ts +++ b/src/app/api/matches/[matchId]/mapvote/route.ts @@ -1,4 +1,4 @@ -// /app/api/matches/[matchId]/mapvote/route.ts +// /src/app/api/matches/[matchId]/mapvote/route.ts import { NextResponse, NextRequest } from 'next/server' import { getServerSession } from 'next-auth' @@ -22,6 +22,15 @@ const ACTION_MAP: Record = { const sleep = (ms: number) => new Promise(res => setTimeout(res, ms)); +async function unloadCurrentMatch() { + // einige MatchZy Builds nutzen "matchzy_unloadmatch", + // andere trennen zwischen cancel/end. Der Unload reicht meist. + await sendServerCommand('matchzy_unloadmatch') + // optional „end/cancel“ hinterher, falls dein Build es erfordert: + // await sendServerCommand('matchzy_cancelmatch') + await sleep(500) // Server eine halbe Sekunde Luft lassen +} + function makeRandomMatchId() { try { // 9–10-stellige ID (>= 100_000_000) – Obergrenze exklusiv @@ -361,6 +370,34 @@ function collectParticipants(match: any): string[] { ]) } +async function persistMatchPlayers(match: any) { + // Teilnehmer ermitteln (du hast schon collectParticipants) + const participants = collectParticipants(match); // string[] der steamIds + + // teamId pro Spieler bestimmen (A oder B), sonst null + const aIds = new Set((match.teamAUsers ?? []).map((u: any) => String(u?.steamId)).filter(Boolean)); + const bIds = new Set((match.teamBUsers ?? []).map((u: any) => String(u?.steamId)).filter(Boolean)); + + const ops = participants.map((steamId) => { + const onTeamA = aIds.has(String(steamId)); + const onTeamB = bIds.has(String(steamId)); + const teamId = + onTeamA ? match.teamA?.id + : onTeamB ? match.teamB?.id + : null; + + // Upsert je Spieler fürs Match + return prisma.matchPlayer.upsert({ + where: { matchId_steamId: { matchId: match.id, steamId } }, + update: { teamId }, // falls sich die Team-Zuordnung ändert + create: { matchId: match.id, steamId, teamId }, + }); + }); + + await prisma.$transaction(ops); +} + + /* ---------- Export-Helfer ---------- */ @@ -452,10 +489,12 @@ async function exportMatchToSftpDirect(match: any, vote: any) { const chosen = (sLike.steps ?? []).filter(s => (s.action === 'pick' || s.action === 'decider') && s.map) if (chosen.length < bestOf) return + // ⬇️ JSON bauen (enthält cs2MatchId/rndId) const json = buildMatchJson(mLike, sLike) const jsonStr = JSON.stringify(json, null, 2) const filename = `${match.id}.json` + // --- SFTP Upload wie gehabt --- const url = process.env.PTERO_SERVER_SFTP_URL || '' const user = process.env.PTERO_SERVER_SFTP_USER const pass = process.env.PTERO_SERVER_SFTP_PASSWORD @@ -484,16 +523,46 @@ async function exportMatchToSftpDirect(match: any, vote: any) { console.log(`[mapvote] Export OK → ${remotePath}`) - // 👇 NACH ERFOLGREICHEM UPLOAD: Match in CS2-Plugin laden - // Laut Vorgabe nur die JSON-Datei als Argument übergeben: + // erst aktuelles Match beenden/entladen … + await unloadCurrentMatch() + + // … dann das neue laden await sendServerCommand(`matchzy_loadmatch ${filename}`) - // (Falls dein Plugin den absoluten Pfad erwartet, nimm stattdessen: `matchzy_loadmatch ${remotePath}`) + + // Spieler persistieren + cs2MatchId speichern wie gehabt + await persistMatchPlayers(match) + if (typeof json.matchid === 'number') { + await prisma.match.update({ + where: { id: match.id }, + data: { cs2MatchId: json.matchid, exportedAt: new Date() }, + }) + } else { + await prisma.match.update({ + where: { id: match.id }, + data: { exportedAt: new Date() }, + }) + } + + // ⬇️ OPTIONAL: cs2MatchId + exportedAt im Match speichern + if (typeof json.matchid === 'number') { + await prisma.match.update({ + where: { id: match.id }, + data: { cs2MatchId: json.matchid, exportedAt: new Date() }, + }) + } else { + await prisma.match.update({ + where: { id: match.id }, + data: { exportedAt: new Date() }, + }) + } + } catch (err) { console.error('[mapvote] Export fehlgeschlagen:', err) } } + /* ---------- kleine Helfer für match-ready Payload ---------- */ function deriveChosenSteps(vote: any) { diff --git a/src/app/api/matches/[matchId]/route.ts b/src/app/api/matches/[matchId]/route.ts index f1cf15b..1d17196 100644 --- a/src/app/api/matches/[matchId]/route.ts +++ b/src/app/api/matches/[matchId]/route.ts @@ -1,4 +1,4 @@ -// /app/api/matches/[id]/route.ts +// /src/app/api/matches/[id]/route.ts import { NextResponse, type NextRequest } from 'next/server' import { prisma } from '@/app/lib/prisma' import { getServerSession } from 'next-auth' diff --git a/src/app/api/matches/create/route.ts b/src/app/api/matches/create/route.ts index 3343a0b..cf6b070 100644 --- a/src/app/api/matches/create/route.ts +++ b/src/app/api/matches/create/route.ts @@ -1,4 +1,4 @@ -// /app/api/matches/create/route.ts +// /src/app/api/matches/create/route.ts import { NextRequest, NextResponse } from 'next/server' import { getServerSession } from 'next-auth' import { authOptions } from '@/app/lib/auth' diff --git a/src/app/api/notifications/route.ts b/src/app/api/notifications/route.ts index 0538846..e5aedba 100644 --- a/src/app/api/notifications/route.ts +++ b/src/app/api/notifications/route.ts @@ -1,7 +1,8 @@ -import { prisma } from '@/app/lib/prisma' +// /api/notifications/route.ts import { getServerSession } from 'next-auth' import { authOptions } from '@/app/lib/auth' -import { NextResponse, type NextRequest } from 'next/server' +import { prisma } from '@/app/lib/prisma' +import { NextRequest, NextResponse } from 'next/server' export async function GET(req: NextRequest) { const session = await getServerSession(authOptions(req)) @@ -11,9 +12,19 @@ export async function GET(req: NextRequest) { } const notifications = await prisma.notification.findMany({ - where: { steamId: session.user.steamId }, + where: { + steamId: session.user.steamId, + }, orderBy: { createdAt: 'desc' }, - take: 10, + select: { + id: true, + title: true, + message: true, + read: true, + actionType: true, + actionData: true, + createdAt: true, + }, }) return NextResponse.json({ notifications }) diff --git a/src/app/api/notifications/user/route.ts b/src/app/api/notifications/user/route.ts deleted file mode 100644 index c177cf2..0000000 --- a/src/app/api/notifications/user/route.ts +++ /dev/null @@ -1,31 +0,0 @@ -// /api/notifications/user/route.ts -import { getServerSession } from 'next-auth' -import { authOptions } from '@/app/lib/auth' -import { prisma } from '@/app/lib/prisma' -import { NextRequest, NextResponse } from 'next/server' - -export async function GET(req: NextRequest) { - const session = await getServerSession(authOptions(req)) - - if (!session?.user?.steamId) { - return NextResponse.json({ message: 'Nicht eingeloggt' }, { status: 401 }) - } - - const notifications = await prisma.notification.findMany({ - where: { - steamId: session.user.steamId, - }, - orderBy: { createdAt: 'desc' }, - select: { - id: true, - title: true, - message: true, - read: true, - actionType: true, - actionData: true, - createdAt: true, - }, - }) - - return NextResponse.json({ notifications }) -} diff --git a/src/app/api/schedule/route.ts b/src/app/api/schedule/route.ts index 3c89c95..e3d9ea3 100644 --- a/src/app/api/schedule/route.ts +++ b/src/app/api/schedule/route.ts @@ -1,4 +1,4 @@ -// /app/api/schedule/route.ts +// /src/app/api/schedule/route.ts 'use server' import { NextResponse } from 'next/server' diff --git a/src/app/api/team/add-players/route.ts b/src/app/api/team/add-players/route.ts index abf2dae..ec15e84 100644 --- a/src/app/api/team/add-players/route.ts +++ b/src/app/api/team/add-players/route.ts @@ -1,4 +1,4 @@ -// /app/api/team/add-players/route.ts +// /src/app/api/team/add-players/route.ts import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/app/lib/prisma' import { sendServerSSEMessage } from '@/app/lib/sse-server-client' diff --git a/src/app/api/team/delete/route.ts b/src/app/api/team/delete/route.ts index aacfdfb..8f85a46 100644 --- a/src/app/api/team/delete/route.ts +++ b/src/app/api/team/delete/route.ts @@ -1,4 +1,4 @@ -// /app/api/team/delete/route.ts +// /src/app/api/team/delete/route.ts import { NextResponse, type NextRequest } from 'next/server' import { getServerSession } from 'next-auth' import { authOptions } from '@/app/lib/auth' diff --git a/src/app/api/team/kick/route.ts b/src/app/api/team/kick/route.ts index c725c2f..de48997 100644 --- a/src/app/api/team/kick/route.ts +++ b/src/app/api/team/kick/route.ts @@ -1,4 +1,4 @@ -// src/app/api/team/kick/route.ts +// /src/app/api/team/kick/route.ts import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/app/lib/prisma' import { sendServerSSEMessage } from '@/app/lib/sse-server-client' diff --git a/src/app/api/team/leave/route.ts b/src/app/api/team/leave/route.ts index 7bf865e..ce53905 100644 --- a/src/app/api/team/leave/route.ts +++ b/src/app/api/team/leave/route.ts @@ -1,4 +1,4 @@ -// src/app/api/team/leave/route.ts +// /src/app/api/team/leave/route.ts import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/app/lib/prisma' import { removePlayerFromMatches } from '@/app/lib/removePlayerFromMatches' diff --git a/src/app/api/team/rename/route.ts b/src/app/api/team/rename/route.ts index a39042e..60fef21 100644 --- a/src/app/api/team/rename/route.ts +++ b/src/app/api/team/rename/route.ts @@ -1,4 +1,4 @@ -// /app/api/team/rename/route.ts +// /src/app/api/team/rename/route.ts import { NextResponse, type NextRequest } from 'next/server' import { prisma } from '@/app/lib/prisma' import { sendServerSSEMessage } from '@/app/lib/sse-server-client' diff --git a/src/app/api/team/request-join/route.ts b/src/app/api/team/request-join/route.ts index 7d98380..d7baa25 100644 --- a/src/app/api/team/request-join/route.ts +++ b/src/app/api/team/request-join/route.ts @@ -1,4 +1,4 @@ -// src/app/api/team/request-join/route.ts +// /src/app/api/team/request-join/route.ts import { NextResponse, type NextRequest } from 'next/server' import { prisma } from '@/app/lib/prisma' import { getServerSession } from 'next-auth' diff --git a/src/app/api/team/transfer-leader/route.ts b/src/app/api/team/transfer-leader/route.ts index 4f3cdca..303c9fa 100644 --- a/src/app/api/team/transfer-leader/route.ts +++ b/src/app/api/team/transfer-leader/route.ts @@ -1,4 +1,4 @@ -// /app/api/team/transfer-leader/route.ts +// /src/app/api/team/transfer-leader/route.ts import { prisma } from '@/app/lib/prisma' import { NextResponse, type NextRequest } from 'next/server' import { sendServerSSEMessage } from '@/app/lib/sse-server-client' diff --git a/src/app/api/teams/route.ts b/src/app/api/teams/route.ts index a8215fb..d704a27 100644 --- a/src/app/api/teams/route.ts +++ b/src/app/api/teams/route.ts @@ -1,4 +1,4 @@ -// src/app/api/teams/route.ts +// /src/app/api/teams/route.ts import { NextResponse } from 'next/server' import { prisma } from '@/app/lib/prisma' import type { Player } from '@/app/types/team' @@ -41,14 +41,16 @@ export async function GET() { id: t.id, name: t.name, logo: t.logo, - leader: t.leaderId, + leaderId: t.leaderId, createdAt: t.createdAt, activePlayers: t.activePlayers .map(id => byId[id]).filter(Boolean) as Player[], inactivePlayers:t.inactivePlayers.map(id => byId[id]).filter(Boolean) as Player[], })) - // HIER: direkt das Array zurückgeben - return NextResponse.json(result, { headers: { 'Cache-Control': 'no-store' } }) + return NextResponse.json( + { items: result, hasMore: false }, + { headers: { 'Cache-Control': 'no-store' } } + ) } catch (err) { console.error('GET /api/teams failed:', err) return NextResponse.json({ message: 'Interner Serverfehler' }, { status: 500 }) diff --git a/src/app/api/user/[steamId]/matches/route.ts b/src/app/api/user/[steamId]/matches/route.ts index 2d88e97..366b9e5 100644 --- a/src/app/api/user/[steamId]/matches/route.ts +++ b/src/app/api/user/[steamId]/matches/route.ts @@ -1,4 +1,4 @@ -// /app/api/user/[steamId]/matches/route.ts +// /src/app/api/user/[steamId]/matches/route.ts import { NextResponse, type NextRequest } from 'next/server' import { prisma } from '@/app/lib/prisma' diff --git a/src/app/api/user/invitations/route.ts b/src/app/api/user/invitations/route.ts index 455a423..41edd28 100644 --- a/src/app/api/user/invitations/route.ts +++ b/src/app/api/user/invitations/route.ts @@ -1,4 +1,4 @@ -// src/app/api/user/invitations/route.ts +// /src/app/api/user/invitations/route.ts import { NextResponse, type NextRequest } from 'next/server' import { getServerSession } from 'next-auth' import { authOptions } from '@/app/lib/auth' diff --git a/src/app/api/user/route.ts b/src/app/api/user/route.ts index 74eaef1..078b405 100644 --- a/src/app/api/user/route.ts +++ b/src/app/api/user/route.ts @@ -1,4 +1,4 @@ -// src/app/api/user/route.ts +// /src/app/api/user/route.ts import { NextResponse, type NextRequest } from 'next/server' import { getServerSession } from 'next-auth' import { authOptions } from '@/app/lib/auth' diff --git a/src/app/components/Button.tsx b/src/app/components/Button.tsx index e0090bd..798b9b8 100644 --- a/src/app/components/Button.tsx +++ b/src/app/components/Button.tsx @@ -10,7 +10,10 @@ type ButtonProps = { modalId?: string color?: 'blue' | 'red' | 'gray' | 'green' | 'teal' | 'transparent' variant?: 'solid' | 'outline' | 'ghost' | 'soft' | 'white' | 'link' + /** Steuert NUR Höhe/Abstände */ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full' + /** Optionale Schriftgröße */ + textSize?: 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' className?: string dropDirection?: 'up' | 'down' | 'auto' disabled?: boolean @@ -27,6 +30,7 @@ const Button = forwardRef(function Button( color = 'blue', variant = 'solid', size = 'md', + textSize = 'sm', className, dropDirection = 'down', disabled = false, @@ -49,18 +53,31 @@ const Button = forwardRef(function Button( } : {} - const sizeClasses: Record = { - xs: 'py-1 px-2', - sm: 'py-2 px-3', - md: 'py-3 px-4', - lg: 'p-4 sm:p-5', - xl: 'py-6 px-8 text-lg', - full: 'py-6 px-8 text-lg w-full', + // Feste Höhen sorgen für vertikale Zentrierung + const sizeClasses: Record, string> = { + xs: 'h-7 px-2', + sm: 'h-8 px-3', + md: 'h-9 px-4', + lg: 'h-10 px-5', + xl: 'h-12 px-6', + full: 'h-12 px-6 w-full', + } + + // Nur Textgröße + const textSizeClasses: Record, string> = { + xs: 'text-xs', + sm: 'text-sm', + base: 'text-base', + lg: 'text-lg', + xl: 'text-xl', + '2xl': 'text-2xl', + '3xl': 'text-3xl', } const base = ` ${sizeClasses[size] || sizeClasses['md']} - inline-flex items-center gap-x-2 text-sm font-medium rounded-lg + inline-flex items-center gap-x-2 ${textSizeClasses[textSize] || 'text-sm'} + font-medium rounded-lg leading-none focus:outline-hidden disabled:opacity-50 disabled:cursor-not-allowed ` @@ -79,15 +96,15 @@ const Button = forwardRef(function Button( gray: 'border border-gray-200 text-gray-500 hover:border-gray-600 hover:text-gray-600 focus:border-gray-600 focus:text-gray-600 dark:border-neutral-700 dark:text-neutral-400 dark:hover:text-white dark:hover:border-neutral-600 dark:focus:text-white dark:focus:border-neutral-600', teal: 'border border-teal-200 text-teal-500 hover:border-teal-600 hover:text-teal-600 focus:border-teal-600 focus:text-teal-600 dark:border-neutral-700 dark:text-neutral-400 dark:hover:text-white dark:hover:border-neutral-600 dark:focus:text-white dark:focus:border-neutral-600', green: 'border border-green-200 text-green-500 hover:border-green-600 hover:text-green-600 focus:border-green-600 focus:text-green-600 dark:border-neutral-700 dark:text-neutral-400 dark:hover:text-white dark:hover:border-neutral-600 dark:focus:text-white dark:focus:border-neutral-600', - transparent: 'border border-transparent-200 text-transparent-500 hover:border-transparent-600 hover:text-transparent-600 focus:border-transparent-600 focus:text-transparent-600 dark:border-neutral-700 dark:text-neutral-400 dark:hover:text-white dark:hover:border-neutral-600 dark:focus:text-white dark:focus:border-neutral-600', + transparent: 'border border-white/20 bg-transparent text-white shadow-2xs hover:bg-white/15 focus:bg-white/15 dark:bg-transparent dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700/50 dark:focus:bg-neutral-700/50', }, ghost: { blue: 'border border-transparent text-blue-600 hover:bg-blue-100 hover:text-blue-800 focus:bg-blue-100 focus:text-blue-800 dark:text-blue-500 dark:hover:bg-blue-800/30 dark:hover:text-blue-400 dark:focus:bg-blue-800/30 dark:focus:text-blue-400', red: 'border border-transparent text-red-600 hover:bg-red-100 hover:text-red-800 focus:bg-red-100 focus:text-red-800 dark:text-red-500 dark:hover:bg-red-800/30 dark:hover:text-red-400 dark:focus:bg-red-800/30 dark:focus:text-red-400', gray: 'border border-transparent text-gray-600 hover:bg-gray-100 hover:text-gray-800 focus:bg-gray-100 focus:text-gray-800 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:hover:text-white dark:focus:bg-neutral-700 dark:focus:text-white', teal: 'border border-transparent text-teal-600 hover:bg-teal-100 hover:text-teal-800 focus:bg-teal-100 focus:text-teal-800 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:hover:text-white dark:focus:bg-neutral-700 dark:focus:text-white', - green: 'border border-transparent text-green-600 hover:bg-green-100 hover:text-green-800 focus:bg-green-100 focus:text-green-800 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:hover:text-white dark:focus:bg-neutral-700 dark:focus:text-white', - transparent: 'border border-transparent text-transparent-600 hover:bg-transparent-100 focus:bg-transparent-100 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:hover:text-white dark:focus:bg-neutral-700 dark:focus:text-white', + green: 'border border-transparent text-green-600 hover:bg-green-100 hover:text-green-800 focus:bg-green-100 focus:text-green-800 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700 dark:focus:text-white', + transparent: 'border border-transparent text-white hover:bg-white/10 focus:bg-white/10 dark:text-white', }, soft: { blue: 'bg-blue-100 text-blue-800 hover:bg-blue-200 focus:bg-blue-200 dark:text-blue-400 dark:hover:bg-blue-900 dark:focus:bg-blue-900', @@ -103,7 +120,7 @@ const Button = forwardRef(function Button( gray: 'border border-gray-200 bg-white text-gray-800 shadow-2xs hover:bg-gray-50 focus:bg-gray-50 dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700', teal: 'border border-teal-200 bg-white text-teal-800 shadow-2xs hover:bg-teal-50 focus:bg-teal-50 dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700', green: 'border border-green-200 bg-white text-green-800 shadow-2xs hover:bg-green-50 focus:bg-green-50 dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700', - transparent: 'border border-transparent-200 bg-white text-transparent-800 shadow-2xs hover:bg-transparent-50 focus:bg-transparent-50 dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700', + transparent: 'border border-white/20 bg-transparent text-white shadow-2xs hover:bg-white/15 focus:bg-white/15 dark:bg-transparent dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700/50 dark:focus:bg-neutral-700/50', }, link: { blue: 'border border-transparent text-blue-600 hover:text-blue-800 focus:text-blue-800 dark:text-blue-500 dark:hover:text-blue-400 dark:focus:text-blue-400', @@ -139,12 +156,7 @@ const Button = forwardRef(function Button( const dropdownHeight = 200 const spaceBelow = window.innerHeight - rect.bottom const spaceAbove = rect.top - - if (spaceBelow < dropdownHeight && spaceAbove > dropdownHeight) { - setDirection('up') - } else { - setDirection('down') - } + setDirection(spaceBelow < dropdownHeight && spaceAbove > dropdownHeight ? 'up' : 'down') }) } }, [open, dropDirection]) @@ -171,7 +183,7 @@ const Button = forwardRef(function Button( className="animate-spin inline-block size-4 border-[3px] border-current border-t-transparent rounded-full mr-2" role="status" aria-label="loading" - > + /> )} {children ?? title} diff --git a/src/app/components/LoadingSpinner.tsx b/src/app/components/LoadingSpinner.tsx index f423898..df6aa77 100644 --- a/src/app/components/LoadingSpinner.tsx +++ b/src/app/components/LoadingSpinner.tsx @@ -1,4 +1,4 @@ -// /app/components/LoadingSpinner.tsx +// /src/app/components/LoadingSpinner.tsx 'use client' diff --git a/src/app/components/MapVoteBanner.tsx b/src/app/components/MapVoteBanner.tsx index c54f08b..90a73d9 100644 --- a/src/app/components/MapVoteBanner.tsx +++ b/src/app/components/MapVoteBanner.tsx @@ -1,4 +1,4 @@ -// /app/components/MapVoteBanner.tsx +// /src/app/components/MapVoteBanner.tsx 'use client' import { useCallback, useEffect, useMemo, useState } from 'react' @@ -24,7 +24,6 @@ function formatCountdown(ms: number) { const pad = (n:number)=>String(n).padStart(2,'0') return `${h}:${pad(m)}:${pad(s)}` } - function formatLead(minutes: number) { if (!Number.isFinite(minutes) || minutes <= 0) return 'zum Matchbeginn' const h = Math.floor(minutes / 60) @@ -35,11 +34,7 @@ function formatLead(minutes: number) { } export default function MapVoteBanner({ - match, - initialNow, - matchBaseTs, - sseOpensAtTs, - sseLeadMinutes, + match, initialNow, matchBaseTs, sseOpensAtTs, sseLeadMinutes, }: Props) { const router = useRouter() const { data: session } = useSession() @@ -50,16 +45,11 @@ export default function MapVoteBanner({ const [leadOverride, setLeadOverride] = useState(null) const [opensAtOverride, setOpensAtOverride] = useState(null) - // ⚠️ Hydration-sicher: auf dem Server rendern wir ein statisches Placeholder const [mounted, setMounted] = useState(false) useEffect(() => { setMounted(true) }, []) - // clientseitiger Ticker const [now, setNow] = useState(initialNow) - useEffect(() => { - const id = setInterval(() => setNow(Date.now()), 1000) - return () => clearInterval(id) - }, []) + useEffect(() => { const id = setInterval(() => setNow(Date.now()), 1000); return () => clearInterval(id) }, []) const load = useCallback(async () => { try { @@ -78,16 +68,11 @@ export default function MapVoteBanner({ } }, [match.id]) - // initial + bei Meta-Änderungen useEffect(() => { load() }, [load]) useEffect(() => { load() }, [match.matchDate, match.demoDate, match.bestOf, load]) - const matchDateTs = useMemo( - () => (typeof matchBaseTs === 'number' ? matchBaseTs : null), - [matchBaseTs] - ) + const matchDateTs = useMemo(() => (typeof matchBaseTs === 'number' ? matchBaseTs : null), [matchBaseTs]) - // SSE: nur map-vote-updated & Co. beachten useEffect(() => { if (!lastEvent) return const { type } = lastEvent as any @@ -107,7 +92,6 @@ export default function MapVoteBanner({ ? (typeof evt.opensAt === 'string' ? evt.opensAt : new Date(evt.opensAt).toISOString()) : undefined - // Sofort lokale Overrides setzen if (nextOpensAtISO) { setOpensAtOverride(new Date(nextOpensAtISO).getTime()) } else if (Number.isFinite(parsedLead) && matchDateTs != null) { @@ -115,7 +99,6 @@ export default function MapVoteBanner({ } if (Number.isFinite(parsedLead)) setLeadOverride(parsedLead as number) - // sichtbares Mergen (für UI-Texte) if (nextOpensAtISO !== undefined || Number.isFinite(parsedLead)) { setState(prev => ({ ...(prev ?? {} as any), @@ -127,7 +110,6 @@ export default function MapVoteBanner({ } }, [lastEvent, match.id, matchDateTs, load]) - // Öffnet wann? (Priorität: Parent-SSE → lokale SSE → Server → Fallback) const opensAt = useMemo(() => { if (typeof sseOpensAtTs === 'number') return sseOpensAtTs if (opensAtOverride != null) return opensAtOverride @@ -139,11 +121,8 @@ export default function MapVoteBanner({ return matchDateTs - lead * 60_000 }, [sseOpensAtTs, opensAtOverride, state?.opensAt, matchDateTs, initialNow, sseLeadMinutes, leadOverride, state?.leadMinutes]) - // „startet X vor Matchbeginn“ const leadMinutes = useMemo(() => { - if (matchDateTs != null && opensAt != null) { - return Math.max(0, Math.round((matchDateTs - opensAt) / 60_000)) - } + if (matchDateTs != null && opensAt != null) return Math.max(0, Math.round((matchDateTs - opensAt) / 60_000)) if (typeof sseLeadMinutes === 'number') return sseLeadMinutes if (leadOverride != null) return leadOverride if (Number.isFinite(state?.leadMinutes)) return state!.leadMinutes as number @@ -152,6 +131,8 @@ export default function MapVoteBanner({ const isOpen = mounted && now >= opensAt const msToOpen = Math.max(opensAt - now, 0) + const isLocked = !!state?.locked + const isVotingOpen = isOpen && !isLocked const current = state?.steps?.[state?.currentIndex ?? 0] const whoIsUp = current?.teamId @@ -162,8 +143,7 @@ export default function MapVoteBanner({ const isLeaderB = !!session?.user?.steamId && match.teamB?.leader?.steamId === session?.user?.steamId const isAdmin = !!session?.user?.isAdmin const iCanAct = Boolean( - isOpen && - !state?.locked && + isVotingOpen && current?.teamId && (isAdmin || (current.teamId === match.teamA?.id && isLeaderA) || @@ -172,12 +152,24 @@ export default function MapVoteBanner({ const gotoFullPage = () => router.push(`/match-details/${match.id}/vote`) - const cardClasses = - 'group relative overflow-hidden rounded-xl border bg-white/90 dark:bg-neutral-800/90 ' + - 'dark:border-neutral-700 shadow-sm cursor-pointer focus:outline-none transition ' + - (isOpen - ? 'ring-1 ring-green-500/15 hover:ring-green-500/30 hover:shadow-lg' - : 'ring-1 ring-neutral-500/10 hover:ring-neutral-500/20 hover:shadow-md') + // Farblogik: locked → grün, offen → gelb, noch geschlossen → neutral + const ringClass = isLocked + ? 'ring-1 ring-green-500/15 hover:ring-green-500/30 hover:shadow-lg' + : isVotingOpen + ? 'ring-1 ring-yellow-500/20 hover:ring-yellow-500/35 hover:shadow-lg' + : 'ring-1 ring-neutral-500/10 hover:ring-neutral-500/20 hover:shadow-md' + + const bubbleClass = isLocked + ? 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-200' + : isVotingOpen + ? 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-100' + : 'bg-neutral-100 text-neutral-700 dark:bg-neutral-700/40 dark:text-neutral-200' + + const gradientClass = isLocked + ? 'mapVoteGradient--green' + : isVotingOpen + ? 'mapVoteGradient--yellow' + : 'mapVoteGradient--none' return (
e.key === 'Enter' && gotoFullPage()} - className={cardClasses} + className={`group relative overflow-hidden rounded-xl border bg-white/90 dark:bg-neutral-800/90 dark:border-neutral-700 shadow-sm cursor-pointer focus:outline-none transition ${ringClass}`} aria-label="Map-Vote öffnen" > - {isOpen && ( + {(isVotingOpen || isLocked) && ( <> -
+
)}
-
+
-
- Map-Vote -
+
Map-Vote
Modus: BO{match.bestOf ?? state?.bestOf ?? 3} {state?.locked ? ' • Auswahl fixiert' - : isOpen + : isVotingOpen ? (whoIsUp ? ` • am Zug: ${whoIsUp}` : ' • läuft') : ` • startet ${formatLead(leadMinutes)} vor Matchbeginn`}
- {error && ( -
- {error} -
- )} + {error &&
{error}
}
@@ -228,12 +214,11 @@ export default function MapVoteBanner({ Voting abgeschlossen - ) : isOpen ? ( - + ) : isVotingOpen ? ( + {iCanAct ? 'Jetzt wählen' : 'Map-Vote offen'} ) : ( - // 🔑 Hydration-safe: vor dem Mount nur ein Placeholder rendern
diff --git a/src/app/components/MapVoteProfileCard.tsx b/src/app/components/MapVoteProfileCard.tsx index b73ef5b..113bac0 100644 --- a/src/app/components/MapVoteProfileCard.tsx +++ b/src/app/components/MapVoteProfileCard.tsx @@ -1,4 +1,4 @@ -// src/app/components/MapVoteProfileCard.tsx +// /src/app/components/MapVoteProfileCard.tsx 'use client' import PremierRankBadge from './PremierRankBadge' diff --git a/src/app/components/MatchDetails.tsx b/src/app/components/MatchDetails.tsx index 916f43d..b00c634 100644 --- a/src/app/components/MatchDetails.tsx +++ b/src/app/components/MatchDetails.tsx @@ -1,4 +1,4 @@ -// /app/components/MatchDetails.tsx +// /src/app/components/MatchDetails.tsx 'use client' import { useState, useEffect, useMemo, useRef } from 'react' @@ -431,13 +431,15 @@ export function MatchDetails({ match, initialNow }: { match: Match; initialNow:
{/* MapVote-Banner erhält die aktuell berechneten (SSE-konformen) Werte */} - + {(match.matchType === 'community' && + + )} {/* ───────── Team-Blöcke ───────── */}
diff --git a/src/app/components/NotificationBell.tsx b/src/app/components/NotificationBell.tsx index cb78ec9..ba1f414 100644 --- a/src/app/components/NotificationBell.tsx +++ b/src/app/components/NotificationBell.tsx @@ -6,6 +6,7 @@ import { useSession } from 'next-auth/react' import { useRouter } from 'next/navigation' import { useSSEStore } from '@/app/lib/useSSEStore' import { NOTIFICATION_EVENTS, isSseEventType } from '../lib/sseEvents' +import { useUiChromeStore } from '@/app/lib/useUiChromeStore' type Notification = { id: string @@ -36,12 +37,16 @@ export default function NotificationBell() { const router = useRouter() const { lastEvent } = useSSEStore() // nur konsumieren, nicht connecten const bellRef = useRef(null); + const telemetryBannerPx = useUiChromeStore(s => s.telemetryBannerPx) const [notifications, setNotifications] = useState([]) const [open, setOpen] = useState(false) const [previewText, setPreviewText] = useState(null) const [showPreview, setShowPreview] = useState(false) const [animateBell, setAnimateBell] = useState(false) + + const baseBottom = 24 // px, entspricht bottom-6 + const bottomPx = baseBottom + (telemetryBannerPx || 0) useEffect(() => { if (!lastEvent) return @@ -79,7 +84,7 @@ export default function NotificationBell() { if (!steamId) return ;(async () => { try { - const res = await fetch('/api/notifications/user') + const res = await fetch('/api/notifications') if (!res.ok) throw new Error('Fehler beim Laden') const data = await res.json() const loaded: Notification[] = data.notifications.map((n: any) => ({ @@ -257,7 +262,10 @@ export default function NotificationBell() { // 4) Render return ( -
+
- - {/* Radar */} -
  • - -
  • diff --git a/src/app/components/SidebarFooter.tsx b/src/app/components/SidebarFooter.tsx index 3b94f13..ddb9bd4 100644 --- a/src/app/components/SidebarFooter.tsx +++ b/src/app/components/SidebarFooter.tsx @@ -68,11 +68,11 @@ export default function SidebarFooter() { }` return ( -
    +
    {/* Kopf / Toggle */} )}
    diff --git a/src/app/components/TeamCardComponent.tsx b/src/app/components/TeamCardComponent.tsx index b797ed1..366031e 100644 --- a/src/app/components/TeamCardComponent.tsx +++ b/src/app/components/TeamCardComponent.tsx @@ -1,4 +1,4 @@ -// /app/components/TeamCardComponent.tsx +// /src/app/components/TeamCardComponent.tsx 'use client' diff --git a/src/app/components/TelemetryBanner.tsx b/src/app/components/TelemetryBanner.tsx new file mode 100644 index 0000000..e91f675 --- /dev/null +++ b/src/app/components/TelemetryBanner.tsx @@ -0,0 +1,279 @@ +// src/app/components/TelemetryBanner.tsx +'use client' + +import React, { useEffect, useRef } from 'react' +import Link from 'next/link' +import Button from '@/app/components/Button' +import { useUiChromeStore } from '@/app/lib/useUiChromeStore' +import { MAP_OPTIONS } from '@/app/lib/mapOptions' + +export type TelemetryBannerVariant = 'connected' | 'disconnected' + +type Props = { + variant: TelemetryBannerVariant + visible: boolean + zIndex?: number + // gemeinsam + connectedCount: number + totalExpected: number + connectUri: string + onReconnect: () => void + // neu: zum harten Trennen (X-Button) + onDisconnect?: () => void + // nur für "connected" + serverLabel?: string + mapKey?: string + mapLabel?: string + phase?: string + score?: string + // nur für "disconnected" + missingCount?: number + // optional: wenn im Dock unter Main gerendert + inline?: boolean +} + +/* ---------- helpers ---------- */ +function hashStr(s: string): number { + let h = 5381 + for (let i = 0; i < s.length; i++) h = ((h << 5) + h) + s.charCodeAt(i) + return h | 0 +} +function pickMapImageFromOptions(mapKey?: string): string | null { + if (!mapKey) return null + const opt = MAP_OPTIONS.find(o => o.key.toLowerCase() === mapKey.toLowerCase()) + if (!opt || !opt.images?.length) return null + const idx = Math.abs(hashStr(mapKey)) % opt.images.length + return opt.images[idx] ?? null +} +function pickMapIcon(mapKey?: string): string | null { + if (!mapKey) return null + const opt = MAP_OPTIONS.find(o => o.key.toLowerCase() === mapKey.toLowerCase()) + return opt?.icon ?? null +} + +/* ---------- component ---------- */ +export default function TelemetryBanner({ + variant, + visible, + zIndex = 9999, + connectedCount, + totalExpected, + connectUri, + onReconnect, + onDisconnect, + serverLabel, + mapKey, + mapLabel, + phase, + score, + missingCount, + inline = false, +}: Props) { + const ref = useRef(null) + const setBannerPx = useUiChromeStore(s => s.setTelemetryBannerPx) + + // ▼ Phase normalisieren und Sichtbarkeit nur erlauben, wenn nicht "unknown" + const phaseStr = String(phase ?? 'unknown').toLowerCase() + const show = visible && phaseStr !== 'unknown' + + useEffect(() => { + if (!show) { setBannerPx(0); return } + const el = ref.current + if (!el) return + const report = () => setBannerPx(el.getBoundingClientRect().height) + report() + const ro = new ResizeObserver(report) + ro.observe(el) + return () => { ro.disconnect(); setBannerPx(0) } + }, [show, setBannerPx]) + + // Ableitungen vor dem Guard + const outerBase = inline ? '' : 'fixed inset-x-0 bottom-0' + const outerStyle = inline ? {} : { zIndex } + + const wrapperClass = + variant === 'connected' + ? 'bg-emerald-700/95 text-white ring-1 ring-black/10' + : 'bg-amber-700/95 text-white ring-1 ring-black/10' + + const bgUrl = pickMapImageFromOptions(mapKey) + const mapIconConnected = pickMapIcon(mapKey) + const iconUrl = variant === 'connected' ? (mapIconConnected ?? '') : '/assets/img/icons/ui/disconnect.svg' + + const prettyMap = mapLabel ?? mapKey ?? '—' + const prettyPhase = phaseStr || 'unknown' // nutzt die normalisierte Phase + const prettyScore = score ?? '– : –' + + const handleFocusGame = (e: React.MouseEvent) => { + e.preventDefault() + try { window.location.href = 'steam://rungameid/730' } catch {} + } + + // ▼ nichts rendern, wenn Phase unbekannt oder sichtbar=false + if (!show) return null + + return ( +
    +
    + {/* Subtiler Map-Hintergrund */} + {bgUrl && ( +
    + )} + + {/* Lesbarkeits-Gradient */} +
    + + {/* Inhalt */} +
    + {/* Icon links */} + {iconUrl ? ( +
    +
    + {/* eslint-disable-next-line @next/next/no-img-element */} + {variant +
    +
    + ) : null} + +
    + {variant === 'connected' ? ( + <> +
    + Verbunden mit {serverLabel ?? 'CS2-Server'} +
    +
    + Map: {prettyMap} + Phase: {prettyPhase} + Score: {prettyScore} + Spieler verbunden: {connectedCount} / {totalExpected} +
    + + ) : ( + <> +
    Verbindung getrennt
    +
    + Map: {prettyMap} + Phase: {prettyPhase} + Score: {prettyScore} + Spieler verbunden: {connectedCount} / {totalExpected} +
    + + )} +
    + + {/* Buttons rechts */} +
    + {/* Radar */} + + + + + {/* Spiel öffnen / Neu verbinden */} + {variant === 'connected' ? ( + +
    +
    + + {/* CSS für Radar-Ping & Sweep */} + +
    +
    + ) +} diff --git a/src/app/components/TelemetrySocket.tsx b/src/app/components/TelemetrySocket.tsx index 1a735d9..f2bbc71 100644 --- a/src/app/components/TelemetrySocket.tsx +++ b/src/app/components/TelemetrySocket.tsx @@ -1,12 +1,14 @@ 'use client' import { useEffect, useMemo, useRef, useState } from 'react' +import { createPortal } from 'react-dom' +import { useSession } from 'next-auth/react' +import { useReadyOverlayStore } from '@/app/lib/useReadyOverlayStore' import { usePresenceStore } from '@/app/lib/usePresenceStore' import { useTelemetryStore } from '@/app/lib/useTelemetryStore' import { useMatchRosterStore } from '@/app/lib/useMatchRosterStore' -import { useSession } from 'next-auth/react' - -type Status = 'idle'|'connecting'|'open'|'closed'|'error' +import TelemetryBanner from './TelemetryBanner' +import { MAP_OPTIONS } from '@/app/lib/mapOptions' function makeWsUrl(host?: string, port?: string, path?: string, scheme?: string) { const h = (host ?? '').trim() || '127.0.0.1' @@ -16,51 +18,90 @@ function makeWsUrl(host?: string, port?: string, path?: string, scheme?: string) const pageHttps = typeof window !== 'undefined' && window.location.protocol === 'https:' const useWss = sch === 'wss' || (sch !== 'ws' && (p === '443' || pageHttps)) const proto = useWss ? 'wss' : 'ws' - const portPart = (p === '80' || p === '443') ? '' : `:${p}` + const portPart = p === '80' || p === '443' ? '' : `:${p}` return `${proto}://${h}${portPart}${pa}` } +const sidOf = (p: any) => String(p?.steamId ?? p?.steam_id ?? p?.id ?? '') +const toSet = (arr: Iterable) => new Set(Array.from(arr).map(String)) + +function parseServerLabel(uri: string | null | undefined): string { + if (!uri) return 'CS2-Server' + const m = uri.match(/steam:\/\/connect\/([^/]+)/i) + if (m && m[1]) return m[1].split('/')[0] || 'CS2-Server' + try { + const u = new URL(uri) + return u.host || 'CS2-Server' + } catch { + return uri ?? 'CS2-Server' + } +} + +function labelForMap(key?: string | null): string { + if (!key) return '—' + const k = String(key).toLowerCase() + const opt = MAP_OPTIONS.find(o => o.key.toLowerCase() === k) + if (opt?.label) return opt.label + // Fallback: "de_dust2" -> "Dust 2" + let s = k.replace(/^(de|cs)_/, '').replace(/_/g, ' ').replace(/(\d)/g, ' $1').replace(/\s+/g, ' ').trim() + s = s.split(' ').map(w => (w ? w[0].toUpperCase() + w.slice(1) : w)).join(' ') + return s +} + export default function TelemetrySocket() { const url = useMemo( - () => makeWsUrl( - process.env.NEXT_PUBLIC_CS2_TELEMETRY_WS_HOST, - process.env.NEXT_PUBLIC_CS2_TELEMETRY_WS_PORT, - process.env.NEXT_PUBLIC_CS2_TELEMETRY_WS_PATH, - process.env.NEXT_PUBLIC_CS2_TELEMETRY_WS_SCHEME - ), + () => + makeWsUrl( + process.env.NEXT_PUBLIC_CS2_TELEMETRY_WS_HOST, + process.env.NEXT_PUBLIC_CS2_TELEMETRY_WS_PORT, + process.env.NEXT_PUBLIC_CS2_TELEMETRY_WS_PATH, + process.env.NEXT_PUBLIC_CS2_TELEMETRY_WS_SCHEME + ), [] ) const { data: session } = useSession() const mySteamId = (session?.user as any)?.steamId ?? null - const setSnapshot = usePresenceStore(s => s.setSnapshot) - const setJoin = usePresenceStore(s => s.setJoin) - const setLeave = usePresenceStore(s => s.setLeave) + // overlay control + const hideOverlay = useReadyOverlayStore((s) => s.hide) - const setMapKey = useTelemetryStore(s => s.setMapKey) - const phase = useTelemetryStore(s => s.phase) - const setPhase = useTelemetryStore(s => s.setPhase) + // presence/telemetry stores + const setSnapshot = usePresenceStore((s) => s.setSnapshot) + const setJoin = usePresenceStore((s) => s.setJoin) + const setLeave = usePresenceStore((s) => s.setLeave) - const rosterSet = useMatchRosterStore(s => s.roster) + const setMapKey = useTelemetryStore((s) => s.setMapKey) + const phase = useTelemetryStore((s) => s.phase) + const setPhase = useTelemetryStore((s) => s.setPhase) - // 👇 Tracke, ob ICH gerade auf dem Server bin - const [myConnected, setMyConnected] = useState(false) + // roster (persisted by ReadyOverlayHost) + const rosterSet = useMatchRosterStore((s) => s.roster) - // internes Dismiss-Flag fürs Banner (pro Mount) - const [dismissed, setDismissed] = useState(false) + // local telemetry state + const [telemetrySet, setTelemetrySet] = useState>(new Set()) + const [mapKeyForUi, setMapKeyForUi] = useState(null) + const [score, setScore] = useState<{ a: number | null; b: number | null }>({ a: null, b: null }) - // connectHref optional dynamisch vom Backend ziehen + // connect uri + server name const [connectHref, setConnectHref] = useState(null) + const [serverName, setServerName] = useState(null) - // WS-Reconnect + // ws const aliveRef = useRef(true) const retryRef = useRef(null) - const wsRef = useRef(null) + const wsRef = useRef(null) - // Connect-Href laden (Passwort etc. aus DB) + // dock element (unter dem Main) + const [dockEl, setDockEl] = useState(null) useEffect(() => { - (async () => { + if (typeof window === 'undefined') return + setDockEl(document.getElementById('telemetry-banner-dock') as HTMLElement | null) + }, []) + + // connect href from API + useEffect(() => { + ;(async () => { try { const r = await fetch('/api/cs2/server', { cache: 'no-store' }) if (r.ok) { @@ -71,6 +112,7 @@ export default function TelemetrySocket() { })() }, []) + // websocket connect useEffect(() => { aliveRef.current = true @@ -95,40 +137,70 @@ export default function TelemetrySocket() { try { msg = JSON.parse(String(ev.data ?? '')) } catch {} if (!msg) return - if (msg.type === 'players' && Array.isArray(msg.players)) { - setSnapshot(msg.players) - // 👇 bin ich in der aktuellen Players-Liste? - if (mySteamId) { - const present = msg.players.some((p: any) => - String(p?.steamId ?? p?.steam_id ?? p?.id) === String(mySteamId) - ) - setMyConnected(present) - } - } else if (msg.type === 'player_join' && msg.player) { - setJoin(msg.player) - // 👇 falls ich join: - const sid = msg.player?.steamId ?? msg.player?.steam_id ?? msg.player?.id - if (mySteamId && String(sid) === String(mySteamId)) setMyConnected(true) - } else if (msg.type === 'player_leave') { - const sid = msg.steamId ?? msg.steam_id ?? msg.id - if (sid != null) setLeave(sid) - // 👇 falls ich leave: - if (mySteamId && String(sid) === String(mySteamId)) setMyConnected(false) + // --- server name (optional) + if (msg.type === 'server' && typeof msg.name === 'string' && msg.name.trim()) { + setServerName(msg.name.trim()) } - // Map (inkl. optionaler Phase) - if (msg.type === 'map' && typeof msg.name === 'string') { - const key = msg.name.toLowerCase() - if (process.env.NODE_ENV!=='production') console.debug('[TelemetrySocket] map:', key) - setMapKey(key) - if (typeof msg.phase === 'string') { - setPhase(String(msg.phase).toLowerCase() as any) + // --- full roster + if (msg.type === 'players' && Array.isArray(msg.players)) { + setSnapshot(msg.players) + const ids = msg.players.map(sidOf).filter(Boolean) + setTelemetrySet(toSet(ids)) + if (mySteamId) { + const present = msg.players.some((p: any) => sidOf(p) === String(mySteamId)) + if (present) hideOverlay() } } - // Reine Phase-Events + + // --- incremental roster + if (msg.type === 'player_join' && msg.player) { + setJoin(msg.player) + setTelemetrySet(prev => { + const next = new Set(prev) + const sid = sidOf(msg.player) + if (sid) next.add(sid) + return next + }) + const sid = sidOf(msg.player) + if (mySteamId && sid && sid === String(mySteamId)) hideOverlay() + } + + if (msg.type === 'player_leave') { + const sid = String(msg.steamId ?? msg.steam_id ?? msg.id ?? '') + if (sid) setLeave(sid) + setTelemetrySet(prev => { + const next = new Set(prev) + if (sid) next.delete(sid) + return next + }) + } + + // --- map: NUR map + optional serverName, NICHT die Phase übernehmen + if (msg.type === 'map' && typeof msg.name === 'string') { + const key = msg.name.toLowerCase() + setMapKey(key) + setMapKeyForUi(key) + if (typeof msg.serverName === 'string' && msg.serverName.trim()) { + setServerName(msg.serverName.trim()) + } + } + + // --- phase: AUSSCHLIESSLICHE Quelle für die Phase if (msg.type === 'phase' && typeof msg.phase === 'string') { setPhase(String(msg.phase).toLowerCase() as any) } + + // --- score (unverändert) + if (msg.type === 'score') { + const a = Number(msg.team1 ?? msg.ct) + const b = Number(msg.team2 ?? msg.t) + setScore({ a: Number.isFinite(a) ? a : null, b: Number.isFinite(b) ? b : null }) + } else if (msg.score) { + const a = Number(msg.score.team1 ?? msg.score.ct) + const b = Number(msg.score.team2 ?? msg.score.t) + setScore({ a: Number.isFinite(a) ? a : null, b: Number.isFinite(b) ? b : null }) + } } } @@ -138,61 +210,87 @@ export default function TelemetrySocket() { if (retryRef.current) window.clearTimeout(retryRef.current) try { wsRef.current?.close(1000, 'telemetry socket unmounted') } catch {} } - }, [url, setSnapshot, setJoin, setLeave, setMapKey, setPhase, mySteamId]) + }, [url, setSnapshot, setJoin, setLeave, setMapKey, setPhase, hideOverlay, mySteamId]) - // Anzeige-Logik Banner: - // - Ich bin im Roster (Match wurde geladen & ich bin Teilnehmer) - // - Match-Phase live - // - Ich bin NICHT connected (disconnect) - const meInRoster = !!mySteamId && rosterSet instanceof Set && rosterSet.has(String(mySteamId)) - const shouldShow = !dismissed && (phase === 'live') && meInRoster && !myConnected + // ----- banner logic (connected + disconnected variants) with roster fallback + const myId = mySteamId ? String(mySteamId) : null + const roster = + rosterSet instanceof Set && rosterSet.size > 0 + ? rosterSet + : (myId ? new Set([myId]) : new Set()) + + const iAmExpected = !!myId && roster.has(myId) + const iAmOnline = !!myId && telemetrySet.has(myId) + + const intersectCount = (() => { + if (roster.size === 0) return 0 + let n = 0 + for (const sid of roster) if (telemetrySet.has(sid)) n++ + return n + })() + const totalExpected = roster.size const connectUri = - connectHref // ⬅️ bevorzugt API-Route (inkl. Passwort) - || process.env.NEXT_PUBLIC_STEAM_CONNECT_URI - || process.env.NEXT_PUBLIC_CS2_CONNECT_URI - || 'steam://rungameid/730//+retry' // Fallback + connectHref || + process.env.NEXT_PUBLIC_STEAM_CONNECT_URI || + process.env.NEXT_PUBLIC_CS2_CONNECT_URI || + 'steam://rungameid/730//+retry' + + // Fallback-Label aus URI, falls kein Servername vom WS kam + const fallbackServerLabel = parseServerLabel(connectUri) + const effectiveServerLabel = (serverName && serverName.trim()) || fallbackServerLabel + + const prettyPhase = phase ?? 'unknown' + const prettyScore = (score.a == null || score.b == null) ? '– : –' : `${score.a} : ${score.b}` + const prettyMapLabel = labelForMap(mapKeyForUi) const handleReconnect = () => { - try { - window.location.href = connectUri - } catch { - // no-op - } + try { window.location.href = connectUri } catch {} } - return ( - <> - {/* WebSocket-Client selbst rendert nichts */} - {shouldShow && ( -
    -
    -
    -
    -
    Match läuft · Reconnect verfügbar
    -
    - Du bist im aufgesetzten Match eingetragen. Klicke „Reconnect“, um wieder zu joinen. -
    -
    -
    - - -
    -
    -
    -
    - )} - + const handleDisconnect = () => { + // Auto-Reconnect stoppen + aliveRef.current = false; + if (retryRef.current) { + window.clearTimeout(retryRef.current); + retryRef.current = null; + } + + // WebSocket sauber schließen + try { wsRef.current?.close(1000, 'user requested disconnect') } catch {} + wsRef.current = null; + + // Lokalen Zustand zurücksetzen (wir bleiben im "disconnected"-Banner) + setTelemetrySet(new Set()); + setServerName(null); + setMapKeyForUi(null); + setPhase('unknown' as any); + setScore({ a: null, b: null }); + }; + + const variant: 'connected' | 'disconnected' = iAmOnline ? 'connected' : 'disconnected' + const visible = iAmExpected + const zIndex = iAmOnline ? 9998 : 9999 + + const bannerEl = ( + ) + + return dockEl ? createPortal(bannerEl, dockEl) : bannerEl } diff --git a/src/app/components/UserAvatarWithStatus.tsx b/src/app/components/UserAvatarWithStatus.tsx index 0f1825f..b77bc3c 100644 --- a/src/app/components/UserAvatarWithStatus.tsx +++ b/src/app/components/UserAvatarWithStatus.tsx @@ -1,4 +1,4 @@ -// src/app/components/UserAvatarWithStatus.tsx +// /src/app/components/UserAvatarWithStatus.tsx 'use client' import { useEffect, useState, useMemo } from 'react' diff --git a/src/app/components/UserHeader.tsx b/src/app/components/UserHeader.tsx index fcb146c..562b228 100644 --- a/src/app/components/UserHeader.tsx +++ b/src/app/components/UserHeader.tsx @@ -1,4 +1,4 @@ -// /app/components/UserHeader.tsx +// /src/app/components/UserHeader.tsx import { Tabs } from '@/app/components/Tabs' import PremierRankBadge from './PremierRankBadge' diff --git a/src/app/components/admin/teams/AdminTeamsView.tsx b/src/app/components/admin/teams/AdminTeamsView.tsx index 68cb118..6badeec 100644 --- a/src/app/components/admin/teams/AdminTeamsView.tsx +++ b/src/app/components/admin/teams/AdminTeamsView.tsx @@ -1,3 +1,5 @@ +// /src/app/components/admin/teams/AdminTeamsView.tsx + 'use client' import { useEffect, useState, useRef, useCallback } from 'react' @@ -25,9 +27,15 @@ export default function AdminTeamsView() { const fetchTeams = useCallback(async () => { setLoading(true) try { - const res = await fetch('/api/teams') + const res = await fetch('/api/teams', { cache: 'no-store' }) const json = await res.json() - setTeams(json.teams ?? []) + + // robust parsen: Array ODER Objekt mit teams/items + const list: Team[] = Array.isArray(json) + ? json + : (json?.teams ?? json?.items ?? []) + + setTeams(list) } catch (err) { console.error('[AdminTeamsView] /api/teams:', err) setTeams([]) diff --git a/src/app/components/profile/[steamId]/matches/UserMatchesList.tsx b/src/app/components/profile/[steamId]/matches/UserMatchesList.tsx index 304cf18..0333a19 100644 --- a/src/app/components/profile/[steamId]/matches/UserMatchesList.tsx +++ b/src/app/components/profile/[steamId]/matches/UserMatchesList.tsx @@ -1,3 +1,5 @@ +// /src/app/components/profile/[steamId]/matches/UserMatchesList.tsx + 'use client' import { useEffect, useRef, useState, useCallback } from 'react' @@ -230,13 +232,47 @@ export default function UserMatchesList({ steamId }: { steamId: string }) { >
    - {mapInfo?.label} - {mapInfo?.label} + {(() => { + const raw = m.map || '' + const normKey = raw.replace(/^de_/, '') // "de_ancient" -> "ancient" + + // 1) Versuch: exact normKey + // 2) Versuch: raw (mit "de_") + // 3) Versuch: wieder mit "de_" (falls m.map ohne Prefix kam) + const opt = + MAP_OPTIONS.find(o => o.key === normKey) || + MAP_OPTIONS.find(o => o.key === raw) || + MAP_OPTIONS.find(o => o.key === `de_${normKey}`) || + null + + const label = + opt?.label || + normKey || // sinnvoller Text, falls alles fehlt + 'Map' + + // Icon-Quelle: erst aus MAP_OPTIONS, sonst generischer Pfad auf Basis des normKey + const iconSrc = opt?.icon || `/assets/img/mapicons/map_icon_${normKey}.svg` + + // Debug (kannst du wieder entfernen) + // console.log({ raw, normKey, optKey: opt?.key, label, iconSrc }) + + return ( + <> + {label} { + (e.currentTarget as HTMLImageElement).src = + '/assets/img/mapicons/map_icon_lobby_mapveto.svg' + }} + /> + {label} + + ) + })()}
    diff --git a/src/app/components/radar/StaticEffects.tsx b/src/app/components/radar/StaticEffects.tsx index 4970b4c..e013612 100644 --- a/src/app/components/radar/StaticEffects.tsx +++ b/src/app/components/radar/StaticEffects.tsx @@ -1,4 +1,4 @@ -// src/app/components/radar/StaticEffects.tsx +// /src/app/components/radar/StaticEffects.tsx 'use client' import React from 'react' diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index 8775ffc..19139fa 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -1,76 +1,54 @@ +// /src/app/dashboard/page.tsx + 'use client' import { useEffect, useState } from 'react' import { useSession } from 'next-auth/react' -import Modal from '@/app/components/Modal' -import Link from 'next/link' -import Button from '../components/Button' -import ComboBox from '../components/ComboBox' export default function Dashboard() { const { data: session, status } = useSession() - const [showTeamModal, setShowTeamModal] = useState(false) const [teams, setTeams] = useState([]) const [selectedTeam, setSelectedTeam] = useState('') + // Teams laden (robust) useEffect(() => { - if (status === 'authenticated' && !session?.user?.team) { - setShowTeamModal(true) - } - }, [session, status]) + let abort = false - useEffect(() => { - if (showTeamModal) { - const open = setTimeout(() => { - const modalEl = document.getElementById('hs-vertically-centered-modal') - if (modalEl && typeof window.HSOverlay?.open === 'function') { - try { - window.HSOverlay.open(modalEl) - } catch (err) { - console.error('Fehler beim Öffnen des Modals:', err) - } - } - }, 300) - - return () => clearTimeout(open) - } - }, [showTeamModal]) - - useEffect(() => { - const fetchTeams = async () => { + async function fetchTeams() { try { - const res = await fetch('/api/teams') - const data = await res.json() - setTeams(data.teams.map((t: { teamname: string }) => t.teamname)) + const res = await fetch('/api/teams', { cache: 'no-store' }) + if (!res.ok) throw new Error(`HTTP ${res.status}`) + + let json: any = null + try { json = await res.json() } catch {} + + const teamsArr: any[] = + Array.isArray(json?.teams) ? json.teams : + Array.isArray(json?.data) ? json.data : + Array.isArray(json) ? json : + [] + + if (!abort) { + setTeams(teamsArr.map((t) => t?.teamname ?? t?.name ?? 'Unbenannt')) + } } catch (error) { console.error('Fehler beim Laden der Teams:', error) + if (!abort) setTeams([]) } } + fetchTeams() + return () => { abort = true } }, []) return ( <> - {showTeamModal && ( - -

    - Du bist aktuell keinem Team beigetreten. Bitte tritt einem Team bei oder erstelle eines. -

    - - - -
    - )} -

    Willkommen im Dashboard!

    + + {/* Beispiel: Teams anzeigen (optional) */} + {/*
    {JSON.stringify(teams, null, 2)}
    */} ) -} \ No newline at end of file +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index ec344c1..dc2aa1f 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -53,6 +53,7 @@ export default function RootLayout({ children }: { children: React.ReactNode }) {children}
    +
    diff --git a/src/app/lib/mapOptions.ts b/src/app/lib/mapOptions.ts index 1d0b566..64c2d2f 100644 --- a/src/app/lib/mapOptions.ts +++ b/src/app/lib/mapOptions.ts @@ -35,7 +35,6 @@ export const MAP_OPTIONS: MapOption[] = [ 'de_dust2_1_png.webp', 'de_dust2_2_png.webp', 'de_dust2_3_png.webp', - 'de_dust2_4_png.webp', 'de_dust2_png.webp', ]), icon: iconFor('de_dust2'), diff --git a/src/app/lib/prisma.ts b/src/app/lib/prisma.ts index 29ec144..4862177 100644 --- a/src/app/lib/prisma.ts +++ b/src/app/lib/prisma.ts @@ -1,4 +1,4 @@ -// src/lib/prisma.ts +// /src/lib/prisma.ts import { PrismaClient } from '@/generated/prisma' const globalForPrisma = globalThis as unknown as { diff --git a/src/app/lib/signOutWithStatus.ts b/src/app/lib/signOutWithStatus.ts index de7c16b..ce6cc25 100644 --- a/src/app/lib/signOutWithStatus.ts +++ b/src/app/lib/signOutWithStatus.ts @@ -1,4 +1,4 @@ -// src/app/lib/signOutWithStatus.ts +// /src/app/lib/signOutWithStatus.ts 'use client' import { signOut } from 'next-auth/react' diff --git a/src/app/lib/sseEvents.ts b/src/app/lib/sseEvents.ts index 4340cf4..767e301 100644 --- a/src/app/lib/sseEvents.ts +++ b/src/app/lib/sseEvents.ts @@ -1,4 +1,4 @@ -// /app/lib/sseEvents.ts +// /src/app/lib/sseEvents.ts export const SSE_EVENT_TYPES = [ // Kanonisch diff --git a/src/app/lib/useMatchRosterStore.ts b/src/app/lib/useMatchRosterStore.ts index fe71a32..1e9ce26 100644 --- a/src/app/lib/useMatchRosterStore.ts +++ b/src/app/lib/useMatchRosterStore.ts @@ -1,4 +1,4 @@ -// /app/lib/useMatchRosterStore.ts +// /src/app/lib/useMatchRosterStore.ts import { create } from 'zustand' import { persist } from 'zustand/middleware' diff --git a/src/app/lib/useTelemetryStore.ts b/src/app/lib/useTelemetryStore.ts index 62c7f8f..bb8d038 100644 --- a/src/app/lib/useTelemetryStore.ts +++ b/src/app/lib/useTelemetryStore.ts @@ -1,4 +1,4 @@ -// /app/lib/useTelemetryStore.ts +// /src/app/lib/useTelemetryStore.ts import { create } from 'zustand' type TelemetryState = { diff --git a/src/app/lib/useUiChromeStore.ts b/src/app/lib/useUiChromeStore.ts new file mode 100644 index 0000000..0c0f769 --- /dev/null +++ b/src/app/lib/useUiChromeStore.ts @@ -0,0 +1,12 @@ +'use client' +import { create } from 'zustand' + +type UiChromeState = { + telemetryBannerPx: number // aktuelle Bannerhöhe in Pixel (0 wenn unsichtbar) + setTelemetryBannerPx: (px: number) => void +} + +export const useUiChromeStore = create((set) => ({ + telemetryBannerPx: 0, + setTelemetryBannerPx: (px) => set({ telemetryBannerPx: Math.max(0, Math.floor(px)) }), +})) diff --git a/src/app/profile/[steamId]/layout.tsx b/src/app/profile/[steamId]/layout.tsx index 3539605..52db9ee 100644 --- a/src/app/profile/[steamId]/layout.tsx +++ b/src/app/profile/[steamId]/layout.tsx @@ -1,4 +1,4 @@ -// /app/profile/[steamId]/layout.tsx +// /src/app/profile/[steamId]/layout.tsx import type { ReactNode } from 'react' import { notFound } from 'next/navigation' import { prisma } from '@/app/lib/prisma' diff --git a/src/app/profile/[steamId]/matches/page.tsx b/src/app/profile/[steamId]/matches/page.tsx index 501487d..6f2371a 100644 --- a/src/app/profile/[steamId]/matches/page.tsx +++ b/src/app/profile/[steamId]/matches/page.tsx @@ -1,4 +1,4 @@ -// /app/profile/[steamId]/matches/page.tsx +// /src/app/profile/[steamId]/matches/page.tsx import Card from '@/app/components/Card' import UserMatchesList from '@/app/components/profile/[steamId]/matches/UserMatchesList' diff --git a/src/app/profile/[steamId]/page.tsx b/src/app/profile/[steamId]/page.tsx index 916080b..ef16492 100644 --- a/src/app/profile/[steamId]/page.tsx +++ b/src/app/profile/[steamId]/page.tsx @@ -1,4 +1,4 @@ -// /app/profile/[steamId]/page.tsx +// /src/app/profile/[steamId]/page.tsx import { redirect } from 'next/navigation' export default function ProfileRedirect({ params }: { params: { steamId: string } }) { diff --git a/src/app/profile/[steamId]/stats/page.tsx b/src/app/profile/[steamId]/stats/page.tsx index 51f29d3..175237f 100644 --- a/src/app/profile/[steamId]/stats/page.tsx +++ b/src/app/profile/[steamId]/stats/page.tsx @@ -1,4 +1,4 @@ -// /app/profile/[steamId]/stats/page.tsx +// /src/app/profile/[steamId]/stats/page.tsx import UserProfile from '@/app/components/profile/[steamId]/stats/UserProfile' import { MatchStats } from '@/app/types/match' diff --git a/src/app/radar/LiveRadar.tsx b/src/app/radar/LiveRadar.tsx index aeda6e1..9a2fb27 100644 --- a/src/app/radar/LiveRadar.tsx +++ b/src/app/radar/LiveRadar.tsx @@ -1,4 +1,4 @@ -// src/app/components/radar/LiveRadar.tsx +// /src/app/components/radar/LiveRadar.tsx 'use client' import { useEffect, useMemo, useRef, useState } from 'react' diff --git a/src/app/team/[teamId]/page.tsx b/src/app/team/[teamId]/page.tsx index 63a5d86..328f753 100644 --- a/src/app/team/[teamId]/page.tsx +++ b/src/app/team/[teamId]/page.tsx @@ -1,4 +1,4 @@ -// src/app/team/[teamId]/page.tsx +// /src/app/team/[teamId]/page.tsx 'use client' import { useEffect, useState, KeyboardEvent, MouseEvent } from 'react' diff --git a/src/app/team/page.tsx b/src/app/team/page.tsx index 2a318d6..7ffcd8c 100644 --- a/src/app/team/page.tsx +++ b/src/app/team/page.tsx @@ -1,4 +1,4 @@ -// /app/team/page.tsx +// /src/app/team/page.tsx 'use client'; diff --git a/src/app/teams/page.tsx b/src/app/teams/page.tsx new file mode 100644 index 0000000..89a9f11 --- /dev/null +++ b/src/app/teams/page.tsx @@ -0,0 +1,173 @@ +// /app/teams/page.tsx +'use client' + +import { useEffect, useRef, useState, useCallback } from 'react' +import { useSession } from 'next-auth/react' +import Button from '@/app/components/Button' +import Modal from '@/app/components/Modal' +import Input from '@/app/components/Input' +import TeamCard from '@/app/components/TeamCard' +import LoadingSpinner from '@/app/components/LoadingSpinner' +import type { Team } from '@/app/types/team' +import Card from '../components/Card' + +type TeamsResp = any +type InvitesResp = { invitations?: any[] } | any +type UserResp = { team?: any } | any + +export default function TeamsPage() { + const { data: session } = useSession() + const mySteamId = (session?.user as any)?.steamId ?? '' + + const [teams, setTeams] = useState([]) + const [loading, setLoading] = useState(true) + + const [invitationMap, setInvitationMap] = useState>({}) + const [showCreate, setShowCreate] = useState(false) + const [newName, setNewName] = useState('') + const [saving, setSaving] = useState(false) + + // NEU: Flag aus /api/user + const [userHasTeam, setUserHasTeam] = useState(false) + + const parseTeams = (data: TeamsResp): Team[] => { + if (Array.isArray(data)) return data + return (data?.items ?? data?.teams ?? []) as Team[] + } + + const fetchAll = useCallback(async () => { + setLoading(true) + try { + const [tRes, iRes, uRes] = await Promise.all([ + fetch('/api/teams', { cache: 'no-store' }), + fetch('/api/user/invitations', { cache: 'no-store' }), + fetch('/api/user', { cache: 'no-store' }), // ⬅️ eigene Team-Mitgliedschaft + ]) + + const [tJson, iJson, uJson]: [TeamsResp, InvitesResp, UserResp] = await Promise.all([ + tRes.json(), + iRes.json().catch(() => ({} as any)), + uRes.ok ? uRes.json() : ({} as any), + ]) + + const nextTeams = parseTeams(tJson) + const nextMap: Record = {} + + const invites = Array.isArray(iJson) ? iJson : (iJson?.invitations ?? []) + for (const inv of invites) { + if (inv?.type === 'team-join-request' && inv?.teamId && inv?.id) { + nextMap[inv.teamId] = inv.id + } + } + + setTeams(nextTeams) + setInvitationMap(nextMap) + setUserHasTeam(!!uJson?.team) // ⬅️ entscheidend + } catch (err) { + console.error('[TeamsPage] load failed:', err) + setTeams([]) + setInvitationMap({}) + setUserHasTeam(false) + } finally { + setLoading(false) + } + }, []) + + const fetchedOnce = useRef(false) + useEffect(() => { + if (fetchedOnce.current) return + fetchedOnce.current = true + fetchAll() + }, [fetchAll]) + + const createTeam = async () => { + if (!newName.trim()) return + setSaving(true) + try { + const res = await fetch('/api/team/create', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ teamname: newName.trim() }), + }) + if (!res.ok) { + const j = await res.json().catch(() => ({})) + alert(j?.message ?? 'Team konnte nicht erstellt werden.') + return + } + await fetchAll() + setShowCreate(false) + setNewName('') + } catch (e) { + console.error('[TeamsPage] createTeam:', e) + alert('Team konnte nicht erstellt werden.') + } finally { + setSaving(false) + } + } + + if (loading) { + return ( +
    + +
    + ) + } + + // Nur anzeigen, wenn der Spieler in KEINEM Team ist + const canRequestJoin = !userHasTeam + + return ( + +
    +

    + Teams verwalten +

    + + +
    + + {teams.length === 0 ? ( +
    + Es wurden noch keine Teams erstellt. +
    + ) : ( +
    + {teams.map((t) => ( + + setInvitationMap((prev) => ({ ...prev, [teamId]: inviteId })) + } + canRequestJoin={canRequestJoin} // ⬅️ Button-Logik + /> + ))} +
    + )} + + { + setShowCreate(false) + setNewName('') + }} + onSave={createTeam} + closeButtonColor="blue" + closeButtonTitle={saving ? 'Speichern …' : 'Erstellen'} + > + setNewName(e.target.value)} + /> + +
    + ) +} diff --git a/src/app/types/match.ts b/src/app/types/match.ts index 3748f55..c5119f1 100644 --- a/src/app/types/match.ts +++ b/src/app/types/match.ts @@ -1,4 +1,4 @@ -// src/app/types/match.ts +// /src/app/types/match.ts import { Player, Team } from './team' diff --git a/src/generated/prisma/edge.js b/src/generated/prisma/edge.js index 7e60901..5b83a29 100644 --- a/src/generated/prisma/edge.js +++ b/src/generated/prisma/edge.js @@ -158,7 +158,9 @@ exports.Prisma.MatchScalarFieldEnum = { bestOf: 'bestOf', matchDate: 'matchDate', createdAt: 'createdAt', - updatedAt: 'updatedAt' + updatedAt: 'updatedAt', + cs2MatchId: 'cs2MatchId', + exportedAt: 'exportedAt' }; exports.Prisma.MatchPlayerScalarFieldEnum = { @@ -402,13 +404,13 @@ const config = { } } }, - "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\n//\n// ──────────────────────────────────────────────\n// 🧑 Benutzer, Teams & Verwaltung\n// ──────────────────────────────────────────────\n//\n\nmodel User {\n steamId String @id\n name String?\n avatar String?\n location String?\n isAdmin Boolean @default(false)\n\n teamId String?\n team Team? @relation(\"UserTeam\", fields: [teamId], references: [id])\n ledTeam Team? @relation(\"TeamLeader\")\n\n matchesAsTeamA Match[] @relation(\"TeamAPlayers\")\n matchesAsTeamB Match[] @relation(\"TeamBPlayers\")\n\n premierRank Int?\n authCode String?\n lastKnownShareCode String?\n lastKnownShareCodeDate DateTime?\n createdAt DateTime @default(now())\n\n invites TeamInvite[] @relation(\"UserInvitations\")\n notifications Notification[]\n matchPlayers MatchPlayer[]\n serverRequests ServerRequest[] @relation(\"MatchRequests\")\n rankHistory RankHistory[] @relation(\"UserRankHistory\")\n demoFiles DemoFile[]\n\n createdSchedules Schedule[] @relation(\"CreatedSchedules\")\n confirmedSchedules Schedule[] @relation(\"ConfirmedSchedules\")\n\n mapVoteChoices MapVoteStep[] @relation(\"VoteStepChooser\")\n\n status UserStatus @default(offline) // 👈 neu\n lastActiveAt DateTime? // optional: wann zuletzt aktiv\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyUser\")\n\n pterodactylClientApiKey String?\n}\n\nenum UserStatus {\n online\n away\n offline\n}\n\nmodel Team {\n id String @id @default(uuid())\n name String @unique\n logo String?\n leaderId String? @unique\n createdAt DateTime @default(now())\n\n activePlayers String[]\n inactivePlayers String[]\n\n leader User? @relation(\"TeamLeader\", fields: [leaderId], references: [steamId])\n members User[] @relation(\"UserTeam\")\n invites TeamInvite[]\n matchPlayers MatchPlayer[]\n\n matchesAsTeamA Match[] @relation(\"MatchTeamA\")\n matchesAsTeamB Match[] @relation(\"MatchTeamB\")\n\n schedulesAsTeamA Schedule[] @relation(\"ScheduleTeamA\")\n schedulesAsTeamB Schedule[] @relation(\"ScheduleTeamB\")\n\n mapVoteSteps MapVoteStep[] @relation(\"VoteStepTeam\")\n}\n\nmodel TeamInvite {\n id String @id @default(uuid())\n steamId String\n teamId String\n type String\n createdAt DateTime @default(now())\n\n user User @relation(\"UserInvitations\", fields: [steamId], references: [steamId])\n team Team @relation(fields: [teamId], references: [id])\n}\n\nmodel Notification {\n id String @id @default(uuid())\n steamId String\n title String?\n message String\n read Boolean @default(false)\n persistent Boolean @default(false)\n actionType String?\n actionData String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [steamId], references: [steamId])\n}\n\n//\n// ──────────────────────────────────────────────\n// 🎮 Matches & Spieler\n// ──────────────────────────────────────────────\n//\n\n// ──────────────────────────────────────────────\n// 🎮 Matches\n// ──────────────────────────────────────────────\n\nmodel Match {\n id String @id @default(uuid())\n title String\n matchType String @default(\"community\")\n map String?\n description String?\n scoreA Int?\n scoreB Int?\n\n teamAId String?\n teamA Team? @relation(\"MatchTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"MatchTeamB\", fields: [teamBId], references: [id])\n\n teamAUsers User[] @relation(\"TeamAPlayers\")\n teamBUsers User[] @relation(\"TeamBPlayers\")\n\n filePath String?\n demoFile DemoFile?\n demoDate DateTime?\n demoData Json?\n\n players MatchPlayer[]\n rankUpdates RankHistory[] @relation(\"MatchRankHistory\")\n\n roundCount Int?\n roundHistory Json?\n winnerTeam String?\n\n bestOf Int @default(3) // 1 | 3 | 5 – app-seitig validieren\n matchDate DateTime? // geplante Startzeit (separat von demoDate)\n mapVote MapVote?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n schedule Schedule?\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyMatch\")\n}\n\nmodel MatchPlayer {\n id String @id @default(uuid())\n steamId String\n matchId String\n teamId String?\n team Team? @relation(fields: [teamId], references: [id])\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n\n stats PlayerStats?\n\n createdAt DateTime @default(now())\n\n @@unique([matchId, steamId])\n}\n\nmodel PlayerStats {\n id String @id @default(uuid())\n matchId String\n steamId String\n\n kills Int\n assists Int\n deaths Int\n headshotPct Float\n\n totalDamage Float @default(0)\n utilityDamage Int @default(0)\n flashAssists Int @default(0)\n mvps Int @default(0)\n mvpEliminations Int @default(0)\n mvpDefuse Int @default(0)\n mvpPlant Int @default(0)\n knifeKills Int @default(0)\n zeusKills Int @default(0)\n wallbangKills Int @default(0)\n smokeKills Int @default(0)\n headshots Int @default(0)\n noScopes Int @default(0)\n blindKills Int @default(0)\n\n aim Int @default(0)\n\n oneK Int @default(0)\n twoK Int @default(0)\n threeK Int @default(0)\n fourK Int @default(0)\n fiveK Int @default(0)\n\n rankOld Int?\n rankNew Int?\n rankChange Int?\n winCount Int?\n\n matchPlayer MatchPlayer @relation(fields: [matchId, steamId], references: [matchId, steamId])\n\n @@unique([matchId, steamId])\n}\n\nmodel RankHistory {\n id String @id @default(uuid())\n steamId String\n matchId String?\n\n rankOld Int\n rankNew Int\n delta Int\n winCount Int\n\n createdAt DateTime @default(now())\n\n user User @relation(\"UserRankHistory\", fields: [steamId], references: [steamId])\n match Match? @relation(\"MatchRankHistory\", fields: [matchId], references: [id])\n}\n\nmodel Schedule {\n id String @id @default(uuid())\n title String\n description String?\n map String?\n date DateTime\n status ScheduleStatus @default(PENDING)\n\n teamAId String?\n teamA Team? @relation(\"ScheduleTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"ScheduleTeamB\", fields: [teamBId], references: [id])\n\n createdById String\n createdBy User @relation(\"CreatedSchedules\", fields: [createdById], references: [steamId])\n\n confirmedById String?\n confirmedBy User? @relation(\"ConfirmedSchedules\", fields: [confirmedById], references: [steamId])\n\n linkedMatchId String? @unique\n linkedMatch Match? @relation(fields: [linkedMatchId], references: [id])\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum ScheduleStatus {\n PENDING\n CONFIRMED\n DECLINED\n CANCELLED\n COMPLETED\n}\n\n//\n// ──────────────────────────────────────────────\n// 📦 Demo-Dateien & CS2 Requests\n// ──────────────────────────────────────────────\n//\n\nmodel DemoFile {\n id String @id @default(uuid())\n matchId String @unique\n steamId String\n fileName String @unique\n filePath String\n parsed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n}\n\nmodel ServerRequest {\n id String @id @default(uuid())\n steamId String\n matchId String\n reservationId BigInt\n tvPort BigInt\n processed Boolean @default(false)\n failed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n user User @relation(\"MatchRequests\", fields: [steamId], references: [steamId])\n\n @@unique([steamId, matchId])\n}\n\n// ──────────────────────────────────────────────\n// 🗺️ Map-Vote\n// ──────────────────────────────────────────────\n\nenum MapVoteAction {\n BAN\n PICK\n DECIDER\n}\n\nmodel MapVote {\n id String @id @default(uuid())\n matchId String @unique\n match Match @relation(fields: [matchId], references: [id])\n\n bestOf Int @default(3)\n mapPool String[]\n currentIdx Int @default(0)\n locked Boolean @default(false)\n opensAt DateTime?\n\n leadMinutes Int @default(60)\n\n adminEditingBy String?\n adminEditingSince DateTime?\n\n steps MapVoteStep[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel MapVoteStep {\n id String @id @default(uuid())\n voteId String\n order Int\n action MapVoteAction\n\n teamId String?\n team Team? @relation(\"VoteStepTeam\", fields: [teamId], references: [id])\n\n map String?\n chosenAt DateTime?\n chosenBy String?\n chooser User? @relation(\"VoteStepChooser\", fields: [chosenBy], references: [steamId])\n\n vote MapVote @relation(fields: [voteId], references: [id])\n\n @@unique([voteId, order])\n @@index([teamId])\n @@index([chosenBy])\n}\n\nmodel MatchReady {\n matchId String\n steamId String\n acceptedAt DateTime @default(now())\n\n match Match @relation(\"MatchReadyMatch\", fields: [matchId], references: [id])\n user User @relation(\"MatchReadyUser\", fields: [steamId], references: [steamId])\n\n @@id([matchId, steamId])\n @@index([steamId])\n}\n\n// ──────────────────────────────────────────────\n// 🛠️ Server-Konfiguration & Pterodactyl\n// ──────────────────────────────────────────────\n\nmodel ServerConfig {\n id String @id\n serverIp String\n serverPassword String? // ⬅️ neu\n pterodactylServerId String\n pterodactylServerApiKey String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", - "inlineSchemaHash": "b5fc5dbbe91449141e347d047671ac31fa27eff450cb3cdd79a1668e199bf17d", + "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\n//\n// ──────────────────────────────────────────────\n// 🧑 Benutzer, Teams & Verwaltung\n// ──────────────────────────────────────────────\n//\n\nmodel User {\n steamId String @id\n name String?\n avatar String?\n location String?\n isAdmin Boolean @default(false)\n\n teamId String?\n team Team? @relation(\"UserTeam\", fields: [teamId], references: [id])\n ledTeam Team? @relation(\"TeamLeader\")\n\n matchesAsTeamA Match[] @relation(\"TeamAPlayers\")\n matchesAsTeamB Match[] @relation(\"TeamBPlayers\")\n\n premierRank Int?\n authCode String?\n lastKnownShareCode String?\n lastKnownShareCodeDate DateTime?\n createdAt DateTime @default(now())\n\n invites TeamInvite[] @relation(\"UserInvitations\")\n notifications Notification[]\n matchPlayers MatchPlayer[]\n serverRequests ServerRequest[] @relation(\"MatchRequests\")\n rankHistory RankHistory[] @relation(\"UserRankHistory\")\n demoFiles DemoFile[]\n\n createdSchedules Schedule[] @relation(\"CreatedSchedules\")\n confirmedSchedules Schedule[] @relation(\"ConfirmedSchedules\")\n\n mapVoteChoices MapVoteStep[] @relation(\"VoteStepChooser\")\n\n status UserStatus @default(offline) // 👈 neu\n lastActiveAt DateTime? // optional: wann zuletzt aktiv\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyUser\")\n\n pterodactylClientApiKey String?\n}\n\nenum UserStatus {\n online\n away\n offline\n}\n\nmodel Team {\n id String @id @default(uuid())\n name String @unique\n logo String?\n leaderId String? @unique\n createdAt DateTime @default(now())\n\n activePlayers String[]\n inactivePlayers String[]\n\n leader User? @relation(\"TeamLeader\", fields: [leaderId], references: [steamId])\n members User[] @relation(\"UserTeam\")\n invites TeamInvite[]\n matchPlayers MatchPlayer[]\n\n matchesAsTeamA Match[] @relation(\"MatchTeamA\")\n matchesAsTeamB Match[] @relation(\"MatchTeamB\")\n\n schedulesAsTeamA Schedule[] @relation(\"ScheduleTeamA\")\n schedulesAsTeamB Schedule[] @relation(\"ScheduleTeamB\")\n\n mapVoteSteps MapVoteStep[] @relation(\"VoteStepTeam\")\n}\n\nmodel TeamInvite {\n id String @id @default(uuid())\n steamId String\n teamId String\n type String\n createdAt DateTime @default(now())\n\n user User @relation(\"UserInvitations\", fields: [steamId], references: [steamId])\n team Team @relation(fields: [teamId], references: [id])\n}\n\nmodel Notification {\n id String @id @default(uuid())\n steamId String\n title String?\n message String\n read Boolean @default(false)\n persistent Boolean @default(false)\n actionType String?\n actionData String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [steamId], references: [steamId])\n}\n\n//\n// ──────────────────────────────────────────────\n// 🎮 Matches & Spieler\n// ──────────────────────────────────────────────\n//\n\n// ──────────────────────────────────────────────\n// 🎮 Matches\n// ──────────────────────────────────────────────\n\nmodel Match {\n id String @id @default(uuid())\n title String\n matchType String @default(\"community\")\n map String?\n description String?\n scoreA Int?\n scoreB Int?\n\n teamAId String?\n teamA Team? @relation(\"MatchTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"MatchTeamB\", fields: [teamBId], references: [id])\n\n teamAUsers User[] @relation(\"TeamAPlayers\")\n teamBUsers User[] @relation(\"TeamBPlayers\")\n\n filePath String?\n demoFile DemoFile?\n demoDate DateTime?\n demoData Json?\n\n players MatchPlayer[]\n rankUpdates RankHistory[] @relation(\"MatchRankHistory\")\n\n roundCount Int?\n roundHistory Json?\n winnerTeam String?\n\n bestOf Int @default(3) // 1 | 3 | 5 – app-seitig validieren\n matchDate DateTime? // geplante Startzeit (separat von demoDate)\n mapVote MapVote?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n schedule Schedule?\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyMatch\")\n\n cs2MatchId Int? // die in die JSON geschriebene matchid\n exportedAt DateTime? // wann die JSON exportiert wurde\n}\n\nmodel MatchPlayer {\n id String @id @default(uuid())\n steamId String\n matchId String\n teamId String?\n team Team? @relation(fields: [teamId], references: [id])\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n\n stats PlayerStats?\n\n createdAt DateTime @default(now())\n\n @@unique([matchId, steamId])\n}\n\nmodel PlayerStats {\n id String @id @default(uuid())\n matchId String\n steamId String\n\n kills Int\n assists Int\n deaths Int\n headshotPct Float\n\n totalDamage Float @default(0)\n utilityDamage Int @default(0)\n flashAssists Int @default(0)\n mvps Int @default(0)\n mvpEliminations Int @default(0)\n mvpDefuse Int @default(0)\n mvpPlant Int @default(0)\n knifeKills Int @default(0)\n zeusKills Int @default(0)\n wallbangKills Int @default(0)\n smokeKills Int @default(0)\n headshots Int @default(0)\n noScopes Int @default(0)\n blindKills Int @default(0)\n\n aim Int @default(0)\n\n oneK Int @default(0)\n twoK Int @default(0)\n threeK Int @default(0)\n fourK Int @default(0)\n fiveK Int @default(0)\n\n rankOld Int?\n rankNew Int?\n rankChange Int?\n winCount Int?\n\n matchPlayer MatchPlayer @relation(fields: [matchId, steamId], references: [matchId, steamId])\n\n @@unique([matchId, steamId])\n}\n\nmodel RankHistory {\n id String @id @default(uuid())\n steamId String\n matchId String?\n\n rankOld Int\n rankNew Int\n delta Int\n winCount Int\n\n createdAt DateTime @default(now())\n\n user User @relation(\"UserRankHistory\", fields: [steamId], references: [steamId])\n match Match? @relation(\"MatchRankHistory\", fields: [matchId], references: [id])\n}\n\nmodel Schedule {\n id String @id @default(uuid())\n title String\n description String?\n map String?\n date DateTime\n status ScheduleStatus @default(PENDING)\n\n teamAId String?\n teamA Team? @relation(\"ScheduleTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"ScheduleTeamB\", fields: [teamBId], references: [id])\n\n createdById String\n createdBy User @relation(\"CreatedSchedules\", fields: [createdById], references: [steamId])\n\n confirmedById String?\n confirmedBy User? @relation(\"ConfirmedSchedules\", fields: [confirmedById], references: [steamId])\n\n linkedMatchId String? @unique\n linkedMatch Match? @relation(fields: [linkedMatchId], references: [id])\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum ScheduleStatus {\n PENDING\n CONFIRMED\n DECLINED\n CANCELLED\n COMPLETED\n}\n\n//\n// ──────────────────────────────────────────────\n// 📦 Demo-Dateien & CS2 Requests\n// ──────────────────────────────────────────────\n//\n\nmodel DemoFile {\n id String @id @default(uuid())\n matchId String @unique\n steamId String\n fileName String @unique\n filePath String\n parsed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n}\n\nmodel ServerRequest {\n id String @id @default(uuid())\n steamId String\n matchId String\n reservationId BigInt\n tvPort BigInt\n processed Boolean @default(false)\n failed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n user User @relation(\"MatchRequests\", fields: [steamId], references: [steamId])\n\n @@unique([steamId, matchId])\n}\n\n// ──────────────────────────────────────────────\n// 🗺️ Map-Vote\n// ──────────────────────────────────────────────\n\nenum MapVoteAction {\n BAN\n PICK\n DECIDER\n}\n\nmodel MapVote {\n id String @id @default(uuid())\n matchId String @unique\n match Match @relation(fields: [matchId], references: [id])\n\n bestOf Int @default(3)\n mapPool String[]\n currentIdx Int @default(0)\n locked Boolean @default(false)\n opensAt DateTime?\n\n leadMinutes Int @default(60)\n\n adminEditingBy String?\n adminEditingSince DateTime?\n\n steps MapVoteStep[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel MapVoteStep {\n id String @id @default(uuid())\n voteId String\n order Int\n action MapVoteAction\n\n teamId String?\n team Team? @relation(\"VoteStepTeam\", fields: [teamId], references: [id])\n\n map String?\n chosenAt DateTime?\n chosenBy String?\n chooser User? @relation(\"VoteStepChooser\", fields: [chosenBy], references: [steamId])\n\n vote MapVote @relation(fields: [voteId], references: [id])\n\n @@unique([voteId, order])\n @@index([teamId])\n @@index([chosenBy])\n}\n\nmodel MatchReady {\n matchId String\n steamId String\n acceptedAt DateTime @default(now())\n\n match Match @relation(\"MatchReadyMatch\", fields: [matchId], references: [id])\n user User @relation(\"MatchReadyUser\", fields: [steamId], references: [steamId])\n\n @@id([matchId, steamId])\n @@index([steamId])\n}\n\n// ──────────────────────────────────────────────\n// 🛠️ Server-Konfiguration & Pterodactyl\n// ──────────────────────────────────────────────\n\nmodel ServerConfig {\n id String @id\n serverIp String\n serverPassword String? // ⬅️ neu\n pterodactylServerId String\n pterodactylServerApiKey String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", + "inlineSchemaHash": "e0211c6bd15447c8802ecb57f8776ca6e7bfe801d649f576ab30d145fcef1f22", "copyEngine": true } config.dirname = '/' -config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"avatar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"location\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isAdmin\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"UserTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ledTeam\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"TeamLeader\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"TeamAPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"TeamBPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"premierRank\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastKnownShareCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastKnownShareCodeDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"invites\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TeamInvite\",\"nativeType\":null,\"relationName\":\"UserInvitations\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notifications\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Notification\",\"nativeType\":null,\"relationName\":\"NotificationToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverRequests\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"ServerRequest\",\"nativeType\":null,\"relationName\":\"MatchRequests\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankHistory\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RankHistory\",\"nativeType\":null,\"relationName\":\"UserRankHistory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoFiles\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DemoFile\",\"nativeType\":null,\"relationName\":\"DemoFileToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdSchedules\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"CreatedSchedules\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedSchedules\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ConfirmedSchedules\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVoteChoices\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"VoteStepChooser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"UserStatus\",\"nativeType\":null,\"default\":\"offline\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastActiveAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchReady\",\"nativeType\":null,\"relationName\":\"MatchReadyUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylClientApiKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Team\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"logo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leaderId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"activePlayers\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"inactivePlayers\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leader\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamLeader\",\"relationFromFields\":[\"leaderId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"members\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"invites\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TeamInvite\",\"nativeType\":null,\"relationName\":\"TeamToTeamInvite\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchTeamA\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchTeamB\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"schedulesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ScheduleTeamA\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"schedulesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ScheduleTeamB\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVoteSteps\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"VoteStepTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TeamInvite\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserInvitations\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"TeamToTeamInvite\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Notification\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"message\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"read\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"persistent\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actionType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actionData\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"NotificationToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Match\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"community\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scoreA\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scoreB\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamA\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchTeamA\",\"relationFromFields\":[\"teamAId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamB\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchTeamB\",\"relationFromFields\":[\"teamBId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamAPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamBPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filePath\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoFile\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DemoFile\",\"nativeType\":null,\"relationName\":\"DemoFileToMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoData\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"players\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchToMatchPlayer\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankUpdates\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RankHistory\",\"nativeType\":null,\"relationName\":\"MatchRankHistory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roundCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roundHistory\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winnerTeam\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":3,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVote\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVote\",\"nativeType\":null,\"relationName\":\"MapVoteToMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"schedule\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"MatchToSchedule\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchReady\",\"nativeType\":null,\"relationName\":\"MatchReadyMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MatchPlayer\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchPlayerToTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchToMatchPlayer\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchPlayerToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"stats\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PlayerStats\",\"nativeType\":null,\"relationName\":\"MatchPlayerToPlayerStats\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"matchId\",\"steamId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]}],\"isGenerated\":false},\"PlayerStats\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"assists\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"deaths\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"headshotPct\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"totalDamage\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Float\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"utilityDamage\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"flashAssists\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvps\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpEliminations\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpDefuse\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpPlant\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"knifeKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"zeusKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"wallbangKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"smokeKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"headshots\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"noScopes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"blindKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"aim\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"oneK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"twoK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"threeK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fourK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fiveK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankChange\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayer\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToPlayerStats\",\"relationFromFields\":[\"matchId\",\"steamId\"],\"relationToFields\":[\"matchId\",\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"matchId\",\"steamId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]}],\"isGenerated\":false},\"RankHistory\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"delta\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserRankHistory\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchRankHistory\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Schedule\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"date\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"ScheduleStatus\",\"nativeType\":null,\"default\":\"PENDING\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamA\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"ScheduleTeamA\",\"relationFromFields\":[\"teamAId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamB\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"ScheduleTeamB\",\"relationFromFields\":[\"teamBId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdById\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdBy\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"CreatedSchedules\",\"relationFromFields\":[\"createdById\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedById\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedBy\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"ConfirmedSchedules\",\"relationFromFields\":[\"confirmedById\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linkedMatchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linkedMatch\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchToSchedule\",\"relationFromFields\":[\"linkedMatchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"DemoFile\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fileName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filePath\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"parsed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"DemoFileToMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"DemoFileToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ServerRequest\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reservationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tvPort\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"processed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"failed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchRequests\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"steamId\",\"matchId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"steamId\",\"matchId\"]}],\"isGenerated\":false},\"MapVote\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MapVoteToMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":3,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapPool\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"currentIdx\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"locked\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"opensAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leadMinutes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":60,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"adminEditingBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"adminEditingSince\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steps\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"MapVoteToMapVoteStep\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MapVoteStep\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"voteId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"order\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteAction\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"VoteStepTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chosenAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chosenBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chooser\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"VoteStepChooser\",\"relationFromFields\":[\"chosenBy\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"vote\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVote\",\"nativeType\":null,\"relationName\":\"MapVoteToMapVoteStep\",\"relationFromFields\":[\"voteId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"voteId\",\"order\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"voteId\",\"order\"]}],\"isGenerated\":false},\"MatchReady\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchReadyMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchReadyUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ServerConfig\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverIp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverPassword\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylServerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylServerApiKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{\"UserStatus\":{\"values\":[{\"name\":\"online\",\"dbName\":null},{\"name\":\"away\",\"dbName\":null},{\"name\":\"offline\",\"dbName\":null}],\"dbName\":null},\"ScheduleStatus\":{\"values\":[{\"name\":\"PENDING\",\"dbName\":null},{\"name\":\"CONFIRMED\",\"dbName\":null},{\"name\":\"DECLINED\",\"dbName\":null},{\"name\":\"CANCELLED\",\"dbName\":null},{\"name\":\"COMPLETED\",\"dbName\":null}],\"dbName\":null},\"MapVoteAction\":{\"values\":[{\"name\":\"BAN\",\"dbName\":null},{\"name\":\"PICK\",\"dbName\":null},{\"name\":\"DECIDER\",\"dbName\":null}],\"dbName\":null}},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"avatar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"location\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isAdmin\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"UserTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ledTeam\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"TeamLeader\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"TeamAPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"TeamBPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"premierRank\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastKnownShareCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastKnownShareCodeDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"invites\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TeamInvite\",\"nativeType\":null,\"relationName\":\"UserInvitations\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notifications\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Notification\",\"nativeType\":null,\"relationName\":\"NotificationToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverRequests\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"ServerRequest\",\"nativeType\":null,\"relationName\":\"MatchRequests\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankHistory\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RankHistory\",\"nativeType\":null,\"relationName\":\"UserRankHistory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoFiles\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DemoFile\",\"nativeType\":null,\"relationName\":\"DemoFileToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdSchedules\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"CreatedSchedules\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedSchedules\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ConfirmedSchedules\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVoteChoices\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"VoteStepChooser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"UserStatus\",\"nativeType\":null,\"default\":\"offline\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastActiveAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchReady\",\"nativeType\":null,\"relationName\":\"MatchReadyUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylClientApiKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Team\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"logo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leaderId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"activePlayers\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"inactivePlayers\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leader\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamLeader\",\"relationFromFields\":[\"leaderId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"members\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"invites\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TeamInvite\",\"nativeType\":null,\"relationName\":\"TeamToTeamInvite\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchTeamA\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchTeamB\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"schedulesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ScheduleTeamA\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"schedulesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ScheduleTeamB\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVoteSteps\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"VoteStepTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TeamInvite\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserInvitations\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"TeamToTeamInvite\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Notification\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"message\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"read\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"persistent\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actionType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actionData\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"NotificationToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Match\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"community\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scoreA\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scoreB\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamA\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchTeamA\",\"relationFromFields\":[\"teamAId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamB\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchTeamB\",\"relationFromFields\":[\"teamBId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamAPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamBPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filePath\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoFile\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DemoFile\",\"nativeType\":null,\"relationName\":\"DemoFileToMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoData\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"players\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchToMatchPlayer\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankUpdates\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RankHistory\",\"nativeType\":null,\"relationName\":\"MatchRankHistory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roundCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roundHistory\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winnerTeam\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":3,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVote\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVote\",\"nativeType\":null,\"relationName\":\"MapVoteToMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"schedule\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"MatchToSchedule\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchReady\",\"nativeType\":null,\"relationName\":\"MatchReadyMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"cs2MatchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"exportedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MatchPlayer\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchPlayerToTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchToMatchPlayer\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchPlayerToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"stats\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PlayerStats\",\"nativeType\":null,\"relationName\":\"MatchPlayerToPlayerStats\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"matchId\",\"steamId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]}],\"isGenerated\":false},\"PlayerStats\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"assists\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"deaths\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"headshotPct\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"totalDamage\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Float\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"utilityDamage\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"flashAssists\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvps\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpEliminations\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpDefuse\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpPlant\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"knifeKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"zeusKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"wallbangKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"smokeKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"headshots\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"noScopes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"blindKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"aim\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"oneK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"twoK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"threeK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fourK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fiveK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankChange\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayer\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToPlayerStats\",\"relationFromFields\":[\"matchId\",\"steamId\"],\"relationToFields\":[\"matchId\",\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"matchId\",\"steamId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]}],\"isGenerated\":false},\"RankHistory\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"delta\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserRankHistory\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchRankHistory\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Schedule\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"date\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"ScheduleStatus\",\"nativeType\":null,\"default\":\"PENDING\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamA\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"ScheduleTeamA\",\"relationFromFields\":[\"teamAId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamB\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"ScheduleTeamB\",\"relationFromFields\":[\"teamBId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdById\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdBy\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"CreatedSchedules\",\"relationFromFields\":[\"createdById\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedById\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedBy\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"ConfirmedSchedules\",\"relationFromFields\":[\"confirmedById\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linkedMatchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linkedMatch\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchToSchedule\",\"relationFromFields\":[\"linkedMatchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"DemoFile\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fileName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filePath\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"parsed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"DemoFileToMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"DemoFileToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ServerRequest\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reservationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tvPort\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"processed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"failed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchRequests\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"steamId\",\"matchId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"steamId\",\"matchId\"]}],\"isGenerated\":false},\"MapVote\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MapVoteToMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":3,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapPool\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"currentIdx\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"locked\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"opensAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leadMinutes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":60,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"adminEditingBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"adminEditingSince\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steps\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"MapVoteToMapVoteStep\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MapVoteStep\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"voteId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"order\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteAction\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"VoteStepTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chosenAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chosenBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chooser\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"VoteStepChooser\",\"relationFromFields\":[\"chosenBy\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"vote\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVote\",\"nativeType\":null,\"relationName\":\"MapVoteToMapVoteStep\",\"relationFromFields\":[\"voteId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"voteId\",\"order\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"voteId\",\"order\"]}],\"isGenerated\":false},\"MatchReady\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchReadyMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchReadyUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ServerConfig\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverIp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverPassword\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylServerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylServerApiKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{\"UserStatus\":{\"values\":[{\"name\":\"online\",\"dbName\":null},{\"name\":\"away\",\"dbName\":null},{\"name\":\"offline\",\"dbName\":null}],\"dbName\":null},\"ScheduleStatus\":{\"values\":[{\"name\":\"PENDING\",\"dbName\":null},{\"name\":\"CONFIRMED\",\"dbName\":null},{\"name\":\"DECLINED\",\"dbName\":null},{\"name\":\"CANCELLED\",\"dbName\":null},{\"name\":\"COMPLETED\",\"dbName\":null}],\"dbName\":null},\"MapVoteAction\":{\"values\":[{\"name\":\"BAN\",\"dbName\":null},{\"name\":\"PICK\",\"dbName\":null},{\"name\":\"DECIDER\",\"dbName\":null}],\"dbName\":null}},\"types\":{}}") defineDmmfProperty(exports.Prisma, config.runtimeDataModel) config.engineWasm = undefined config.compilerWasm = undefined diff --git a/src/generated/prisma/index-browser.js b/src/generated/prisma/index-browser.js index 4086a1a..54e1640 100644 --- a/src/generated/prisma/index-browser.js +++ b/src/generated/prisma/index-browser.js @@ -186,7 +186,9 @@ exports.Prisma.MatchScalarFieldEnum = { bestOf: 'bestOf', matchDate: 'matchDate', createdAt: 'createdAt', - updatedAt: 'updatedAt' + updatedAt: 'updatedAt', + cs2MatchId: 'cs2MatchId', + exportedAt: 'exportedAt' }; exports.Prisma.MatchPlayerScalarFieldEnum = { diff --git a/src/generated/prisma/index.d.ts b/src/generated/prisma/index.d.ts index 545d539..9a57b78 100644 --- a/src/generated/prisma/index.d.ts +++ b/src/generated/prisma/index.d.ts @@ -7604,6 +7604,7 @@ export namespace Prisma { scoreB: number | null roundCount: number | null bestOf: number | null + cs2MatchId: number | null } export type MatchSumAggregateOutputType = { @@ -7611,6 +7612,7 @@ export namespace Prisma { scoreB: number | null roundCount: number | null bestOf: number | null + cs2MatchId: number | null } export type MatchMinAggregateOutputType = { @@ -7631,6 +7633,8 @@ export namespace Prisma { matchDate: Date | null createdAt: Date | null updatedAt: Date | null + cs2MatchId: number | null + exportedAt: Date | null } export type MatchMaxAggregateOutputType = { @@ -7651,6 +7655,8 @@ export namespace Prisma { matchDate: Date | null createdAt: Date | null updatedAt: Date | null + cs2MatchId: number | null + exportedAt: Date | null } export type MatchCountAggregateOutputType = { @@ -7673,6 +7679,8 @@ export namespace Prisma { matchDate: number createdAt: number updatedAt: number + cs2MatchId: number + exportedAt: number _all: number } @@ -7682,6 +7690,7 @@ export namespace Prisma { scoreB?: true roundCount?: true bestOf?: true + cs2MatchId?: true } export type MatchSumAggregateInputType = { @@ -7689,6 +7698,7 @@ export namespace Prisma { scoreB?: true roundCount?: true bestOf?: true + cs2MatchId?: true } export type MatchMinAggregateInputType = { @@ -7709,6 +7719,8 @@ export namespace Prisma { matchDate?: true createdAt?: true updatedAt?: true + cs2MatchId?: true + exportedAt?: true } export type MatchMaxAggregateInputType = { @@ -7729,6 +7741,8 @@ export namespace Prisma { matchDate?: true createdAt?: true updatedAt?: true + cs2MatchId?: true + exportedAt?: true } export type MatchCountAggregateInputType = { @@ -7751,6 +7765,8 @@ export namespace Prisma { matchDate?: true createdAt?: true updatedAt?: true + cs2MatchId?: true + exportedAt?: true _all?: true } @@ -7860,6 +7876,8 @@ export namespace Prisma { matchDate: Date | null createdAt: Date updatedAt: Date + cs2MatchId: number | null + exportedAt: Date | null _count: MatchCountAggregateOutputType | null _avg: MatchAvgAggregateOutputType | null _sum: MatchSumAggregateOutputType | null @@ -7901,6 +7919,8 @@ export namespace Prisma { matchDate?: boolean createdAt?: boolean updatedAt?: boolean + cs2MatchId?: boolean + exportedAt?: boolean teamA?: boolean | Match$teamAArgs teamB?: boolean | Match$teamBArgs teamAUsers?: boolean | Match$teamAUsersArgs @@ -7934,6 +7954,8 @@ export namespace Prisma { matchDate?: boolean createdAt?: boolean updatedAt?: boolean + cs2MatchId?: boolean + exportedAt?: boolean teamA?: boolean | Match$teamAArgs teamB?: boolean | Match$teamBArgs }, ExtArgs["result"]["match"]> @@ -7958,6 +7980,8 @@ export namespace Prisma { matchDate?: boolean createdAt?: boolean updatedAt?: boolean + cs2MatchId?: boolean + exportedAt?: boolean teamA?: boolean | Match$teamAArgs teamB?: boolean | Match$teamBArgs }, ExtArgs["result"]["match"]> @@ -7982,9 +8006,11 @@ export namespace Prisma { matchDate?: boolean createdAt?: boolean updatedAt?: boolean + cs2MatchId?: boolean + exportedAt?: boolean } - export type MatchOmit = $Extensions.GetOmit<"id" | "title" | "matchType" | "map" | "description" | "scoreA" | "scoreB" | "teamAId" | "teamBId" | "filePath" | "demoDate" | "demoData" | "roundCount" | "roundHistory" | "winnerTeam" | "bestOf" | "matchDate" | "createdAt" | "updatedAt", ExtArgs["result"]["match"]> + export type MatchOmit = $Extensions.GetOmit<"id" | "title" | "matchType" | "map" | "description" | "scoreA" | "scoreB" | "teamAId" | "teamBId" | "filePath" | "demoDate" | "demoData" | "roundCount" | "roundHistory" | "winnerTeam" | "bestOf" | "matchDate" | "createdAt" | "updatedAt" | "cs2MatchId" | "exportedAt", ExtArgs["result"]["match"]> export type MatchInclude = { teamA?: boolean | Match$teamAArgs teamB?: boolean | Match$teamBArgs @@ -8041,6 +8067,8 @@ export namespace Prisma { matchDate: Date | null createdAt: Date updatedAt: Date + cs2MatchId: number | null + exportedAt: Date | null }, ExtArgs["result"]["match"]> composites: {} } @@ -8493,6 +8521,8 @@ export namespace Prisma { readonly matchDate: FieldRef<"Match", 'DateTime'> readonly createdAt: FieldRef<"Match", 'DateTime'> readonly updatedAt: FieldRef<"Match", 'DateTime'> + readonly cs2MatchId: FieldRef<"Match", 'Int'> + readonly exportedAt: FieldRef<"Match", 'DateTime'> } @@ -20998,7 +21028,9 @@ export namespace Prisma { bestOf: 'bestOf', matchDate: 'matchDate', createdAt: 'createdAt', - updatedAt: 'updatedAt' + updatedAt: 'updatedAt', + cs2MatchId: 'cs2MatchId', + exportedAt: 'exportedAt' }; export type MatchScalarFieldEnum = (typeof MatchScalarFieldEnum)[keyof typeof MatchScalarFieldEnum] @@ -21734,6 +21766,8 @@ export namespace Prisma { matchDate?: DateTimeNullableFilter<"Match"> | Date | string | null createdAt?: DateTimeFilter<"Match"> | Date | string updatedAt?: DateTimeFilter<"Match"> | Date | string + cs2MatchId?: IntNullableFilter<"Match"> | number | null + exportedAt?: DateTimeNullableFilter<"Match"> | Date | string | null teamA?: XOR | null teamB?: XOR | null teamAUsers?: UserListRelationFilter @@ -21766,6 +21800,8 @@ export namespace Prisma { matchDate?: SortOrderInput | SortOrder createdAt?: SortOrder updatedAt?: SortOrder + cs2MatchId?: SortOrderInput | SortOrder + exportedAt?: SortOrderInput | SortOrder teamA?: TeamOrderByWithRelationInput teamB?: TeamOrderByWithRelationInput teamAUsers?: UserOrderByRelationAggregateInput @@ -21801,6 +21837,8 @@ export namespace Prisma { matchDate?: DateTimeNullableFilter<"Match"> | Date | string | null createdAt?: DateTimeFilter<"Match"> | Date | string updatedAt?: DateTimeFilter<"Match"> | Date | string + cs2MatchId?: IntNullableFilter<"Match"> | number | null + exportedAt?: DateTimeNullableFilter<"Match"> | Date | string | null teamA?: XOR | null teamB?: XOR | null teamAUsers?: UserListRelationFilter @@ -21833,6 +21871,8 @@ export namespace Prisma { matchDate?: SortOrderInput | SortOrder createdAt?: SortOrder updatedAt?: SortOrder + cs2MatchId?: SortOrderInput | SortOrder + exportedAt?: SortOrderInput | SortOrder _count?: MatchCountOrderByAggregateInput _avg?: MatchAvgOrderByAggregateInput _max?: MatchMaxOrderByAggregateInput @@ -21863,6 +21903,8 @@ export namespace Prisma { matchDate?: DateTimeNullableWithAggregatesFilter<"Match"> | Date | string | null createdAt?: DateTimeWithAggregatesFilter<"Match"> | Date | string updatedAt?: DateTimeWithAggregatesFilter<"Match"> | Date | string + cs2MatchId?: IntNullableWithAggregatesFilter<"Match"> | number | null + exportedAt?: DateTimeNullableWithAggregatesFilter<"Match"> | Date | string | null } export type MatchPlayerWhereInput = { @@ -23152,6 +23194,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput @@ -23184,6 +23228,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput @@ -23212,6 +23258,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput @@ -23244,6 +23292,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput @@ -23274,6 +23324,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null } export type MatchUpdateManyMutationInput = { @@ -23294,6 +23346,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type MatchUncheckedUpdateManyInput = { @@ -23316,6 +23370,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type MatchPlayerCreateInput = { @@ -24757,6 +24813,8 @@ export namespace Prisma { matchDate?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder + cs2MatchId?: SortOrder + exportedAt?: SortOrder } export type MatchAvgOrderByAggregateInput = { @@ -24764,6 +24822,7 @@ export namespace Prisma { scoreB?: SortOrder roundCount?: SortOrder bestOf?: SortOrder + cs2MatchId?: SortOrder } export type MatchMaxOrderByAggregateInput = { @@ -24784,6 +24843,8 @@ export namespace Prisma { matchDate?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder + cs2MatchId?: SortOrder + exportedAt?: SortOrder } export type MatchMinOrderByAggregateInput = { @@ -24804,6 +24865,8 @@ export namespace Prisma { matchDate?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder + cs2MatchId?: SortOrder + exportedAt?: SortOrder } export type MatchSumOrderByAggregateInput = { @@ -24811,6 +24874,7 @@ export namespace Prisma { scoreB?: SortOrder roundCount?: SortOrder bestOf?: SortOrder + cs2MatchId?: SortOrder } export type JsonNullableWithAggregatesFilter<$PrismaModel = never> = | PatchUndefined< @@ -27636,6 +27700,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamBUsers?: UserCreateNestedManyWithoutMatchesAsTeamBInput @@ -27667,6 +27733,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput players?: MatchPlayerUncheckedCreateNestedManyWithoutMatchInput @@ -27699,6 +27767,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput @@ -27730,6 +27800,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput players?: MatchPlayerUncheckedCreateNestedManyWithoutMatchInput @@ -28173,6 +28245,8 @@ export namespace Prisma { matchDate?: DateTimeNullableFilter<"Match"> | Date | string | null createdAt?: DateTimeFilter<"Match"> | Date | string updatedAt?: DateTimeFilter<"Match"> | Date | string + cs2MatchId?: IntNullableFilter<"Match"> | number | null + exportedAt?: DateTimeNullableFilter<"Match"> | Date | string | null } export type MatchUpsertWithWhereUniqueWithoutTeamBUsersInput = { @@ -28670,6 +28744,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserCreateNestedManyWithoutMatchesAsTeamBInput @@ -28700,6 +28776,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput @@ -28738,6 +28816,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserCreateNestedManyWithoutMatchesAsTeamBInput @@ -28768,6 +28848,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput @@ -30174,6 +30256,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput @@ -30205,6 +30289,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput @@ -30425,6 +30511,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput @@ -30456,6 +30544,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput @@ -30738,6 +30828,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput @@ -30769,6 +30861,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput @@ -30881,6 +30975,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput @@ -30912,6 +31008,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput @@ -31143,6 +31241,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput @@ -31174,6 +31274,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput @@ -31445,6 +31547,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput @@ -31476,6 +31580,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput @@ -31503,6 +31609,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput @@ -31534,6 +31642,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput players?: MatchPlayerUncheckedCreateNestedManyWithoutMatchInput @@ -31640,6 +31750,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput @@ -31671,6 +31783,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput players?: MatchPlayerUncheckedUpdateManyWithoutMatchNestedInput @@ -31899,6 +32013,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput @@ -31930,6 +32046,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput @@ -32003,6 +32121,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput @@ -32034,6 +32154,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput @@ -32369,6 +32491,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamA?: TeamCreateNestedOneWithoutMatchesAsTeamAInput teamB?: TeamCreateNestedOneWithoutMatchesAsTeamBInput teamAUsers?: UserCreateNestedManyWithoutMatchesAsTeamAInput @@ -32400,6 +32524,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null teamAUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamAInput teamBUsers?: UserUncheckedCreateNestedManyWithoutMatchesAsTeamBInput demoFile?: DemoFileUncheckedCreateNestedOneWithoutMatchInput @@ -32506,6 +32632,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput @@ -32537,6 +32665,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput @@ -32732,6 +32862,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamBUsers?: UserUpdateManyWithoutMatchesAsTeamBNestedInput @@ -32763,6 +32895,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput players?: MatchPlayerUncheckedUpdateManyWithoutMatchNestedInput @@ -32792,6 +32926,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type MatchUpdateWithoutTeamBUsersInput = { @@ -32812,6 +32948,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput @@ -32843,6 +32981,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput players?: MatchPlayerUncheckedUpdateManyWithoutMatchNestedInput @@ -32872,6 +33012,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type TeamInviteUpdateWithoutUserInput = { @@ -33222,6 +33364,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null } export type MatchCreateManyTeamBInput = { @@ -33243,6 +33387,8 @@ export namespace Prisma { matchDate?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + cs2MatchId?: number | null + exportedAt?: Date | string | null } export type ScheduleCreateManyTeamAInput = { @@ -33421,6 +33567,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamB?: TeamUpdateOneWithoutMatchesAsTeamBNestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUpdateManyWithoutMatchesAsTeamBNestedInput @@ -33451,6 +33599,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput @@ -33480,6 +33630,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type MatchUpdateWithoutTeamBInput = { @@ -33500,6 +33652,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamA?: TeamUpdateOneWithoutMatchesAsTeamANestedInput teamAUsers?: UserUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUpdateManyWithoutMatchesAsTeamBNestedInput @@ -33530,6 +33684,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null teamAUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamANestedInput teamBUsers?: UserUncheckedUpdateManyWithoutMatchesAsTeamBNestedInput demoFile?: DemoFileUncheckedUpdateOneWithoutMatchNestedInput @@ -33559,6 +33715,8 @@ export namespace Prisma { matchDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + cs2MatchId?: NullableIntFieldUpdateOperationsInput | number | null + exportedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type ScheduleUpdateWithoutTeamAInput = { diff --git a/src/generated/prisma/index.js b/src/generated/prisma/index.js index 0c3ccd5..b2e0858 100644 --- a/src/generated/prisma/index.js +++ b/src/generated/prisma/index.js @@ -159,7 +159,9 @@ exports.Prisma.MatchScalarFieldEnum = { bestOf: 'bestOf', matchDate: 'matchDate', createdAt: 'createdAt', - updatedAt: 'updatedAt' + updatedAt: 'updatedAt', + cs2MatchId: 'cs2MatchId', + exportedAt: 'exportedAt' }; exports.Prisma.MatchPlayerScalarFieldEnum = { @@ -403,8 +405,8 @@ const config = { } } }, - "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\n//\n// ──────────────────────────────────────────────\n// 🧑 Benutzer, Teams & Verwaltung\n// ──────────────────────────────────────────────\n//\n\nmodel User {\n steamId String @id\n name String?\n avatar String?\n location String?\n isAdmin Boolean @default(false)\n\n teamId String?\n team Team? @relation(\"UserTeam\", fields: [teamId], references: [id])\n ledTeam Team? @relation(\"TeamLeader\")\n\n matchesAsTeamA Match[] @relation(\"TeamAPlayers\")\n matchesAsTeamB Match[] @relation(\"TeamBPlayers\")\n\n premierRank Int?\n authCode String?\n lastKnownShareCode String?\n lastKnownShareCodeDate DateTime?\n createdAt DateTime @default(now())\n\n invites TeamInvite[] @relation(\"UserInvitations\")\n notifications Notification[]\n matchPlayers MatchPlayer[]\n serverRequests ServerRequest[] @relation(\"MatchRequests\")\n rankHistory RankHistory[] @relation(\"UserRankHistory\")\n demoFiles DemoFile[]\n\n createdSchedules Schedule[] @relation(\"CreatedSchedules\")\n confirmedSchedules Schedule[] @relation(\"ConfirmedSchedules\")\n\n mapVoteChoices MapVoteStep[] @relation(\"VoteStepChooser\")\n\n status UserStatus @default(offline) // 👈 neu\n lastActiveAt DateTime? // optional: wann zuletzt aktiv\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyUser\")\n\n pterodactylClientApiKey String?\n}\n\nenum UserStatus {\n online\n away\n offline\n}\n\nmodel Team {\n id String @id @default(uuid())\n name String @unique\n logo String?\n leaderId String? @unique\n createdAt DateTime @default(now())\n\n activePlayers String[]\n inactivePlayers String[]\n\n leader User? @relation(\"TeamLeader\", fields: [leaderId], references: [steamId])\n members User[] @relation(\"UserTeam\")\n invites TeamInvite[]\n matchPlayers MatchPlayer[]\n\n matchesAsTeamA Match[] @relation(\"MatchTeamA\")\n matchesAsTeamB Match[] @relation(\"MatchTeamB\")\n\n schedulesAsTeamA Schedule[] @relation(\"ScheduleTeamA\")\n schedulesAsTeamB Schedule[] @relation(\"ScheduleTeamB\")\n\n mapVoteSteps MapVoteStep[] @relation(\"VoteStepTeam\")\n}\n\nmodel TeamInvite {\n id String @id @default(uuid())\n steamId String\n teamId String\n type String\n createdAt DateTime @default(now())\n\n user User @relation(\"UserInvitations\", fields: [steamId], references: [steamId])\n team Team @relation(fields: [teamId], references: [id])\n}\n\nmodel Notification {\n id String @id @default(uuid())\n steamId String\n title String?\n message String\n read Boolean @default(false)\n persistent Boolean @default(false)\n actionType String?\n actionData String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [steamId], references: [steamId])\n}\n\n//\n// ──────────────────────────────────────────────\n// 🎮 Matches & Spieler\n// ──────────────────────────────────────────────\n//\n\n// ──────────────────────────────────────────────\n// 🎮 Matches\n// ──────────────────────────────────────────────\n\nmodel Match {\n id String @id @default(uuid())\n title String\n matchType String @default(\"community\")\n map String?\n description String?\n scoreA Int?\n scoreB Int?\n\n teamAId String?\n teamA Team? @relation(\"MatchTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"MatchTeamB\", fields: [teamBId], references: [id])\n\n teamAUsers User[] @relation(\"TeamAPlayers\")\n teamBUsers User[] @relation(\"TeamBPlayers\")\n\n filePath String?\n demoFile DemoFile?\n demoDate DateTime?\n demoData Json?\n\n players MatchPlayer[]\n rankUpdates RankHistory[] @relation(\"MatchRankHistory\")\n\n roundCount Int?\n roundHistory Json?\n winnerTeam String?\n\n bestOf Int @default(3) // 1 | 3 | 5 – app-seitig validieren\n matchDate DateTime? // geplante Startzeit (separat von demoDate)\n mapVote MapVote?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n schedule Schedule?\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyMatch\")\n}\n\nmodel MatchPlayer {\n id String @id @default(uuid())\n steamId String\n matchId String\n teamId String?\n team Team? @relation(fields: [teamId], references: [id])\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n\n stats PlayerStats?\n\n createdAt DateTime @default(now())\n\n @@unique([matchId, steamId])\n}\n\nmodel PlayerStats {\n id String @id @default(uuid())\n matchId String\n steamId String\n\n kills Int\n assists Int\n deaths Int\n headshotPct Float\n\n totalDamage Float @default(0)\n utilityDamage Int @default(0)\n flashAssists Int @default(0)\n mvps Int @default(0)\n mvpEliminations Int @default(0)\n mvpDefuse Int @default(0)\n mvpPlant Int @default(0)\n knifeKills Int @default(0)\n zeusKills Int @default(0)\n wallbangKills Int @default(0)\n smokeKills Int @default(0)\n headshots Int @default(0)\n noScopes Int @default(0)\n blindKills Int @default(0)\n\n aim Int @default(0)\n\n oneK Int @default(0)\n twoK Int @default(0)\n threeK Int @default(0)\n fourK Int @default(0)\n fiveK Int @default(0)\n\n rankOld Int?\n rankNew Int?\n rankChange Int?\n winCount Int?\n\n matchPlayer MatchPlayer @relation(fields: [matchId, steamId], references: [matchId, steamId])\n\n @@unique([matchId, steamId])\n}\n\nmodel RankHistory {\n id String @id @default(uuid())\n steamId String\n matchId String?\n\n rankOld Int\n rankNew Int\n delta Int\n winCount Int\n\n createdAt DateTime @default(now())\n\n user User @relation(\"UserRankHistory\", fields: [steamId], references: [steamId])\n match Match? @relation(\"MatchRankHistory\", fields: [matchId], references: [id])\n}\n\nmodel Schedule {\n id String @id @default(uuid())\n title String\n description String?\n map String?\n date DateTime\n status ScheduleStatus @default(PENDING)\n\n teamAId String?\n teamA Team? @relation(\"ScheduleTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"ScheduleTeamB\", fields: [teamBId], references: [id])\n\n createdById String\n createdBy User @relation(\"CreatedSchedules\", fields: [createdById], references: [steamId])\n\n confirmedById String?\n confirmedBy User? @relation(\"ConfirmedSchedules\", fields: [confirmedById], references: [steamId])\n\n linkedMatchId String? @unique\n linkedMatch Match? @relation(fields: [linkedMatchId], references: [id])\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum ScheduleStatus {\n PENDING\n CONFIRMED\n DECLINED\n CANCELLED\n COMPLETED\n}\n\n//\n// ──────────────────────────────────────────────\n// 📦 Demo-Dateien & CS2 Requests\n// ──────────────────────────────────────────────\n//\n\nmodel DemoFile {\n id String @id @default(uuid())\n matchId String @unique\n steamId String\n fileName String @unique\n filePath String\n parsed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n}\n\nmodel ServerRequest {\n id String @id @default(uuid())\n steamId String\n matchId String\n reservationId BigInt\n tvPort BigInt\n processed Boolean @default(false)\n failed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n user User @relation(\"MatchRequests\", fields: [steamId], references: [steamId])\n\n @@unique([steamId, matchId])\n}\n\n// ──────────────────────────────────────────────\n// 🗺️ Map-Vote\n// ──────────────────────────────────────────────\n\nenum MapVoteAction {\n BAN\n PICK\n DECIDER\n}\n\nmodel MapVote {\n id String @id @default(uuid())\n matchId String @unique\n match Match @relation(fields: [matchId], references: [id])\n\n bestOf Int @default(3)\n mapPool String[]\n currentIdx Int @default(0)\n locked Boolean @default(false)\n opensAt DateTime?\n\n leadMinutes Int @default(60)\n\n adminEditingBy String?\n adminEditingSince DateTime?\n\n steps MapVoteStep[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel MapVoteStep {\n id String @id @default(uuid())\n voteId String\n order Int\n action MapVoteAction\n\n teamId String?\n team Team? @relation(\"VoteStepTeam\", fields: [teamId], references: [id])\n\n map String?\n chosenAt DateTime?\n chosenBy String?\n chooser User? @relation(\"VoteStepChooser\", fields: [chosenBy], references: [steamId])\n\n vote MapVote @relation(fields: [voteId], references: [id])\n\n @@unique([voteId, order])\n @@index([teamId])\n @@index([chosenBy])\n}\n\nmodel MatchReady {\n matchId String\n steamId String\n acceptedAt DateTime @default(now())\n\n match Match @relation(\"MatchReadyMatch\", fields: [matchId], references: [id])\n user User @relation(\"MatchReadyUser\", fields: [steamId], references: [steamId])\n\n @@id([matchId, steamId])\n @@index([steamId])\n}\n\n// ──────────────────────────────────────────────\n// 🛠️ Server-Konfiguration & Pterodactyl\n// ──────────────────────────────────────────────\n\nmodel ServerConfig {\n id String @id\n serverIp String\n serverPassword String? // ⬅️ neu\n pterodactylServerId String\n pterodactylServerApiKey String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", - "inlineSchemaHash": "b5fc5dbbe91449141e347d047671ac31fa27eff450cb3cdd79a1668e199bf17d", + "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\n//\n// ──────────────────────────────────────────────\n// 🧑 Benutzer, Teams & Verwaltung\n// ──────────────────────────────────────────────\n//\n\nmodel User {\n steamId String @id\n name String?\n avatar String?\n location String?\n isAdmin Boolean @default(false)\n\n teamId String?\n team Team? @relation(\"UserTeam\", fields: [teamId], references: [id])\n ledTeam Team? @relation(\"TeamLeader\")\n\n matchesAsTeamA Match[] @relation(\"TeamAPlayers\")\n matchesAsTeamB Match[] @relation(\"TeamBPlayers\")\n\n premierRank Int?\n authCode String?\n lastKnownShareCode String?\n lastKnownShareCodeDate DateTime?\n createdAt DateTime @default(now())\n\n invites TeamInvite[] @relation(\"UserInvitations\")\n notifications Notification[]\n matchPlayers MatchPlayer[]\n serverRequests ServerRequest[] @relation(\"MatchRequests\")\n rankHistory RankHistory[] @relation(\"UserRankHistory\")\n demoFiles DemoFile[]\n\n createdSchedules Schedule[] @relation(\"CreatedSchedules\")\n confirmedSchedules Schedule[] @relation(\"ConfirmedSchedules\")\n\n mapVoteChoices MapVoteStep[] @relation(\"VoteStepChooser\")\n\n status UserStatus @default(offline) // 👈 neu\n lastActiveAt DateTime? // optional: wann zuletzt aktiv\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyUser\")\n\n pterodactylClientApiKey String?\n}\n\nenum UserStatus {\n online\n away\n offline\n}\n\nmodel Team {\n id String @id @default(uuid())\n name String @unique\n logo String?\n leaderId String? @unique\n createdAt DateTime @default(now())\n\n activePlayers String[]\n inactivePlayers String[]\n\n leader User? @relation(\"TeamLeader\", fields: [leaderId], references: [steamId])\n members User[] @relation(\"UserTeam\")\n invites TeamInvite[]\n matchPlayers MatchPlayer[]\n\n matchesAsTeamA Match[] @relation(\"MatchTeamA\")\n matchesAsTeamB Match[] @relation(\"MatchTeamB\")\n\n schedulesAsTeamA Schedule[] @relation(\"ScheduleTeamA\")\n schedulesAsTeamB Schedule[] @relation(\"ScheduleTeamB\")\n\n mapVoteSteps MapVoteStep[] @relation(\"VoteStepTeam\")\n}\n\nmodel TeamInvite {\n id String @id @default(uuid())\n steamId String\n teamId String\n type String\n createdAt DateTime @default(now())\n\n user User @relation(\"UserInvitations\", fields: [steamId], references: [steamId])\n team Team @relation(fields: [teamId], references: [id])\n}\n\nmodel Notification {\n id String @id @default(uuid())\n steamId String\n title String?\n message String\n read Boolean @default(false)\n persistent Boolean @default(false)\n actionType String?\n actionData String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [steamId], references: [steamId])\n}\n\n//\n// ──────────────────────────────────────────────\n// 🎮 Matches & Spieler\n// ──────────────────────────────────────────────\n//\n\n// ──────────────────────────────────────────────\n// 🎮 Matches\n// ──────────────────────────────────────────────\n\nmodel Match {\n id String @id @default(uuid())\n title String\n matchType String @default(\"community\")\n map String?\n description String?\n scoreA Int?\n scoreB Int?\n\n teamAId String?\n teamA Team? @relation(\"MatchTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"MatchTeamB\", fields: [teamBId], references: [id])\n\n teamAUsers User[] @relation(\"TeamAPlayers\")\n teamBUsers User[] @relation(\"TeamBPlayers\")\n\n filePath String?\n demoFile DemoFile?\n demoDate DateTime?\n demoData Json?\n\n players MatchPlayer[]\n rankUpdates RankHistory[] @relation(\"MatchRankHistory\")\n\n roundCount Int?\n roundHistory Json?\n winnerTeam String?\n\n bestOf Int @default(3) // 1 | 3 | 5 – app-seitig validieren\n matchDate DateTime? // geplante Startzeit (separat von demoDate)\n mapVote MapVote?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n schedule Schedule?\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyMatch\")\n\n cs2MatchId Int? // die in die JSON geschriebene matchid\n exportedAt DateTime? // wann die JSON exportiert wurde\n}\n\nmodel MatchPlayer {\n id String @id @default(uuid())\n steamId String\n matchId String\n teamId String?\n team Team? @relation(fields: [teamId], references: [id])\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n\n stats PlayerStats?\n\n createdAt DateTime @default(now())\n\n @@unique([matchId, steamId])\n}\n\nmodel PlayerStats {\n id String @id @default(uuid())\n matchId String\n steamId String\n\n kills Int\n assists Int\n deaths Int\n headshotPct Float\n\n totalDamage Float @default(0)\n utilityDamage Int @default(0)\n flashAssists Int @default(0)\n mvps Int @default(0)\n mvpEliminations Int @default(0)\n mvpDefuse Int @default(0)\n mvpPlant Int @default(0)\n knifeKills Int @default(0)\n zeusKills Int @default(0)\n wallbangKills Int @default(0)\n smokeKills Int @default(0)\n headshots Int @default(0)\n noScopes Int @default(0)\n blindKills Int @default(0)\n\n aim Int @default(0)\n\n oneK Int @default(0)\n twoK Int @default(0)\n threeK Int @default(0)\n fourK Int @default(0)\n fiveK Int @default(0)\n\n rankOld Int?\n rankNew Int?\n rankChange Int?\n winCount Int?\n\n matchPlayer MatchPlayer @relation(fields: [matchId, steamId], references: [matchId, steamId])\n\n @@unique([matchId, steamId])\n}\n\nmodel RankHistory {\n id String @id @default(uuid())\n steamId String\n matchId String?\n\n rankOld Int\n rankNew Int\n delta Int\n winCount Int\n\n createdAt DateTime @default(now())\n\n user User @relation(\"UserRankHistory\", fields: [steamId], references: [steamId])\n match Match? @relation(\"MatchRankHistory\", fields: [matchId], references: [id])\n}\n\nmodel Schedule {\n id String @id @default(uuid())\n title String\n description String?\n map String?\n date DateTime\n status ScheduleStatus @default(PENDING)\n\n teamAId String?\n teamA Team? @relation(\"ScheduleTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"ScheduleTeamB\", fields: [teamBId], references: [id])\n\n createdById String\n createdBy User @relation(\"CreatedSchedules\", fields: [createdById], references: [steamId])\n\n confirmedById String?\n confirmedBy User? @relation(\"ConfirmedSchedules\", fields: [confirmedById], references: [steamId])\n\n linkedMatchId String? @unique\n linkedMatch Match? @relation(fields: [linkedMatchId], references: [id])\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum ScheduleStatus {\n PENDING\n CONFIRMED\n DECLINED\n CANCELLED\n COMPLETED\n}\n\n//\n// ──────────────────────────────────────────────\n// 📦 Demo-Dateien & CS2 Requests\n// ──────────────────────────────────────────────\n//\n\nmodel DemoFile {\n id String @id @default(uuid())\n matchId String @unique\n steamId String\n fileName String @unique\n filePath String\n parsed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n}\n\nmodel ServerRequest {\n id String @id @default(uuid())\n steamId String\n matchId String\n reservationId BigInt\n tvPort BigInt\n processed Boolean @default(false)\n failed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n user User @relation(\"MatchRequests\", fields: [steamId], references: [steamId])\n\n @@unique([steamId, matchId])\n}\n\n// ──────────────────────────────────────────────\n// 🗺️ Map-Vote\n// ──────────────────────────────────────────────\n\nenum MapVoteAction {\n BAN\n PICK\n DECIDER\n}\n\nmodel MapVote {\n id String @id @default(uuid())\n matchId String @unique\n match Match @relation(fields: [matchId], references: [id])\n\n bestOf Int @default(3)\n mapPool String[]\n currentIdx Int @default(0)\n locked Boolean @default(false)\n opensAt DateTime?\n\n leadMinutes Int @default(60)\n\n adminEditingBy String?\n adminEditingSince DateTime?\n\n steps MapVoteStep[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel MapVoteStep {\n id String @id @default(uuid())\n voteId String\n order Int\n action MapVoteAction\n\n teamId String?\n team Team? @relation(\"VoteStepTeam\", fields: [teamId], references: [id])\n\n map String?\n chosenAt DateTime?\n chosenBy String?\n chooser User? @relation(\"VoteStepChooser\", fields: [chosenBy], references: [steamId])\n\n vote MapVote @relation(fields: [voteId], references: [id])\n\n @@unique([voteId, order])\n @@index([teamId])\n @@index([chosenBy])\n}\n\nmodel MatchReady {\n matchId String\n steamId String\n acceptedAt DateTime @default(now())\n\n match Match @relation(\"MatchReadyMatch\", fields: [matchId], references: [id])\n user User @relation(\"MatchReadyUser\", fields: [steamId], references: [steamId])\n\n @@id([matchId, steamId])\n @@index([steamId])\n}\n\n// ──────────────────────────────────────────────\n// 🛠️ Server-Konfiguration & Pterodactyl\n// ──────────────────────────────────────────────\n\nmodel ServerConfig {\n id String @id\n serverIp String\n serverPassword String? // ⬅️ neu\n pterodactylServerId String\n pterodactylServerApiKey String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", + "inlineSchemaHash": "e0211c6bd15447c8802ecb57f8776ca6e7bfe801d649f576ab30d145fcef1f22", "copyEngine": true } @@ -425,7 +427,7 @@ if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) { config.isBundled = true } -config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"avatar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"location\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isAdmin\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"UserTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ledTeam\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"TeamLeader\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"TeamAPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"TeamBPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"premierRank\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastKnownShareCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastKnownShareCodeDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"invites\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TeamInvite\",\"nativeType\":null,\"relationName\":\"UserInvitations\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notifications\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Notification\",\"nativeType\":null,\"relationName\":\"NotificationToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverRequests\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"ServerRequest\",\"nativeType\":null,\"relationName\":\"MatchRequests\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankHistory\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RankHistory\",\"nativeType\":null,\"relationName\":\"UserRankHistory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoFiles\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DemoFile\",\"nativeType\":null,\"relationName\":\"DemoFileToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdSchedules\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"CreatedSchedules\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedSchedules\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ConfirmedSchedules\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVoteChoices\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"VoteStepChooser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"UserStatus\",\"nativeType\":null,\"default\":\"offline\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastActiveAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchReady\",\"nativeType\":null,\"relationName\":\"MatchReadyUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylClientApiKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Team\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"logo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leaderId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"activePlayers\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"inactivePlayers\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leader\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamLeader\",\"relationFromFields\":[\"leaderId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"members\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"invites\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TeamInvite\",\"nativeType\":null,\"relationName\":\"TeamToTeamInvite\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchTeamA\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchTeamB\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"schedulesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ScheduleTeamA\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"schedulesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ScheduleTeamB\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVoteSteps\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"VoteStepTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TeamInvite\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserInvitations\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"TeamToTeamInvite\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Notification\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"message\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"read\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"persistent\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actionType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actionData\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"NotificationToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Match\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"community\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scoreA\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scoreB\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamA\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchTeamA\",\"relationFromFields\":[\"teamAId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamB\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchTeamB\",\"relationFromFields\":[\"teamBId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamAPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamBPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filePath\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoFile\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DemoFile\",\"nativeType\":null,\"relationName\":\"DemoFileToMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoData\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"players\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchToMatchPlayer\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankUpdates\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RankHistory\",\"nativeType\":null,\"relationName\":\"MatchRankHistory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roundCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roundHistory\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winnerTeam\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":3,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVote\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVote\",\"nativeType\":null,\"relationName\":\"MapVoteToMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"schedule\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"MatchToSchedule\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchReady\",\"nativeType\":null,\"relationName\":\"MatchReadyMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MatchPlayer\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchPlayerToTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchToMatchPlayer\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchPlayerToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"stats\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PlayerStats\",\"nativeType\":null,\"relationName\":\"MatchPlayerToPlayerStats\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"matchId\",\"steamId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]}],\"isGenerated\":false},\"PlayerStats\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"assists\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"deaths\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"headshotPct\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"totalDamage\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Float\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"utilityDamage\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"flashAssists\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvps\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpEliminations\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpDefuse\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpPlant\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"knifeKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"zeusKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"wallbangKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"smokeKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"headshots\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"noScopes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"blindKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"aim\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"oneK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"twoK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"threeK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fourK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fiveK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankChange\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayer\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToPlayerStats\",\"relationFromFields\":[\"matchId\",\"steamId\"],\"relationToFields\":[\"matchId\",\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"matchId\",\"steamId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]}],\"isGenerated\":false},\"RankHistory\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"delta\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserRankHistory\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchRankHistory\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Schedule\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"date\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"ScheduleStatus\",\"nativeType\":null,\"default\":\"PENDING\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamA\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"ScheduleTeamA\",\"relationFromFields\":[\"teamAId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamB\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"ScheduleTeamB\",\"relationFromFields\":[\"teamBId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdById\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdBy\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"CreatedSchedules\",\"relationFromFields\":[\"createdById\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedById\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedBy\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"ConfirmedSchedules\",\"relationFromFields\":[\"confirmedById\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linkedMatchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linkedMatch\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchToSchedule\",\"relationFromFields\":[\"linkedMatchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"DemoFile\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fileName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filePath\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"parsed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"DemoFileToMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"DemoFileToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ServerRequest\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reservationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tvPort\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"processed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"failed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchRequests\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"steamId\",\"matchId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"steamId\",\"matchId\"]}],\"isGenerated\":false},\"MapVote\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MapVoteToMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":3,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapPool\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"currentIdx\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"locked\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"opensAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leadMinutes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":60,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"adminEditingBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"adminEditingSince\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steps\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"MapVoteToMapVoteStep\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MapVoteStep\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"voteId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"order\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteAction\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"VoteStepTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chosenAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chosenBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chooser\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"VoteStepChooser\",\"relationFromFields\":[\"chosenBy\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"vote\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVote\",\"nativeType\":null,\"relationName\":\"MapVoteToMapVoteStep\",\"relationFromFields\":[\"voteId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"voteId\",\"order\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"voteId\",\"order\"]}],\"isGenerated\":false},\"MatchReady\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchReadyMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchReadyUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ServerConfig\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverIp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverPassword\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylServerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylServerApiKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{\"UserStatus\":{\"values\":[{\"name\":\"online\",\"dbName\":null},{\"name\":\"away\",\"dbName\":null},{\"name\":\"offline\",\"dbName\":null}],\"dbName\":null},\"ScheduleStatus\":{\"values\":[{\"name\":\"PENDING\",\"dbName\":null},{\"name\":\"CONFIRMED\",\"dbName\":null},{\"name\":\"DECLINED\",\"dbName\":null},{\"name\":\"CANCELLED\",\"dbName\":null},{\"name\":\"COMPLETED\",\"dbName\":null}],\"dbName\":null},\"MapVoteAction\":{\"values\":[{\"name\":\"BAN\",\"dbName\":null},{\"name\":\"PICK\",\"dbName\":null},{\"name\":\"DECIDER\",\"dbName\":null}],\"dbName\":null}},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"avatar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"location\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isAdmin\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"UserTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ledTeam\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"TeamLeader\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"TeamAPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"TeamBPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"premierRank\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastKnownShareCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastKnownShareCodeDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"invites\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TeamInvite\",\"nativeType\":null,\"relationName\":\"UserInvitations\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notifications\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Notification\",\"nativeType\":null,\"relationName\":\"NotificationToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverRequests\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"ServerRequest\",\"nativeType\":null,\"relationName\":\"MatchRequests\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankHistory\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RankHistory\",\"nativeType\":null,\"relationName\":\"UserRankHistory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoFiles\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DemoFile\",\"nativeType\":null,\"relationName\":\"DemoFileToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdSchedules\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"CreatedSchedules\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedSchedules\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ConfirmedSchedules\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVoteChoices\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"VoteStepChooser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"UserStatus\",\"nativeType\":null,\"default\":\"offline\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastActiveAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchReady\",\"nativeType\":null,\"relationName\":\"MatchReadyUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylClientApiKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Team\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"logo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leaderId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"activePlayers\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"inactivePlayers\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leader\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamLeader\",\"relationFromFields\":[\"leaderId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"members\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"invites\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TeamInvite\",\"nativeType\":null,\"relationName\":\"TeamToTeamInvite\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchTeamA\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchTeamB\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"schedulesAsTeamA\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ScheduleTeamA\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"schedulesAsTeamB\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"ScheduleTeamB\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVoteSteps\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"VoteStepTeam\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TeamInvite\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserInvitations\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"TeamToTeamInvite\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Notification\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"message\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"read\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"persistent\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actionType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actionData\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"NotificationToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Match\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"community\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scoreA\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scoreB\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamA\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchTeamA\",\"relationFromFields\":[\"teamAId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamB\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchTeamB\",\"relationFromFields\":[\"teamBId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamAPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"TeamBPlayers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filePath\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoFile\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DemoFile\",\"nativeType\":null,\"relationName\":\"DemoFileToMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"demoData\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"players\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchToMatchPlayer\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankUpdates\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RankHistory\",\"nativeType\":null,\"relationName\":\"MatchRankHistory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roundCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roundHistory\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winnerTeam\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":3,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapVote\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVote\",\"nativeType\":null,\"relationName\":\"MapVoteToMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"schedule\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Schedule\",\"nativeType\":null,\"relationName\":\"MatchToSchedule\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchReady\",\"nativeType\":null,\"relationName\":\"MatchReadyMatch\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"cs2MatchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"exportedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MatchPlayer\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"MatchPlayerToTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchToMatchPlayer\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchPlayerToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"stats\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PlayerStats\",\"nativeType\":null,\"relationName\":\"MatchPlayerToPlayerStats\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"matchId\",\"steamId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]}],\"isGenerated\":false},\"PlayerStats\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"assists\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"deaths\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"headshotPct\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"totalDamage\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Float\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"utilityDamage\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"flashAssists\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvps\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpEliminations\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpDefuse\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mvpPlant\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"knifeKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"zeusKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"wallbangKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"smokeKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"headshots\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"noScopes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"blindKills\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"aim\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"oneK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"twoK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"threeK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fourK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fiveK\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankChange\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchPlayer\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MatchPlayer\",\"nativeType\":null,\"relationName\":\"MatchPlayerToPlayerStats\",\"relationFromFields\":[\"matchId\",\"steamId\"],\"relationToFields\":[\"matchId\",\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"matchId\",\"steamId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]}],\"isGenerated\":false},\"RankHistory\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"delta\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"winCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserRankHistory\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchRankHistory\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Schedule\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"date\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"ScheduleStatus\",\"nativeType\":null,\"default\":\"PENDING\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamA\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"ScheduleTeamA\",\"relationFromFields\":[\"teamAId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamB\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"ScheduleTeamB\",\"relationFromFields\":[\"teamBId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdById\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdBy\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"CreatedSchedules\",\"relationFromFields\":[\"createdById\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedById\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confirmedBy\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"ConfirmedSchedules\",\"relationFromFields\":[\"confirmedById\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linkedMatchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linkedMatch\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchToSchedule\",\"relationFromFields\":[\"linkedMatchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"DemoFile\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fileName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filePath\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"parsed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"DemoFileToMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"DemoFileToUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ServerRequest\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reservationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tvPort\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"processed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"failed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchRequests\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"steamId\",\"matchId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"steamId\",\"matchId\"]}],\"isGenerated\":false},\"MapVote\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MapVoteToMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":3,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mapPool\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"currentIdx\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"locked\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"opensAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"leadMinutes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":60,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"adminEditingBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"adminEditingSince\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steps\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteStep\",\"nativeType\":null,\"relationName\":\"MapVoteToMapVoteStep\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MapVoteStep\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"voteId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"order\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVoteAction\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"teamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"team\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Team\",\"nativeType\":null,\"relationName\":\"VoteStepTeam\",\"relationFromFields\":[\"teamId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"map\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chosenAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chosenBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chooser\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"VoteStepChooser\",\"relationFromFields\":[\"chosenBy\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"vote\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"MapVote\",\"nativeType\":null,\"relationName\":\"MapVoteToMapVoteStep\",\"relationFromFields\":[\"voteId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"voteId\",\"order\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"voteId\",\"order\"]}],\"isGenerated\":false},\"MatchReady\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"matchId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"steamId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"match\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Match\",\"nativeType\":null,\"relationName\":\"MatchReadyMatch\",\"relationFromFields\":[\"matchId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"MatchReadyUser\",\"relationFromFields\":[\"steamId\"],\"relationToFields\":[\"steamId\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"matchId\",\"steamId\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ServerConfig\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverIp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverPassword\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylServerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pterodactylServerApiKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{\"UserStatus\":{\"values\":[{\"name\":\"online\",\"dbName\":null},{\"name\":\"away\",\"dbName\":null},{\"name\":\"offline\",\"dbName\":null}],\"dbName\":null},\"ScheduleStatus\":{\"values\":[{\"name\":\"PENDING\",\"dbName\":null},{\"name\":\"CONFIRMED\",\"dbName\":null},{\"name\":\"DECLINED\",\"dbName\":null},{\"name\":\"CANCELLED\",\"dbName\":null},{\"name\":\"COMPLETED\",\"dbName\":null}],\"dbName\":null},\"MapVoteAction\":{\"values\":[{\"name\":\"BAN\",\"dbName\":null},{\"name\":\"PICK\",\"dbName\":null},{\"name\":\"DECIDER\",\"dbName\":null}],\"dbName\":null}},\"types\":{}}") defineDmmfProperty(exports.Prisma, config.runtimeDataModel) config.engineWasm = undefined config.compilerWasm = undefined diff --git a/src/generated/prisma/package.json b/src/generated/prisma/package.json index d4edfd2..5a24e7f 100644 --- a/src/generated/prisma/package.json +++ b/src/generated/prisma/package.json @@ -1,5 +1,5 @@ { - "name": "prisma-client-85c440bbfe4ddbdbf4749495c6ef753c2d4a73eb44baae0e95774ed8e7b86d85", + "name": "prisma-client-dccc49918d4c87081feec825d7e8f9d86eb03460cb722e1aeb3c8b2bf7d2181c", "main": "index.js", "types": "index.d.ts", "browser": "default.js", diff --git a/src/generated/prisma/query_engine-windows.dll.node.tmp26516 b/src/generated/prisma/query_engine-windows.dll.node.tmp26516 new file mode 100644 index 0000000..b1c1b33 Binary files /dev/null and b/src/generated/prisma/query_engine-windows.dll.node.tmp26516 differ diff --git a/src/generated/prisma/wasm.js b/src/generated/prisma/wasm.js index 555b50e..23add71 100644 --- a/src/generated/prisma/wasm.js +++ b/src/generated/prisma/wasm.js @@ -158,7 +158,9 @@ exports.Prisma.MatchScalarFieldEnum = { bestOf: 'bestOf', matchDate: 'matchDate', createdAt: 'createdAt', - updatedAt: 'updatedAt' + updatedAt: 'updatedAt', + cs2MatchId: 'cs2MatchId', + exportedAt: 'exportedAt' }; exports.Prisma.MatchPlayerScalarFieldEnum = { @@ -402,13 +404,13 @@ const config = { } } }, - "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\n//\n// ──────────────────────────────────────────────\n// 🧑 Benutzer, Teams & Verwaltung\n// ──────────────────────────────────────────────\n//\n\nmodel User {\n steamId String @id\n name String?\n avatar String?\n location String?\n isAdmin Boolean @default(false)\n\n teamId String?\n team Team? @relation(\"UserTeam\", fields: [teamId], references: [id])\n ledTeam Team? @relation(\"TeamLeader\")\n\n matchesAsTeamA Match[] @relation(\"TeamAPlayers\")\n matchesAsTeamB Match[] @relation(\"TeamBPlayers\")\n\n premierRank Int?\n authCode String?\n lastKnownShareCode String?\n lastKnownShareCodeDate DateTime?\n createdAt DateTime @default(now())\n\n invites TeamInvite[] @relation(\"UserInvitations\")\n notifications Notification[]\n matchPlayers MatchPlayer[]\n serverRequests ServerRequest[] @relation(\"MatchRequests\")\n rankHistory RankHistory[] @relation(\"UserRankHistory\")\n demoFiles DemoFile[]\n\n createdSchedules Schedule[] @relation(\"CreatedSchedules\")\n confirmedSchedules Schedule[] @relation(\"ConfirmedSchedules\")\n\n mapVoteChoices MapVoteStep[] @relation(\"VoteStepChooser\")\n\n status UserStatus @default(offline) // 👈 neu\n lastActiveAt DateTime? // optional: wann zuletzt aktiv\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyUser\")\n\n pterodactylClientApiKey String?\n}\n\nenum UserStatus {\n online\n away\n offline\n}\n\nmodel Team {\n id String @id @default(uuid())\n name String @unique\n logo String?\n leaderId String? @unique\n createdAt DateTime @default(now())\n\n activePlayers String[]\n inactivePlayers String[]\n\n leader User? @relation(\"TeamLeader\", fields: [leaderId], references: [steamId])\n members User[] @relation(\"UserTeam\")\n invites TeamInvite[]\n matchPlayers MatchPlayer[]\n\n matchesAsTeamA Match[] @relation(\"MatchTeamA\")\n matchesAsTeamB Match[] @relation(\"MatchTeamB\")\n\n schedulesAsTeamA Schedule[] @relation(\"ScheduleTeamA\")\n schedulesAsTeamB Schedule[] @relation(\"ScheduleTeamB\")\n\n mapVoteSteps MapVoteStep[] @relation(\"VoteStepTeam\")\n}\n\nmodel TeamInvite {\n id String @id @default(uuid())\n steamId String\n teamId String\n type String\n createdAt DateTime @default(now())\n\n user User @relation(\"UserInvitations\", fields: [steamId], references: [steamId])\n team Team @relation(fields: [teamId], references: [id])\n}\n\nmodel Notification {\n id String @id @default(uuid())\n steamId String\n title String?\n message String\n read Boolean @default(false)\n persistent Boolean @default(false)\n actionType String?\n actionData String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [steamId], references: [steamId])\n}\n\n//\n// ──────────────────────────────────────────────\n// 🎮 Matches & Spieler\n// ──────────────────────────────────────────────\n//\n\n// ──────────────────────────────────────────────\n// 🎮 Matches\n// ──────────────────────────────────────────────\n\nmodel Match {\n id String @id @default(uuid())\n title String\n matchType String @default(\"community\")\n map String?\n description String?\n scoreA Int?\n scoreB Int?\n\n teamAId String?\n teamA Team? @relation(\"MatchTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"MatchTeamB\", fields: [teamBId], references: [id])\n\n teamAUsers User[] @relation(\"TeamAPlayers\")\n teamBUsers User[] @relation(\"TeamBPlayers\")\n\n filePath String?\n demoFile DemoFile?\n demoDate DateTime?\n demoData Json?\n\n players MatchPlayer[]\n rankUpdates RankHistory[] @relation(\"MatchRankHistory\")\n\n roundCount Int?\n roundHistory Json?\n winnerTeam String?\n\n bestOf Int @default(3) // 1 | 3 | 5 – app-seitig validieren\n matchDate DateTime? // geplante Startzeit (separat von demoDate)\n mapVote MapVote?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n schedule Schedule?\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyMatch\")\n}\n\nmodel MatchPlayer {\n id String @id @default(uuid())\n steamId String\n matchId String\n teamId String?\n team Team? @relation(fields: [teamId], references: [id])\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n\n stats PlayerStats?\n\n createdAt DateTime @default(now())\n\n @@unique([matchId, steamId])\n}\n\nmodel PlayerStats {\n id String @id @default(uuid())\n matchId String\n steamId String\n\n kills Int\n assists Int\n deaths Int\n headshotPct Float\n\n totalDamage Float @default(0)\n utilityDamage Int @default(0)\n flashAssists Int @default(0)\n mvps Int @default(0)\n mvpEliminations Int @default(0)\n mvpDefuse Int @default(0)\n mvpPlant Int @default(0)\n knifeKills Int @default(0)\n zeusKills Int @default(0)\n wallbangKills Int @default(0)\n smokeKills Int @default(0)\n headshots Int @default(0)\n noScopes Int @default(0)\n blindKills Int @default(0)\n\n aim Int @default(0)\n\n oneK Int @default(0)\n twoK Int @default(0)\n threeK Int @default(0)\n fourK Int @default(0)\n fiveK Int @default(0)\n\n rankOld Int?\n rankNew Int?\n rankChange Int?\n winCount Int?\n\n matchPlayer MatchPlayer @relation(fields: [matchId, steamId], references: [matchId, steamId])\n\n @@unique([matchId, steamId])\n}\n\nmodel RankHistory {\n id String @id @default(uuid())\n steamId String\n matchId String?\n\n rankOld Int\n rankNew Int\n delta Int\n winCount Int\n\n createdAt DateTime @default(now())\n\n user User @relation(\"UserRankHistory\", fields: [steamId], references: [steamId])\n match Match? @relation(\"MatchRankHistory\", fields: [matchId], references: [id])\n}\n\nmodel Schedule {\n id String @id @default(uuid())\n title String\n description String?\n map String?\n date DateTime\n status ScheduleStatus @default(PENDING)\n\n teamAId String?\n teamA Team? @relation(\"ScheduleTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"ScheduleTeamB\", fields: [teamBId], references: [id])\n\n createdById String\n createdBy User @relation(\"CreatedSchedules\", fields: [createdById], references: [steamId])\n\n confirmedById String?\n confirmedBy User? @relation(\"ConfirmedSchedules\", fields: [confirmedById], references: [steamId])\n\n linkedMatchId String? @unique\n linkedMatch Match? @relation(fields: [linkedMatchId], references: [id])\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum ScheduleStatus {\n PENDING\n CONFIRMED\n DECLINED\n CANCELLED\n COMPLETED\n}\n\n//\n// ──────────────────────────────────────────────\n// 📦 Demo-Dateien & CS2 Requests\n// ──────────────────────────────────────────────\n//\n\nmodel DemoFile {\n id String @id @default(uuid())\n matchId String @unique\n steamId String\n fileName String @unique\n filePath String\n parsed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n}\n\nmodel ServerRequest {\n id String @id @default(uuid())\n steamId String\n matchId String\n reservationId BigInt\n tvPort BigInt\n processed Boolean @default(false)\n failed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n user User @relation(\"MatchRequests\", fields: [steamId], references: [steamId])\n\n @@unique([steamId, matchId])\n}\n\n// ──────────────────────────────────────────────\n// 🗺️ Map-Vote\n// ──────────────────────────────────────────────\n\nenum MapVoteAction {\n BAN\n PICK\n DECIDER\n}\n\nmodel MapVote {\n id String @id @default(uuid())\n matchId String @unique\n match Match @relation(fields: [matchId], references: [id])\n\n bestOf Int @default(3)\n mapPool String[]\n currentIdx Int @default(0)\n locked Boolean @default(false)\n opensAt DateTime?\n\n leadMinutes Int @default(60)\n\n adminEditingBy String?\n adminEditingSince DateTime?\n\n steps MapVoteStep[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel MapVoteStep {\n id String @id @default(uuid())\n voteId String\n order Int\n action MapVoteAction\n\n teamId String?\n team Team? @relation(\"VoteStepTeam\", fields: [teamId], references: [id])\n\n map String?\n chosenAt DateTime?\n chosenBy String?\n chooser User? @relation(\"VoteStepChooser\", fields: [chosenBy], references: [steamId])\n\n vote MapVote @relation(fields: [voteId], references: [id])\n\n @@unique([voteId, order])\n @@index([teamId])\n @@index([chosenBy])\n}\n\nmodel MatchReady {\n matchId String\n steamId String\n acceptedAt DateTime @default(now())\n\n match Match @relation(\"MatchReadyMatch\", fields: [matchId], references: [id])\n user User @relation(\"MatchReadyUser\", fields: [steamId], references: [steamId])\n\n @@id([matchId, steamId])\n @@index([steamId])\n}\n\n// ──────────────────────────────────────────────\n// 🛠️ Server-Konfiguration & Pterodactyl\n// ──────────────────────────────────────────────\n\nmodel ServerConfig {\n id String @id\n serverIp String\n serverPassword String? // ⬅️ neu\n pterodactylServerId String\n pterodactylServerApiKey String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", - "inlineSchemaHash": "b5fc5dbbe91449141e347d047671ac31fa27eff450cb3cdd79a1668e199bf17d", + "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\n//\n// ──────────────────────────────────────────────\n// 🧑 Benutzer, Teams & Verwaltung\n// ──────────────────────────────────────────────\n//\n\nmodel User {\n steamId String @id\n name String?\n avatar String?\n location String?\n isAdmin Boolean @default(false)\n\n teamId String?\n team Team? @relation(\"UserTeam\", fields: [teamId], references: [id])\n ledTeam Team? @relation(\"TeamLeader\")\n\n matchesAsTeamA Match[] @relation(\"TeamAPlayers\")\n matchesAsTeamB Match[] @relation(\"TeamBPlayers\")\n\n premierRank Int?\n authCode String?\n lastKnownShareCode String?\n lastKnownShareCodeDate DateTime?\n createdAt DateTime @default(now())\n\n invites TeamInvite[] @relation(\"UserInvitations\")\n notifications Notification[]\n matchPlayers MatchPlayer[]\n serverRequests ServerRequest[] @relation(\"MatchRequests\")\n rankHistory RankHistory[] @relation(\"UserRankHistory\")\n demoFiles DemoFile[]\n\n createdSchedules Schedule[] @relation(\"CreatedSchedules\")\n confirmedSchedules Schedule[] @relation(\"ConfirmedSchedules\")\n\n mapVoteChoices MapVoteStep[] @relation(\"VoteStepChooser\")\n\n status UserStatus @default(offline) // 👈 neu\n lastActiveAt DateTime? // optional: wann zuletzt aktiv\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyUser\")\n\n pterodactylClientApiKey String?\n}\n\nenum UserStatus {\n online\n away\n offline\n}\n\nmodel Team {\n id String @id @default(uuid())\n name String @unique\n logo String?\n leaderId String? @unique\n createdAt DateTime @default(now())\n\n activePlayers String[]\n inactivePlayers String[]\n\n leader User? @relation(\"TeamLeader\", fields: [leaderId], references: [steamId])\n members User[] @relation(\"UserTeam\")\n invites TeamInvite[]\n matchPlayers MatchPlayer[]\n\n matchesAsTeamA Match[] @relation(\"MatchTeamA\")\n matchesAsTeamB Match[] @relation(\"MatchTeamB\")\n\n schedulesAsTeamA Schedule[] @relation(\"ScheduleTeamA\")\n schedulesAsTeamB Schedule[] @relation(\"ScheduleTeamB\")\n\n mapVoteSteps MapVoteStep[] @relation(\"VoteStepTeam\")\n}\n\nmodel TeamInvite {\n id String @id @default(uuid())\n steamId String\n teamId String\n type String\n createdAt DateTime @default(now())\n\n user User @relation(\"UserInvitations\", fields: [steamId], references: [steamId])\n team Team @relation(fields: [teamId], references: [id])\n}\n\nmodel Notification {\n id String @id @default(uuid())\n steamId String\n title String?\n message String\n read Boolean @default(false)\n persistent Boolean @default(false)\n actionType String?\n actionData String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [steamId], references: [steamId])\n}\n\n//\n// ──────────────────────────────────────────────\n// 🎮 Matches & Spieler\n// ──────────────────────────────────────────────\n//\n\n// ──────────────────────────────────────────────\n// 🎮 Matches\n// ──────────────────────────────────────────────\n\nmodel Match {\n id String @id @default(uuid())\n title String\n matchType String @default(\"community\")\n map String?\n description String?\n scoreA Int?\n scoreB Int?\n\n teamAId String?\n teamA Team? @relation(\"MatchTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"MatchTeamB\", fields: [teamBId], references: [id])\n\n teamAUsers User[] @relation(\"TeamAPlayers\")\n teamBUsers User[] @relation(\"TeamBPlayers\")\n\n filePath String?\n demoFile DemoFile?\n demoDate DateTime?\n demoData Json?\n\n players MatchPlayer[]\n rankUpdates RankHistory[] @relation(\"MatchRankHistory\")\n\n roundCount Int?\n roundHistory Json?\n winnerTeam String?\n\n bestOf Int @default(3) // 1 | 3 | 5 – app-seitig validieren\n matchDate DateTime? // geplante Startzeit (separat von demoDate)\n mapVote MapVote?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n schedule Schedule?\n\n readyAcceptances MatchReady[] @relation(\"MatchReadyMatch\")\n\n cs2MatchId Int? // die in die JSON geschriebene matchid\n exportedAt DateTime? // wann die JSON exportiert wurde\n}\n\nmodel MatchPlayer {\n id String @id @default(uuid())\n steamId String\n matchId String\n teamId String?\n team Team? @relation(fields: [teamId], references: [id])\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n\n stats PlayerStats?\n\n createdAt DateTime @default(now())\n\n @@unique([matchId, steamId])\n}\n\nmodel PlayerStats {\n id String @id @default(uuid())\n matchId String\n steamId String\n\n kills Int\n assists Int\n deaths Int\n headshotPct Float\n\n totalDamage Float @default(0)\n utilityDamage Int @default(0)\n flashAssists Int @default(0)\n mvps Int @default(0)\n mvpEliminations Int @default(0)\n mvpDefuse Int @default(0)\n mvpPlant Int @default(0)\n knifeKills Int @default(0)\n zeusKills Int @default(0)\n wallbangKills Int @default(0)\n smokeKills Int @default(0)\n headshots Int @default(0)\n noScopes Int @default(0)\n blindKills Int @default(0)\n\n aim Int @default(0)\n\n oneK Int @default(0)\n twoK Int @default(0)\n threeK Int @default(0)\n fourK Int @default(0)\n fiveK Int @default(0)\n\n rankOld Int?\n rankNew Int?\n rankChange Int?\n winCount Int?\n\n matchPlayer MatchPlayer @relation(fields: [matchId, steamId], references: [matchId, steamId])\n\n @@unique([matchId, steamId])\n}\n\nmodel RankHistory {\n id String @id @default(uuid())\n steamId String\n matchId String?\n\n rankOld Int\n rankNew Int\n delta Int\n winCount Int\n\n createdAt DateTime @default(now())\n\n user User @relation(\"UserRankHistory\", fields: [steamId], references: [steamId])\n match Match? @relation(\"MatchRankHistory\", fields: [matchId], references: [id])\n}\n\nmodel Schedule {\n id String @id @default(uuid())\n title String\n description String?\n map String?\n date DateTime\n status ScheduleStatus @default(PENDING)\n\n teamAId String?\n teamA Team? @relation(\"ScheduleTeamA\", fields: [teamAId], references: [id])\n\n teamBId String?\n teamB Team? @relation(\"ScheduleTeamB\", fields: [teamBId], references: [id])\n\n createdById String\n createdBy User @relation(\"CreatedSchedules\", fields: [createdById], references: [steamId])\n\n confirmedById String?\n confirmedBy User? @relation(\"ConfirmedSchedules\", fields: [confirmedById], references: [steamId])\n\n linkedMatchId String? @unique\n linkedMatch Match? @relation(fields: [linkedMatchId], references: [id])\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum ScheduleStatus {\n PENDING\n CONFIRMED\n DECLINED\n CANCELLED\n COMPLETED\n}\n\n//\n// ──────────────────────────────────────────────\n// 📦 Demo-Dateien & CS2 Requests\n// ──────────────────────────────────────────────\n//\n\nmodel DemoFile {\n id String @id @default(uuid())\n matchId String @unique\n steamId String\n fileName String @unique\n filePath String\n parsed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n match Match @relation(fields: [matchId], references: [id])\n user User @relation(fields: [steamId], references: [steamId])\n}\n\nmodel ServerRequest {\n id String @id @default(uuid())\n steamId String\n matchId String\n reservationId BigInt\n tvPort BigInt\n processed Boolean @default(false)\n failed Boolean @default(false)\n\n createdAt DateTime @default(now())\n\n user User @relation(\"MatchRequests\", fields: [steamId], references: [steamId])\n\n @@unique([steamId, matchId])\n}\n\n// ──────────────────────────────────────────────\n// 🗺️ Map-Vote\n// ──────────────────────────────────────────────\n\nenum MapVoteAction {\n BAN\n PICK\n DECIDER\n}\n\nmodel MapVote {\n id String @id @default(uuid())\n matchId String @unique\n match Match @relation(fields: [matchId], references: [id])\n\n bestOf Int @default(3)\n mapPool String[]\n currentIdx Int @default(0)\n locked Boolean @default(false)\n opensAt DateTime?\n\n leadMinutes Int @default(60)\n\n adminEditingBy String?\n adminEditingSince DateTime?\n\n steps MapVoteStep[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel MapVoteStep {\n id String @id @default(uuid())\n voteId String\n order Int\n action MapVoteAction\n\n teamId String?\n team Team? @relation(\"VoteStepTeam\", fields: [teamId], references: [id])\n\n map String?\n chosenAt DateTime?\n chosenBy String?\n chooser User? @relation(\"VoteStepChooser\", fields: [chosenBy], references: [steamId])\n\n vote MapVote @relation(fields: [voteId], references: [id])\n\n @@unique([voteId, order])\n @@index([teamId])\n @@index([chosenBy])\n}\n\nmodel MatchReady {\n matchId String\n steamId String\n acceptedAt DateTime @default(now())\n\n match Match @relation(\"MatchReadyMatch\", fields: [matchId], references: [id])\n user User @relation(\"MatchReadyUser\", fields: [steamId], references: [steamId])\n\n @@id([matchId, steamId])\n @@index([steamId])\n}\n\n// ──────────────────────────────────────────────\n// 🛠️ Server-Konfiguration & Pterodactyl\n// ──────────────────────────────────────────────\n\nmodel ServerConfig {\n id String @id\n serverIp String\n serverPassword String? // ⬅️ neu\n pterodactylServerId String\n pterodactylServerApiKey String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", + "inlineSchemaHash": "e0211c6bd15447c8802ecb57f8776ca6e7bfe801d649f576ab30d145fcef1f22", "copyEngine": true } config.dirname = '/' -config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"avatar\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isAdmin\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"teamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"team\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"UserTeam\"},{\"name\":\"ledTeam\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"TeamLeader\"},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"TeamAPlayers\"},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"TeamBPlayers\"},{\"name\":\"premierRank\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"authCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastKnownShareCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastKnownShareCodeDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"TeamInvite\",\"relationName\":\"UserInvitations\"},{\"name\":\"notifications\",\"kind\":\"object\",\"type\":\"Notification\",\"relationName\":\"NotificationToUser\"},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"type\":\"MatchPlayer\",\"relationName\":\"MatchPlayerToUser\"},{\"name\":\"serverRequests\",\"kind\":\"object\",\"type\":\"ServerRequest\",\"relationName\":\"MatchRequests\"},{\"name\":\"rankHistory\",\"kind\":\"object\",\"type\":\"RankHistory\",\"relationName\":\"UserRankHistory\"},{\"name\":\"demoFiles\",\"kind\":\"object\",\"type\":\"DemoFile\",\"relationName\":\"DemoFileToUser\"},{\"name\":\"createdSchedules\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"CreatedSchedules\"},{\"name\":\"confirmedSchedules\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"ConfirmedSchedules\"},{\"name\":\"mapVoteChoices\",\"kind\":\"object\",\"type\":\"MapVoteStep\",\"relationName\":\"VoteStepChooser\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"UserStatus\"},{\"name\":\"lastActiveAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"type\":\"MatchReady\",\"relationName\":\"MatchReadyUser\"},{\"name\":\"pterodactylClientApiKey\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"Team\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"logo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"leaderId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"activePlayers\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"inactivePlayers\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"leader\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TeamLeader\"},{\"name\":\"members\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserTeam\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"TeamInvite\",\"relationName\":\"TeamToTeamInvite\"},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"type\":\"MatchPlayer\",\"relationName\":\"MatchPlayerToTeam\"},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchTeamA\"},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchTeamB\"},{\"name\":\"schedulesAsTeamA\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"ScheduleTeamA\"},{\"name\":\"schedulesAsTeamB\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"ScheduleTeamB\"},{\"name\":\"mapVoteSteps\",\"kind\":\"object\",\"type\":\"MapVoteStep\",\"relationName\":\"VoteStepTeam\"}],\"dbName\":null},\"TeamInvite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserInvitations\"},{\"name\":\"team\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"TeamToTeamInvite\"}],\"dbName\":null},\"Notification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"read\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"persistent\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"actionType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actionData\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"NotificationToUser\"}],\"dbName\":null},\"Match\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"map\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scoreA\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"scoreB\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamA\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"MatchTeamA\"},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamB\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"MatchTeamB\"},{\"name\":\"teamAUsers\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TeamAPlayers\"},{\"name\":\"teamBUsers\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TeamBPlayers\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"demoFile\",\"kind\":\"object\",\"type\":\"DemoFile\",\"relationName\":\"DemoFileToMatch\"},{\"name\":\"demoDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"demoData\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"players\",\"kind\":\"object\",\"type\":\"MatchPlayer\",\"relationName\":\"MatchToMatchPlayer\"},{\"name\":\"rankUpdates\",\"kind\":\"object\",\"type\":\"RankHistory\",\"relationName\":\"MatchRankHistory\"},{\"name\":\"roundCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"roundHistory\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"winnerTeam\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"matchDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"mapVote\",\"kind\":\"object\",\"type\":\"MapVote\",\"relationName\":\"MapVoteToMatch\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"schedule\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"MatchToSchedule\"},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"type\":\"MatchReady\",\"relationName\":\"MatchReadyMatch\"}],\"dbName\":null},\"MatchPlayer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"team\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"MatchPlayerToTeam\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchToMatchPlayer\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"MatchPlayerToUser\"},{\"name\":\"stats\",\"kind\":\"object\",\"type\":\"PlayerStats\",\"relationName\":\"MatchPlayerToPlayerStats\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"PlayerStats\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"kills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"assists\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"deaths\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"headshotPct\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"totalDamage\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"utilityDamage\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"flashAssists\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mvps\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mvpEliminations\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mvpDefuse\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mvpPlant\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"knifeKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"zeusKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"wallbangKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"smokeKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"headshots\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"noScopes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"blindKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"aim\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"oneK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"twoK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"threeK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"fourK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"fiveK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rankChange\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"winCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"matchPlayer\",\"kind\":\"object\",\"type\":\"MatchPlayer\",\"relationName\":\"MatchPlayerToPlayerStats\"}],\"dbName\":null},\"RankHistory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"delta\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"winCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserRankHistory\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchRankHistory\"}],\"dbName\":null},\"Schedule\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"map\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ScheduleStatus\"},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamA\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"ScheduleTeamA\"},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamB\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"ScheduleTeamB\"},{\"name\":\"createdById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CreatedSchedules\"},{\"name\":\"confirmedById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"confirmedBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ConfirmedSchedules\"},{\"name\":\"linkedMatchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"linkedMatch\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchToSchedule\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DemoFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parsed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"DemoFileToMatch\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DemoFileToUser\"}],\"dbName\":null},\"ServerRequest\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reservationId\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"tvPort\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"processed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"failed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"MatchRequests\"}],\"dbName\":null},\"MapVote\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MapVoteToMatch\"},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mapPool\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"currentIdx\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"locked\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"opensAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"leadMinutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"adminEditingBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"adminEditingSince\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"steps\",\"kind\":\"object\",\"type\":\"MapVoteStep\",\"relationName\":\"MapVoteToMapVoteStep\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"MapVoteStep\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"voteId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"action\",\"kind\":\"enum\",\"type\":\"MapVoteAction\"},{\"name\":\"teamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"team\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"VoteStepTeam\"},{\"name\":\"map\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"chosenAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"chosenBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"chooser\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"VoteStepChooser\"},{\"name\":\"vote\",\"kind\":\"object\",\"type\":\"MapVote\",\"relationName\":\"MapVoteToMapVoteStep\"}],\"dbName\":null},\"MatchReady\":{\"fields\":[{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchReadyMatch\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"MatchReadyUser\"}],\"dbName\":null},\"ServerConfig\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serverIp\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serverPassword\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pterodactylServerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pterodactylServerApiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"avatar\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isAdmin\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"teamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"team\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"UserTeam\"},{\"name\":\"ledTeam\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"TeamLeader\"},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"TeamAPlayers\"},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"TeamBPlayers\"},{\"name\":\"premierRank\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"authCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastKnownShareCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastKnownShareCodeDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"TeamInvite\",\"relationName\":\"UserInvitations\"},{\"name\":\"notifications\",\"kind\":\"object\",\"type\":\"Notification\",\"relationName\":\"NotificationToUser\"},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"type\":\"MatchPlayer\",\"relationName\":\"MatchPlayerToUser\"},{\"name\":\"serverRequests\",\"kind\":\"object\",\"type\":\"ServerRequest\",\"relationName\":\"MatchRequests\"},{\"name\":\"rankHistory\",\"kind\":\"object\",\"type\":\"RankHistory\",\"relationName\":\"UserRankHistory\"},{\"name\":\"demoFiles\",\"kind\":\"object\",\"type\":\"DemoFile\",\"relationName\":\"DemoFileToUser\"},{\"name\":\"createdSchedules\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"CreatedSchedules\"},{\"name\":\"confirmedSchedules\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"ConfirmedSchedules\"},{\"name\":\"mapVoteChoices\",\"kind\":\"object\",\"type\":\"MapVoteStep\",\"relationName\":\"VoteStepChooser\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"UserStatus\"},{\"name\":\"lastActiveAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"type\":\"MatchReady\",\"relationName\":\"MatchReadyUser\"},{\"name\":\"pterodactylClientApiKey\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"Team\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"logo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"leaderId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"activePlayers\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"inactivePlayers\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"leader\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TeamLeader\"},{\"name\":\"members\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserTeam\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"TeamInvite\",\"relationName\":\"TeamToTeamInvite\"},{\"name\":\"matchPlayers\",\"kind\":\"object\",\"type\":\"MatchPlayer\",\"relationName\":\"MatchPlayerToTeam\"},{\"name\":\"matchesAsTeamA\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchTeamA\"},{\"name\":\"matchesAsTeamB\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchTeamB\"},{\"name\":\"schedulesAsTeamA\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"ScheduleTeamA\"},{\"name\":\"schedulesAsTeamB\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"ScheduleTeamB\"},{\"name\":\"mapVoteSteps\",\"kind\":\"object\",\"type\":\"MapVoteStep\",\"relationName\":\"VoteStepTeam\"}],\"dbName\":null},\"TeamInvite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserInvitations\"},{\"name\":\"team\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"TeamToTeamInvite\"}],\"dbName\":null},\"Notification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"read\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"persistent\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"actionType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actionData\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"NotificationToUser\"}],\"dbName\":null},\"Match\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"map\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scoreA\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"scoreB\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamA\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"MatchTeamA\"},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamB\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"MatchTeamB\"},{\"name\":\"teamAUsers\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TeamAPlayers\"},{\"name\":\"teamBUsers\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TeamBPlayers\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"demoFile\",\"kind\":\"object\",\"type\":\"DemoFile\",\"relationName\":\"DemoFileToMatch\"},{\"name\":\"demoDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"demoData\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"players\",\"kind\":\"object\",\"type\":\"MatchPlayer\",\"relationName\":\"MatchToMatchPlayer\"},{\"name\":\"rankUpdates\",\"kind\":\"object\",\"type\":\"RankHistory\",\"relationName\":\"MatchRankHistory\"},{\"name\":\"roundCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"roundHistory\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"winnerTeam\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"matchDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"mapVote\",\"kind\":\"object\",\"type\":\"MapVote\",\"relationName\":\"MapVoteToMatch\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"schedule\",\"kind\":\"object\",\"type\":\"Schedule\",\"relationName\":\"MatchToSchedule\"},{\"name\":\"readyAcceptances\",\"kind\":\"object\",\"type\":\"MatchReady\",\"relationName\":\"MatchReadyMatch\"},{\"name\":\"cs2MatchId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"exportedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"MatchPlayer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"team\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"MatchPlayerToTeam\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchToMatchPlayer\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"MatchPlayerToUser\"},{\"name\":\"stats\",\"kind\":\"object\",\"type\":\"PlayerStats\",\"relationName\":\"MatchPlayerToPlayerStats\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"PlayerStats\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"kills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"assists\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"deaths\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"headshotPct\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"totalDamage\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"utilityDamage\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"flashAssists\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mvps\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mvpEliminations\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mvpDefuse\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mvpPlant\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"knifeKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"zeusKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"wallbangKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"smokeKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"headshots\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"noScopes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"blindKills\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"aim\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"oneK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"twoK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"threeK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"fourK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"fiveK\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rankChange\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"winCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"matchPlayer\",\"kind\":\"object\",\"type\":\"MatchPlayer\",\"relationName\":\"MatchPlayerToPlayerStats\"}],\"dbName\":null},\"RankHistory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rankOld\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rankNew\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"delta\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"winCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserRankHistory\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchRankHistory\"}],\"dbName\":null},\"Schedule\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"map\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ScheduleStatus\"},{\"name\":\"teamAId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamA\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"ScheduleTeamA\"},{\"name\":\"teamBId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teamB\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"ScheduleTeamB\"},{\"name\":\"createdById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CreatedSchedules\"},{\"name\":\"confirmedById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"confirmedBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ConfirmedSchedules\"},{\"name\":\"linkedMatchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"linkedMatch\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchToSchedule\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DemoFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parsed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"DemoFileToMatch\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DemoFileToUser\"}],\"dbName\":null},\"ServerRequest\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reservationId\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"tvPort\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"processed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"failed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"MatchRequests\"}],\"dbName\":null},\"MapVote\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MapVoteToMatch\"},{\"name\":\"bestOf\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mapPool\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"currentIdx\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"locked\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"opensAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"leadMinutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"adminEditingBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"adminEditingSince\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"steps\",\"kind\":\"object\",\"type\":\"MapVoteStep\",\"relationName\":\"MapVoteToMapVoteStep\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"MapVoteStep\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"voteId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"action\",\"kind\":\"enum\",\"type\":\"MapVoteAction\"},{\"name\":\"teamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"team\",\"kind\":\"object\",\"type\":\"Team\",\"relationName\":\"VoteStepTeam\"},{\"name\":\"map\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"chosenAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"chosenBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"chooser\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"VoteStepChooser\"},{\"name\":\"vote\",\"kind\":\"object\",\"type\":\"MapVote\",\"relationName\":\"MapVoteToMapVoteStep\"}],\"dbName\":null},\"MatchReady\":{\"fields\":[{\"name\":\"matchId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"steamId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"match\",\"kind\":\"object\",\"type\":\"Match\",\"relationName\":\"MatchReadyMatch\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"MatchReadyUser\"}],\"dbName\":null},\"ServerConfig\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serverIp\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serverPassword\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pterodactylServerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pterodactylServerApiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}") defineDmmfProperty(exports.Prisma, config.runtimeDataModel) config.engineWasm = { getRuntime: async () => require('./query_engine_bg.js'),