Spaces:
Running
Running
File size: 1,949 Bytes
3c21989 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | 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
} |