because I got bored of customising my CV for every job
1model User {
2 id String @id @default(cuid())
3 name String
4 createdAt DateTime @default(now())
5 updatedAt DateTime @updatedAt
6
7 // Credentials (one-to-one relationship)
8 credentials Credentials?
9
10 // Job experiences
11 jobExperiences UserJobExperience[]
12
13 // Organizations
14 memberships Membership[]
15
16 // Vacancies owned by user
17 ownedVacancies Vacancy[] @relation("VacancyOwner")
18
19 // CVs
20 cvs CV[]
21
22 // Applications
23 applications Application[]
24
25 // Education history
26 educationHistory Education[]
27
28 // Refresh tokens
29 refreshTokens RefreshToken[]
30
31 @@map("users")
32}
33
34model Credentials {
35 id String @id @default(cuid())
36 userId String @unique
37 email String @unique
38 password String
39 emailVerifiedAt DateTime?
40 emailVerificationToken String?
41 emailVerificationTokenExpiresAt DateTime?
42 passwordResetToken String?
43 passwordResetTokenExpiresAt DateTime?
44 createdAt DateTime @default(now())
45 updatedAt DateTime @updatedAt
46
47 // Relation to User
48 user User @relation(fields: [userId], references: [id], onDelete: Cascade)
49
50 @@map("credentials")
51}
52
53model Institution {
54 id String @id @default(cuid())
55 name String @unique
56 description String?
57 createdAt DateTime @default(now())
58 updatedAt DateTime @updatedAt
59
60 // Education entries at this institution
61 educationEntries Education[]
62
63 @@map("institutions")
64}
65
66model Education {
67 id String @id @default(cuid())
68 userId String
69 institutionId String
70 degree String
71 fieldOfStudy String?
72 startDate DateTime
73 endDate DateTime?
74 description String?
75 createdAt DateTime @default(now())
76 updatedAt DateTime @updatedAt
77
78 // Relations
79 user User @relation(fields: [userId], references: [id], onDelete: Cascade)
80 institution Institution @relation(fields: [institutionId], references: [id], onDelete: Cascade)
81 skills Skill[]
82
83 @@map("educations")
84}