mirror of
https://github.com/detleph/server.git
synced 2026-09-04 08:36:06 +02:00
HOTFIX: Name of uuid function
The prisma schema didn't compile with the previous schema
This commit is contained in:
+170
-158
@@ -1,158 +1,170 @@
|
||||
// Schema for the main database
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
model Event {
|
||||
id Int @id @default(autoincrement()) // Primary key
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid // Public key
|
||||
date DateTime
|
||||
name String
|
||||
description String
|
||||
|
||||
disciplines Discipline[]
|
||||
organisations Organisation[]
|
||||
campaign Campaign[]
|
||||
}
|
||||
|
||||
model Campaign {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
start DateTime
|
||||
expiresAt DateTime
|
||||
|
||||
links Link[]
|
||||
event Event @relation(fields: [eventId], references: [id])
|
||||
eventId Int @unique
|
||||
}
|
||||
|
||||
model Link {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
link String
|
||||
|
||||
campaign Campaign @relation(fields: [campaignId], references: [id])
|
||||
campaignId Int
|
||||
group Group? @relation(fields: [groupId], references: [id])
|
||||
groupId Int @unique
|
||||
}
|
||||
|
||||
model Admin {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String @unique
|
||||
password String // TODO: Probably specify hash size (VarChar or some other type)
|
||||
|
||||
permission_level AdminLevel @default(STANDARD)
|
||||
revision DateTime @default(now())
|
||||
groups Group[]
|
||||
}
|
||||
|
||||
model Discipline {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
minTeamSize Int
|
||||
maxTeamSize Int
|
||||
roles RoleSchema[]
|
||||
|
||||
teams Team[]
|
||||
event Event @relation(fields: [eventId], references: [id])
|
||||
eventId Int
|
||||
}
|
||||
|
||||
model RoleSchema {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
schema Json
|
||||
|
||||
roles Role[]
|
||||
discipline Discipline @relation(fields: [disciplineId], references: [id])
|
||||
disciplineId Int
|
||||
}
|
||||
|
||||
model Team {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
leaderEmail String
|
||||
|
||||
roles Role[] @relation(name: "participants")
|
||||
discipline Discipline @relation(fields: [disciplineId], references: [id])
|
||||
disciplineId Int
|
||||
}
|
||||
|
||||
model Participant {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
firstName String
|
||||
lastName String
|
||||
gender Gender
|
||||
|
||||
verified Boolean @default(false)
|
||||
|
||||
group Group @relation(fields: [groupId], references: [id])
|
||||
groupId Int
|
||||
roles Role[]
|
||||
}
|
||||
|
||||
model Role {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random"))
|
||||
name String //e.g. runner, swimmer,...
|
||||
importance Job
|
||||
score String
|
||||
|
||||
participant Participant? @relation(fields: [participantId], references: [id])
|
||||
participantId Int?
|
||||
team Team @relation(name: "participants", fields: [teamId], references: [id])
|
||||
teamId Int
|
||||
schema RoleSchema @relation(fields: [schemaId], references: [id])
|
||||
schemaId Int
|
||||
}
|
||||
|
||||
model Organisation {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
|
||||
groups Group[]
|
||||
event Event @relation(fields: [eventId], references: [id])
|
||||
eventId Int
|
||||
}
|
||||
|
||||
model Group {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
user_limit Int @default(40)
|
||||
level Int
|
||||
|
||||
oragnisation Organisation @relation(fields: [oragnisationId], references: [id])
|
||||
oragnisationId Int
|
||||
participants Participant[]
|
||||
link Link?
|
||||
admins Admin[]
|
||||
}
|
||||
|
||||
enum AdminLevel {
|
||||
STANDARD
|
||||
ELEVATED
|
||||
}
|
||||
|
||||
enum Gender {
|
||||
MALE
|
||||
FEMALE
|
||||
OTHER
|
||||
}
|
||||
|
||||
enum Job {
|
||||
TEAMLEADER
|
||||
MEMBER
|
||||
// Schema for the main database
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
model Event {
|
||||
id Int @id @default(autoincrement()) // Primary key
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid // Public key
|
||||
date DateTime
|
||||
name String
|
||||
description String
|
||||
|
||||
disciplines Discipline[]
|
||||
organisations Organisation[]
|
||||
campaign Campaign[]
|
||||
visual Media[]
|
||||
}
|
||||
|
||||
model Campaign {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
start DateTime
|
||||
expiresAt DateTime
|
||||
|
||||
links Link[]
|
||||
event Event @relation(fields: [eventId], references: [id], onDelete: Cascade)
|
||||
eventId Int @unique
|
||||
}
|
||||
|
||||
model Link {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
link String
|
||||
|
||||
campaign Campaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)
|
||||
campaignId Int
|
||||
group Group @relation(fields: [groupId], references: [id], onDelete: Cascade)
|
||||
groupId Int @unique
|
||||
}
|
||||
|
||||
model Admin {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String @unique
|
||||
password String // TODO: Probably specify hash size (VarChar or some other type)
|
||||
|
||||
permission_level AdminLevel @default(STANDARD)
|
||||
revision DateTime @default(now())
|
||||
groups Group[]
|
||||
}
|
||||
|
||||
model Discipline {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
minTeamSize Int
|
||||
maxTeamSize Int
|
||||
|
||||
roles RoleSchema[]
|
||||
teams Team[]
|
||||
event Event @relation(fields: [eventId], references: [id], onDelete: Cascade)
|
||||
eventId Int
|
||||
visual Media[]
|
||||
}
|
||||
|
||||
model RoleSchema {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
schema Json
|
||||
|
||||
roles Role[]
|
||||
discipline Discipline @relation(fields: [disciplineId], references: [id], onDelete: Cascade)
|
||||
disciplineId Int
|
||||
visual Media[]
|
||||
}
|
||||
|
||||
model Team {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
leaderEmail String
|
||||
|
||||
roles Role[] @relation(name: "participants")
|
||||
discipline Discipline @relation(fields: [disciplineId], references: [id], onDelete: Cascade)
|
||||
disciplineId Int
|
||||
}
|
||||
|
||||
model Participant {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
firstName String
|
||||
lastName String
|
||||
gender Gender
|
||||
relevance Job
|
||||
|
||||
group Group @relation(fields: [groupId], references: [id], onDelete: Cascade)
|
||||
groupId Int
|
||||
roles Role[]
|
||||
}
|
||||
|
||||
model Role {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()"))
|
||||
score String
|
||||
|
||||
participant Participant? @relation(fields: [participantId], references: [id], onDelete: SetNull)
|
||||
participantId Int?
|
||||
team Team @relation(name: "participants", fields: [teamId], references: [id], onDelete: Cascade)
|
||||
teamId Int
|
||||
schema RoleSchema @relation(fields: [schemaId], references: [id], onDelete: Cascade)
|
||||
schemaId Int
|
||||
}
|
||||
|
||||
model Organisation {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
|
||||
groups Group[]
|
||||
event Event @relation(fields: [eventId], references: [id], onDelete: Cascade)
|
||||
eventId Int
|
||||
}
|
||||
|
||||
model Group {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
name String
|
||||
user_limit Int @default(40)
|
||||
level Int
|
||||
|
||||
oragnisation Organisation @relation(fields: [oragnisationId], references: [id], onDelete: Cascade)
|
||||
oragnisationId Int
|
||||
participants Participant[]
|
||||
link Link?
|
||||
admins Admin[]
|
||||
}
|
||||
|
||||
model Media {
|
||||
id Int @id @default(autoincrement())
|
||||
pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||
description String
|
||||
location String @unique
|
||||
|
||||
event Event[]
|
||||
discipline Discipline[]
|
||||
role RoleSchema[]
|
||||
}
|
||||
|
||||
enum AdminLevel {
|
||||
STANDARD
|
||||
ELEVATED
|
||||
}
|
||||
|
||||
enum Gender {
|
||||
MALE
|
||||
FEMALE
|
||||
OTHER
|
||||
}
|
||||
|
||||
enum Job {
|
||||
TEAMLEADER
|
||||
MEMBER
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user