Test
This commit is contained in:
92
prisma/schema.prisma
Normal file
92
prisma/schema.prisma
Normal file
@@ -0,0 +1,92 @@
|
||||
// This is your Prisma schema file,
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
|
||||
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
output = "../generated/prisma"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model Team {
|
||||
id Int @id @default(autoincrement())
|
||||
name String @unique
|
||||
logo String? // Team logo URL or emoji
|
||||
registeredAt DateTime @default(now())
|
||||
players Player[]
|
||||
matches1 Match[] @relation("Team1Matches")
|
||||
matches2 Match[] @relation("Team2Matches")
|
||||
resultsWon Result[] @relation("WinnerTeamResults")
|
||||
}
|
||||
|
||||
model Player {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
username String? @unique
|
||||
registeredAt DateTime @default(now())
|
||||
passwordHash String?
|
||||
imageUrl String? // Optional profile image path
|
||||
team Team? @relation(fields: [teamId], references: [id])
|
||||
teamId Int?
|
||||
}
|
||||
|
||||
model AdminUser {
|
||||
id Int @id @default(autoincrement())
|
||||
username String @unique
|
||||
passwordHash String
|
||||
}
|
||||
|
||||
model Tournament {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
date DateTime
|
||||
location String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
stages TournamentStage[]
|
||||
}
|
||||
|
||||
model TournamentStage {
|
||||
id Int @id @default(autoincrement())
|
||||
type StageType
|
||||
startedAt DateTime?
|
||||
endedAt DateTime?
|
||||
matches Match[]
|
||||
tier Int? // Added for tiered elimination
|
||||
tournament Tournament @relation(fields: [tournamentId], references: [id])
|
||||
tournamentId Int
|
||||
}
|
||||
|
||||
enum StageType {
|
||||
ROUND_ROBIN
|
||||
SINGLE_ELIM
|
||||
}
|
||||
|
||||
model Match {
|
||||
id Int @id @default(autoincrement())
|
||||
stage TournamentStage @relation(fields: [stageId], references: [id])
|
||||
stageId Int
|
||||
team1 Team @relation("Team1Matches", fields: [team1Id], references: [id])
|
||||
team1Id Int
|
||||
team2 Team @relation("Team2Matches", fields: [team2Id], references: [id])
|
||||
team2Id Int
|
||||
scheduledAt DateTime
|
||||
result Result?
|
||||
pool Int
|
||||
}
|
||||
|
||||
model Result {
|
||||
id Int @id @default(autoincrement())
|
||||
match Match @relation(fields: [matchId], references: [id])
|
||||
matchId Int @unique
|
||||
team1Score Int
|
||||
team2Score Int
|
||||
winner Team @relation("WinnerTeamResults", fields: [winnerId], references: [id])
|
||||
winnerId Int
|
||||
}
|
||||
Reference in New Issue
Block a user