diff --git a/prisma/migrations/20220918123547_add_project_makers_table/migration.sql b/prisma/migrations/20220918123547_add_project_makers_table/migration.sql new file mode 100644 index 0000000..42fc30a --- /dev/null +++ b/prisma/migrations/20220918123547_add_project_makers_table/migration.sql @@ -0,0 +1,14 @@ +-- CreateTable +CREATE TABLE "ProjectMember" ( + "projectId" INTEGER NOT NULL, + "userId" INTEGER NOT NULL, + "level" TEXT NOT NULL, + + CONSTRAINT "ProjectMember_pkey" PRIMARY KEY ("projectId","userId") +); + +-- AddForeignKey +ALTER TABLE "ProjectMember" ADD CONSTRAINT "ProjectMember_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectMember" ADD CONSTRAINT "ProjectMember_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 1808c83..a0be888 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -70,6 +70,7 @@ model User { userKeys UserKey[] skills Skill[] roles UsersOnWorkRoles[] + projects ProjectMember[] tournaments TournamentParticipant[] } @@ -157,6 +158,7 @@ model Project { tags Tag[] capabilities Capability[] + members ProjectMember[] recruit_roles ProjectRecruitRoles[] tournaments TournamentProject[] } @@ -172,6 +174,17 @@ model ProjectRecruitRoles { @@id([projectId, roleId]) } +model ProjectMember { + project Project @relation(fields: [projectId], references: [id]) + projectId Int + user User @relation(fields: [userId], references: [id]) + userId Int + + level String // Admin | Maker | (new_roles_later) + + @@id([projectId, userId]) +} + model Award { id Int @id @default(autoincrement()) title String