You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
4.9 KiB
159 lines
4.9 KiB
// Refer to the Prisma schema docs: https://pris.ly/d/prisma-schema
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
// Necessary for NextAuth.
|
|
model Account {
|
|
id String @id @default(cuid())
|
|
userId String
|
|
type String
|
|
provider String
|
|
providerAccountId String
|
|
refresh_token String? @db.Text
|
|
access_token String? @db.Text
|
|
expires_at Int?
|
|
token_type String?
|
|
scope String?
|
|
id_token String? @db.Text
|
|
session_state String?
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
@@unique([provider, providerAccountId])
|
|
}
|
|
|
|
model Session {
|
|
id String @id @default(cuid())
|
|
sessionToken String @unique
|
|
userId String
|
|
expires DateTime
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(cuid())
|
|
name String?
|
|
email String? @unique
|
|
emailVerified DateTime?
|
|
image String?
|
|
accounts Account[]
|
|
sessions Session[]
|
|
todos Todo[]
|
|
resumesResumes ResumesResume[]
|
|
resumesStars ResumesStar[]
|
|
resumesComments ResumesComment[]
|
|
resumesCommentVotes ResumesCommentVote[]
|
|
}
|
|
|
|
model VerificationToken {
|
|
identifier String
|
|
token String @unique
|
|
expires DateTime
|
|
|
|
@@unique([identifier, token])
|
|
}
|
|
|
|
model Todo {
|
|
id String @id @default(cuid())
|
|
userId String
|
|
text String @db.Text
|
|
status TodoStatus @default(INCOMPLETE)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
}
|
|
|
|
enum TodoStatus {
|
|
INCOMPLETE
|
|
COMPLETE
|
|
}
|
|
|
|
model Company {
|
|
id String @id @default(cuid())
|
|
name String @db.Text
|
|
slug String @unique
|
|
description String? @db.Text
|
|
logoUrl String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
// Start of Resumes project models.
|
|
// Add Resumes project models here, prefix all models with "Resumes",
|
|
// use camelCase for field names, and try to name them consistently
|
|
// across all models in this file.
|
|
// End of Resumes project models.
|
|
|
|
model ResumesResume {
|
|
id String @id @default(cuid())
|
|
userId String
|
|
title String @db.Text
|
|
additionalInfo String @db.Text
|
|
// TODO: Add role, experience, location from Enums
|
|
url String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
stars ResumesStar[]
|
|
comments ResumesComment[]
|
|
}
|
|
|
|
model ResumesStar {
|
|
id String @id @default(cuid())
|
|
resumeId String
|
|
userId String
|
|
createdAt DateTime @default(now())
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
resume ResumesResume @relation(fields: [resumeId], references: [id], onDelete: Cascade)
|
|
}
|
|
|
|
model ResumesComment {
|
|
id String @id @default(cuid())
|
|
resumeId String
|
|
userId String
|
|
description String @db.Text
|
|
section ResumesSection
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
resume ResumesResume @relation(fields: [resumeId], references: [id], onDelete: Cascade)
|
|
votes ResumesCommentVote[]
|
|
}
|
|
|
|
enum ResumesSection {
|
|
GENERAL
|
|
EDUCATION
|
|
EXPERIENCE
|
|
PROJECTS
|
|
SKILLS
|
|
}
|
|
|
|
model ResumesCommentVote {
|
|
id String @id @default(cuid())
|
|
commentId String
|
|
userId String
|
|
value Int
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
comment ResumesComment @relation(fields: [commentId], references: [id], onDelete: Cascade)
|
|
}
|
|
|
|
// Start of Offers project models.
|
|
// Add Offers project models here, prefix all models with "Offer",
|
|
// use camelCase for field names, and try to name them consistently
|
|
// across all models in this file.
|
|
// End of Offers project models.
|
|
|
|
// Start of Questions project models.
|
|
// Add Questions project models here, prefix all models with "Questions",
|
|
// use camelCase for field names, and try to name them consistently
|
|
// across all models in this file.
|
|
// End of Questions project models.
|