From 30ffd094bd832405e3de73982332d40023e71a43 Mon Sep 17 00:00:00 2001 From: Laurin <60652077+Flexla54@users.noreply.github.com> Date: Mon, 1 Nov 2021 18:19:41 +0100 Subject: [PATCH 1/7] Normalize schema --- prisma/schema.prisma | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 0be5b1e..d8291d6 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -52,22 +52,22 @@ model Discipline { name String minTeamSize Int @default(1) maxTeamSize Int @default(1) - roles Roles[] + roles Role[] teams Team[] event Event @relation(fields: [eventId], references: [id]) eventId Int } -model Roles { +model Role { id Int @id @default(autoincrement()) pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String + schema Json - roles Participant @relation(fields: [participantId], references: [id]) - discipline Discipline? @relation(fields: [disciplineId], references: [id]) - disciplineId Int? - participantId Int + participant Participant[] + discipline Discipline @relation(fields: [disciplineId], references: [id]) + disciplineId Int } model Team { @@ -89,7 +89,7 @@ model Participant { team Team @relation(fields: [teamId], references: [id]) teamId Int - Roles Roles[] + roles Role[] } model Oragnisation { From 124773cce32fce2cf7c1715a5adb66087a28b680 Mon Sep 17 00:00:00 2001 From: Laurin <60652077+Flexla54@users.noreply.github.com> Date: Mon, 1 Nov 2021 18:45:05 +0100 Subject: [PATCH 2/7] Add leader fields --- prisma/schema.prisma | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index d8291d6..6a80bbc 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -75,9 +75,11 @@ model Team { pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String - participants Participant[] + participants Participant[] @relation(name: "participants") discipline Discipline @relation(fields: [disciplineId], references: [id]) disciplineId Int + leader Participant @relation(name: "leader", fields: [leaderId], references: [id]) + leaderId Int } model Participant { @@ -87,8 +89,9 @@ model Participant { lastName String email String - team Team @relation(fields: [teamId], references: [id]) + team Team @relation(name: "participants", fields: [teamId], references: [id]) teamId Int + leaderOf Team? @relation(name: "leader") roles Role[] } From 5223c50881730944ebeb6e7d019819ed9770710d Mon Sep 17 00:00:00 2001 From: Laurin <60652077+Flexla54@users.noreply.github.com> Date: Wed, 3 Nov 2021 14:57:14 +0100 Subject: [PATCH 3/7] update campaign, participants, group --- prisma/schema.prisma | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 6a80bbc..8c52d75 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -18,7 +18,6 @@ model Event { disciplines Discipline[] admins Admin[] organisations Oragnisation[] - campaigns Campaign[] } model Admin { @@ -36,14 +35,10 @@ model Campaign { id Int @id @default(autoincrement()) pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid expiresAt DateTime - user_limit Int @default(40) - user_number Int @default(0) - links String[] + link String group Group @relation(fields: [groupId], references: [id]) groupId Int - event Event @relation(fields: [eventId], references: [id]) - eventId Int } model Discipline { @@ -89,10 +84,13 @@ model Participant { lastName String email String + group Group @relation(fields: [groupId], references: [id]) + groupId Int team Team @relation(name: "participants", fields: [teamId], references: [id]) teamId Int leaderOf Team? @relation(name: "leader") roles Role[] + } model Oragnisation { @@ -106,11 +104,14 @@ model Oragnisation { } model Group { - id Int @id @default(autoincrement()) - pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id Int @id @default(autoincrement()) + pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String + user_limit Int @default(40) + user_number Int @default(0) oragnisation Oragnisation @relation(fields: [oragnisationId], references: [id]) oragnisationId Int - campaign Campaign[] + participants Participant[] + campaign Campaign[] } From 1d87860be09f03b64a0d9d8c764c5e621b9c3d81 Mon Sep 17 00:00:00 2001 From: Laurin <60652077+Flexla54@users.noreply.github.com> Date: Tue, 9 Nov 2021 15:17:20 +0100 Subject: [PATCH 4/7] Adding LinkObject; adjust details --- prisma/schema.prisma | 51 +++++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 8c52d75..a07eefb 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -17,7 +17,32 @@ model Event { disciplines Discipline[] admins Admin[] - organisations Oragnisation[] + organisations Organisation[] + campaign Campaign? +} + +model Campaign { + id Int @id @default(autoincrement()) + pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid + expiresAt DateTime + user_limit Int @default(40) + user_number Int @default(0) + + event Event? @relation(fields: [eventId], references: [id]) + links LinkObject[] + eventId Int + +} + +model LinkObject { + 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 } model Admin { @@ -31,22 +56,12 @@ model Admin { eventId Int } -model Campaign { - id Int @id @default(autoincrement()) - pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid - expiresAt DateTime - link String - - group Group @relation(fields: [groupId], references: [id]) - groupId Int -} - model Discipline { id Int @id @default(autoincrement()) pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String - minTeamSize Int @default(1) - maxTeamSize Int @default(1) + minTeamSize Int + maxTeamSize Int roles Role[] teams Team[] @@ -73,7 +88,7 @@ model Team { participants Participant[] @relation(name: "participants") discipline Discipline @relation(fields: [disciplineId], references: [id]) disciplineId Int - leader Participant @relation(name: "leader", fields: [leaderId], references: [id]) + leader Participant? @relation(name: "leader", fields: [leaderId], references: [id]) leaderId Int } @@ -83,6 +98,7 @@ model Participant { firstName String lastName String email String + gender String group Group @relation(fields: [groupId], references: [id]) groupId Int @@ -93,7 +109,7 @@ model Participant { } -model Oragnisation { +model Organisation { id Int @id @default(autoincrement()) pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String @@ -109,9 +125,10 @@ model Group { name String user_limit Int @default(40) user_number Int @default(0) + level Int - oragnisation Oragnisation @relation(fields: [oragnisationId], references: [id]) + oragnisation Organisation @relation(fields: [oragnisationId], references: [id]) oragnisationId Int participants Participant[] - campaign Campaign[] + link LinkObject? } From a0d033672a3524753a4f8d37c4d7fc5abd357885 Mon Sep 17 00:00:00 2001 From: Laurin <60652077+Flexla54@users.noreply.github.com> Date: Tue, 9 Nov 2021 15:39:09 +0100 Subject: [PATCH 5/7] Adding enum (Gender, AdminLevel) --- prisma/schema.prisma | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index a07eefb..c037ab6 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -28,7 +28,7 @@ model Campaign { user_limit Int @default(40) user_number Int @default(0) - event Event? @relation(fields: [eventId], references: [id]) + event Event @relation(fields: [eventId], references: [id]) links LinkObject[] eventId Int @@ -50,7 +50,7 @@ model Admin { pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String password String // TODO: Probably specify hash size (VarChar or some other type) - permission_level Int // TODO: Maybe extract into an enum + permission_level permission_level @default(STANDARD) event Event @relation(fields: [eventId], references: [id]) eventId Int @@ -98,7 +98,7 @@ model Participant { firstName String lastName String email String - gender String + gender Gender group Group @relation(fields: [groupId], references: [id]) groupId Int @@ -132,3 +132,14 @@ model Group { participants Participant[] link LinkObject? } + +enum permission_level { + STANDARD + ELEVATED +} + +enum Gender { + MALE + FEMALE + OTHERS +} \ No newline at end of file From 8299060d00337c261f78a84c7cefb05e4ad2c899 Mon Sep 17 00:00:00 2001 From: Laurin <60652077+Flexla54@users.noreply.github.com> Date: Tue, 9 Nov 2021 15:44:15 +0100 Subject: [PATCH 6/7] Format schema, Adjust enum naming --- prisma/schema.prisma | 88 ++++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index c037ab6..0df1552 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -18,47 +18,45 @@ model Event { disciplines Discipline[] admins Admin[] organisations Organisation[] - campaign Campaign? + campaign Campaign? } model Campaign { - id Int @id @default(autoincrement()) - pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid - expiresAt DateTime - user_limit Int @default(40) - user_number Int @default(0) - - event Event @relation(fields: [eventId], references: [id]) + id Int @id @default(autoincrement()) + pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid + expiresAt DateTime + + event Event @relation(fields: [eventId], references: [id]) links LinkObject[] - eventId Int + eventId Int @unique } model LinkObject { - id Int @id @default(autoincrement()) - pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid - link String + id Int @id @default(autoincrement()) + pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid + link String - campaign Campaign @relation(fields: [campaignId], references: [id]) + campaign Campaign @relation(fields: [campaignId], references: [id]) campaignId Int - group Group @relation(fields: [groupId], references: [id]) - groupId 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 + id Int @id @default(autoincrement()) + pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String password String // TODO: Probably specify hash size (VarChar or some other type) - permission_level permission_level @default(STANDARD) + permission_level LevelAdmin @default(STANDARD) event Event @relation(fields: [eventId], references: [id]) eventId Int } model Discipline { - id Int @id @default(autoincrement()) - pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id Int @id @default(autoincrement()) + pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String minTeamSize Int maxTeamSize Int @@ -70,14 +68,14 @@ model Discipline { } model Role { - id Int @id @default(autoincrement()) - pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid - name String + id Int @id @default(autoincrement()) + pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid + name String schema Json - participant Participant[] - discipline Discipline @relation(fields: [disciplineId], references: [id]) - disciplineId Int + participant Participant[] + discipline Discipline @relation(fields: [disciplineId], references: [id]) + disciplineId Int } model Team { @@ -88,8 +86,8 @@ model Team { participants Participant[] @relation(name: "participants") discipline Discipline @relation(fields: [disciplineId], references: [id]) disciplineId Int - leader Participant? @relation(name: "leader", fields: [leaderId], references: [id]) - leaderId Int + leader Participant? @relation(name: "leader", fields: [leaderId], references: [id]) + leaderId Int @unique } model Participant { @@ -100,13 +98,13 @@ model Participant { email String gender Gender - group Group @relation(fields: [groupId], references: [id]) - groupId Int - team Team @relation(name: "participants", fields: [teamId], references: [id]) - teamId Int - leaderOf Team? @relation(name: "leader") - roles Role[] - + group Group @relation(fields: [groupId], references: [id]) + groupId Int + team Team @relation(name: "participants", fields: [teamId], references: [id]) + teamId Int + leaderOf Team? @relation(name: "leader") + roles Role[] + } model Organisation { @@ -120,20 +118,20 @@ model Organisation { } model Group { - id Int @id @default(autoincrement()) - pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid - name String - user_limit Int @default(40) - user_number Int @default(0) - level Int + id Int @id @default(autoincrement()) + pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid + name String + user_limit Int @default(40) + user_number Int @default(0) + level Int - oragnisation Organisation @relation(fields: [oragnisationId], references: [id]) + oragnisation Organisation @relation(fields: [oragnisationId], references: [id]) oragnisationId Int - participants Participant[] - link LinkObject? + participants Participant[] + link LinkObject? } -enum permission_level { +enum LevelAdmin { STANDARD ELEVATED } From 4319620bfd8747b97f0f714d9ad0b4b2e86eb2a5 Mon Sep 17 00:00:00 2001 From: Laurin <60652077+Flexla54@users.noreply.github.com> Date: Wed, 10 Nov 2021 08:28:23 +0100 Subject: [PATCH 7/7] small changes from feedback --- prisma/schema.prisma | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 0df1552..9be7150 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -18,7 +18,7 @@ model Event { disciplines Discipline[] admins Admin[] organisations Organisation[] - campaign Campaign? + campaign Campaign[] } model Campaign { @@ -27,12 +27,11 @@ model Campaign { expiresAt DateTime event Event @relation(fields: [eventId], references: [id]) - links LinkObject[] + links Link[] eventId Int @unique - } -model LinkObject { +model Link { id Int @id @default(autoincrement()) pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid link String @@ -48,7 +47,7 @@ model Admin { pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String password String // TODO: Probably specify hash size (VarChar or some other type) - permission_level LevelAdmin @default(STANDARD) + permission_level AdminLevel @default(STANDARD) event Event @relation(fields: [eventId], references: [id]) eventId Int @@ -122,16 +121,15 @@ model Group { pid String @unique @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String user_limit Int @default(40) - user_number Int @default(0) level Int oragnisation Organisation @relation(fields: [oragnisationId], references: [id]) oragnisationId Int participants Participant[] - link LinkObject? + link Link? } -enum LevelAdmin { +enum AdminLevel { STANDARD ELEVATED }