scraping-bootcamp-api / prisma /schema.prisma
ShieldX's picture
Upload 11 files
3c21989 verified
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL") // This will be your Aiven Postgres URL
}
enum Role {
USER
ADMIN
}
enum VerificationStatus {
PENDING
APPROVED
REJECTED
}
model User {
id String @id @default(uuid())
name String
email String @unique
whatsappNumber String
password String // Hashed password for dashboard login
// Demographics
isStudent Boolean
college String? // Nullable if not a student
course String?
semester String?
profession String? // Nullable if student
// Verification & Status
role Role @default(USER)
accountStatus VerificationStatus @default(PENDING)
// Relations
payment Payment?
discountClaim DiscountClaim?
createdAt DateTime @default(now())
}
model Payment {
id String @id @default(uuid())
userId String @unique
user User @relation(fields: [userId], references: [id])
amount Int // 399 or 199
upiReference String @unique
screenshotUrl String // Cloudinary URL
createdAt DateTime @default(now())
}
model DiscountClaim {
id String @id @default(uuid())
userId String @unique
user User @relation(fields: [userId], references: [id])
platform String // 'Instagram' or 'LinkedIn'
postedAt DateTime // Date and time they claim to have posted
screenshotUrl String // Cloudinary URL
}
model WorkshopClass {
id Int @id @default(autoincrement())
dayNumber Int @unique // 1 through 6
title String
meetingLink String? // Admin can update this later
date DateTime? // Scheduled date of the class
}