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
}