From 0e6c2c7e25ea85f0ab625e74bdea9636a4ef9e81 Mon Sep 17 00:00:00 2001 From: austinkelsay Date: Wed, 20 Mar 2024 12:59:24 -0500 Subject: [PATCH] Update schema to allow users to post resources/workshops --- .../migration.sql | 8 +++++++ prisma/schema.prisma | 24 ++++++++++++------- 2 files changed, 23 insertions(+), 9 deletions(-) rename prisma/migrations/{20240314173914_init => 20240320164115_init}/migration.sql (86%) diff --git a/prisma/migrations/20240314173914_init/migration.sql b/prisma/migrations/20240320164115_init/migration.sql similarity index 86% rename from prisma/migrations/20240314173914_init/migration.sql rename to prisma/migrations/20240320164115_init/migration.sql index a94fe32..c6e642e 100644 --- a/prisma/migrations/20240314173914_init/migration.sql +++ b/prisma/migrations/20240320164115_init/migration.sql @@ -35,6 +35,7 @@ CREATE TABLE "Purchase" ( -- CreateTable CREATE TABLE "Course" ( "id" SERIAL NOT NULL, + "userId" INTEGER NOT NULL, "price" INTEGER NOT NULL DEFAULT 0, "noteId" TEXT, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -46,6 +47,7 @@ CREATE TABLE "Course" ( -- CreateTable CREATE TABLE "Resource" ( "id" SERIAL NOT NULL, + "userId" INTEGER NOT NULL, "courseId" INTEGER, "price" INTEGER NOT NULL DEFAULT 0, "noteId" TEXT, @@ -79,5 +81,11 @@ ALTER TABLE "Purchase" ADD CONSTRAINT "Purchase_courseId_fkey" FOREIGN KEY ("cou -- AddForeignKey ALTER TABLE "Purchase" ADD CONSTRAINT "Purchase_resourceId_fkey" FOREIGN KEY ("resourceId") REFERENCES "Resource"("id") ON DELETE SET NULL ON UPDATE CASCADE; +-- AddForeignKey +ALTER TABLE "Course" ADD CONSTRAINT "Course_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Resource" ADD CONSTRAINT "Resource_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + -- AddForeignKey ALTER TABLE "Resource" ADD CONSTRAINT "Resource_courseId_fkey" FOREIGN KEY ("courseId") REFERENCES "Course"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 4f5a0e2..d1046d9 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -8,15 +8,17 @@ generator client { } model User { - id Int @id @default(autoincrement()) - pubkey String @unique - username String? @unique - avatar String? - purchased Purchase[] - role Role? @relation(fields: [roleId], references: [id]) - roleId Int? - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt + id Int @id @default(autoincrement()) + pubkey String @unique + username String? @unique + avatar String? + purchased Purchase[] + courses Course[] // Relation field added for courses created by the user + resources Resource[] // Relation field added for resources created by the user + role Role? @relation(fields: [roleId], references: [id]) + roleId Int? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt } model Role { @@ -41,6 +43,8 @@ model Purchase { model Course { id Int @id @default(autoincrement()) + userId Int // Field added to link a course to a user + user User @relation(fields: [userId], references: [id]) // Relation setup for user price Int @default(0) resources Resource[] purchases Purchase[] @@ -51,6 +55,8 @@ model Course { model Resource { id Int @id @default(autoincrement()) + userId Int // Field added to link a resource to a user + user User @relation(fields: [userId], references: [id]) // Relation setup for user course Course? @relation(fields: [courseId], references: [id]) courseId Int? price Int @default(0)