diff --git a/prisma/migrations/20251128144702_init/migration.sql b/prisma/migrations/20251128144702_init/migration.sql deleted file mode 100644 index d214bab..0000000 --- a/prisma/migrations/20251128144702_init/migration.sql +++ /dev/null @@ -1,87 +0,0 @@ --- CreateTable -CREATE TABLE "users" ( - "id" TEXT NOT NULL PRIMARY KEY, - "username" TEXT, - "name" TEXT, - "googleId" TEXT NOT NULL, - "email" TEXT NOT NULL, - "leetcode" TEXT, - "picture" TEXT, - "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" DATETIME NOT NULL -); - --- CreateTable -CREATE TABLE "rooms" ( - "id" TEXT NOT NULL PRIMARY KEY, - "room_code" INTEGER NOT NULL, - "description" TEXT, - "name" TEXT NOT NULL, - "img_url" TEXT, - "cost" INTEGER NOT NULL, - "participant_count" INTEGER NOT NULL DEFAULT 1, - "created_by" TEXT NOT NULL, - "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "end_date" DATETIME NOT NULL, - "status" TEXT NOT NULL DEFAULT 'ONGOING', - CONSTRAINT "rooms_created_by_fkey" FOREIGN KEY ("created_by") REFERENCES "users" ("id") ON DELETE RESTRICT ON UPDATE CASCADE -); - --- CreateTable -CREATE TABLE "room_user" ( - "id" TEXT NOT NULL PRIMARY KEY, - "room_id" TEXT NOT NULL, - "user_id" TEXT NOT NULL, - "initial_qn_count" INTEGER NOT NULL, - "final_qn_count" INTEGER, - CONSTRAINT "room_user_room_id_fkey" FOREIGN KEY ("room_id") REFERENCES "rooms" ("id") ON DELETE RESTRICT ON UPDATE CASCADE, - CONSTRAINT "room_user_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE RESTRICT ON UPDATE CASCADE -); - --- CreateTable -CREATE TABLE "Session" ( - "id" TEXT NOT NULL PRIMARY KEY, - "token" TEXT NOT NULL, - "userId" TEXT NOT NULL, - "expiresAt" DATETIME NOT NULL, - CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); - --- CreateTable -CREATE TABLE "Order" ( - "id" TEXT NOT NULL PRIMARY KEY, - "razorpayOrderId" TEXT NOT NULL, - "razorpayPaymentId" TEXT, - "amount" INTEGER NOT NULL, - "currency" TEXT NOT NULL DEFAULT 'INR', - "receipt" TEXT, - "status" TEXT NOT NULL DEFAULT 'created', - "userId" TEXT, - "roomId" TEXT, - "notes" TEXT, - "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" DATETIME NOT NULL, - CONSTRAINT "Order_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT "Order_roomId_fkey" FOREIGN KEY ("roomId") REFERENCES "rooms" ("id") ON DELETE SET NULL ON UPDATE CASCADE -); - --- CreateIndex -CREATE UNIQUE INDEX "users_username_key" ON "users"("username"); - --- CreateIndex -CREATE UNIQUE INDEX "users_googleId_key" ON "users"("googleId"); - --- CreateIndex -CREATE UNIQUE INDEX "users_email_key" ON "users"("email"); - --- CreateIndex -CREATE UNIQUE INDEX "rooms_room_code_key" ON "rooms"("room_code"); - --- CreateIndex -CREATE UNIQUE INDEX "room_user_room_id_user_id_key" ON "room_user"("room_id", "user_id"); - --- CreateIndex -CREATE UNIQUE INDEX "Session_token_key" ON "Session"("token"); - --- CreateIndex -CREATE UNIQUE INDEX "Order_razorpayOrderId_key" ON "Order"("razorpayOrderId"); diff --git a/prisma/migrations/20251201084033_init/migration.sql b/prisma/migrations/20251201110334_init/migration.sql similarity index 76% rename from prisma/migrations/20251201084033_init/migration.sql rename to prisma/migrations/20251201110334_init/migration.sql index 6a65e79..f2d4ec8 100644 --- a/prisma/migrations/20251201084033_init/migration.sql +++ b/prisma/migrations/20251201110334_init/migration.sql @@ -12,6 +12,7 @@ CREATE TABLE "users" ( "picture" TEXT, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, + "phone" TEXT, CONSTRAINT "users_pkey" PRIMARY KEY ("id") ); @@ -21,14 +22,17 @@ CREATE TABLE "rooms" ( "id" TEXT NOT NULL, "room_code" INTEGER NOT NULL, "description" TEXT, - "name" TEXT NOT NULL, + "roomName" TEXT, "img_url" TEXT, "cost" INTEGER NOT NULL, + "prizePool" INTEGER, "participant_count" INTEGER NOT NULL DEFAULT 1, "created_by" TEXT NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "end_date" TIMESTAMP(3) NOT NULL, "status" "RoomStatus" NOT NULL DEFAULT 'ONGOING', + "isPayout" BOOLEAN NOT NULL DEFAULT false, + "winnerUserId" TEXT, CONSTRAINT "rooms_pkey" PRIMARY KEY ("id") ); @@ -39,7 +43,7 @@ CREATE TABLE "room_user" ( "room_id" TEXT NOT NULL, "user_id" TEXT NOT NULL, "initial_qn_count" INTEGER NOT NULL, - "final_qn_count" INTEGER, + "final_qn_count" INTEGER NOT NULL, CONSTRAINT "room_user_pkey" PRIMARY KEY ("id") ); @@ -72,6 +76,23 @@ CREATE TABLE "Order" ( CONSTRAINT "Order_pkey" PRIMARY KEY ("id") ); +-- CreateTable +CREATE TABLE "Payout" ( + "id" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "username" TEXT NOT NULL, + "roomId" TEXT NOT NULL, + "roomName" TEXT NOT NULL, + "amount" INTEGER NOT NULL, + "phone" INTEGER NOT NULL, + "status" TEXT NOT NULL DEFAULT 'Pending', + "utr" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Payout_pkey" PRIMARY KEY ("id") +); + -- CreateIndex CREATE UNIQUE INDEX "users_username_key" ON "users"("username"); @@ -93,6 +114,9 @@ CREATE UNIQUE INDEX "Session_token_key" ON "Session"("token"); -- CreateIndex CREATE UNIQUE INDEX "Order_razorpayOrderId_key" ON "Order"("razorpayOrderId"); +-- CreateIndex +CREATE UNIQUE INDEX "Payout_roomId_userId_key" ON "Payout"("roomId", "userId"); + -- AddForeignKey ALTER TABLE "rooms" ADD CONSTRAINT "rooms_created_by_fkey" FOREIGN KEY ("created_by") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE; @@ -110,3 +134,9 @@ ALTER TABLE "Order" ADD CONSTRAINT "Order_userId_fkey" FOREIGN KEY ("userId") RE -- AddForeignKey ALTER TABLE "Order" ADD CONSTRAINT "Order_roomId_fkey" FOREIGN KEY ("roomId") REFERENCES "rooms"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Payout" ADD CONSTRAINT "Payout_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Payout" ADD CONSTRAINT "Payout_roomId_fkey" FOREIGN KEY ("roomId") REFERENCES "rooms"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 097ad13..2a7d849 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -12,14 +12,13 @@ enum RoomStatus { FINISHED } - model User { id String @id @default(cuid()) - username String? @unique + username String? @unique name String? googleId String @unique email String @unique - leetcode String? + leetcode String? picture String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@ -48,10 +47,11 @@ model Rooms { status RoomStatus @default(ONGOING) isPayout Boolean @default(false) winnerUserId String? - createdBy User @relation("room_creator", fields: [created_by], references: [id]) + createdBy User @relation("room_creator", fields: [created_by], references: [id]) orders Order[] participants RoomUser[] payout Payout[] + @@map("rooms") } @@ -85,7 +85,7 @@ model Order { amount Int currency String @default("INR") receipt String? - status String @default("created") + status String @default("created") userId String? roomId String? user User? @relation(fields: [userId], references: [id]) @@ -103,12 +103,12 @@ model Payout { roomName String amount Int phone Int - status String @default("Pending") + status String @default("Pending") user User? @relation(fields: [userId], references: [id]) room Rooms? @relation(fields: [roomId], references: [id]) utr String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt - @@unique([roomId, userId]) -} \ No newline at end of file + @@unique([roomId, userId]) +}