196 lines
5.6 KiB
Plaintext
Executable File
196 lines
5.6 KiB
Plaintext
Executable File
// This is your Prisma schema file,
|
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
|
|
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
|
|
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
output = "../src/generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "mysql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model Admin {
|
|
id Int @id @default(autoincrement())
|
|
nama_depan String @db.VarChar(255)
|
|
nama_belakang String @db.VarChar(255)
|
|
role Role @default(admin)
|
|
email String @unique @db.VarChar(255)
|
|
password String @db.Text
|
|
signature String? @db.Text // singature untuk identifikasi auth jwt (best practice)
|
|
|
|
@@map("admin")
|
|
}
|
|
|
|
model HasilResearch {
|
|
id Int @id @default(autoincrement())
|
|
image_path String @db.Text
|
|
nama_project String @db.VarChar(255)
|
|
deskripsi String @db.VarChar(255)
|
|
link_project String @db.Text
|
|
created_at DateTime @default(now())
|
|
|
|
@@map("hasil_research")
|
|
}
|
|
|
|
model LamaranMagang {
|
|
id Int @id @default(autoincrement())
|
|
id_mahasiswa Int
|
|
id_lowongan_magang String @db.VarChar(255)
|
|
status StatusLamaran
|
|
batch Int?
|
|
|
|
created_at DateTime @default(now())
|
|
update_at DateTime
|
|
|
|
batch_data Batch? @relation(fields: [batch], references: [id], map: "lamaran_magang_batch_foreign")
|
|
mahasiswa Mahasiswa @relation(fields: [id_mahasiswa], references: [id], map: "lamaran_magang_id_mahasiswa_foreign")
|
|
lowongan_magang LowonganMagang @relation(fields: [id_lowongan_magang], references: [id], map: "lamaran_magang_id_lowongan_magang_foreign")
|
|
|
|
@@index([id_mahasiswa], map: "lamaran_magang_id_mahasiswa_foreign")
|
|
@@index([id_lowongan_magang], map: "lamaran_magang_id_lowongan_magang_foreign")
|
|
@@index([batch])
|
|
@@map("lamaran_magang")
|
|
}
|
|
|
|
model LowonganMagang {
|
|
id String @id @db.VarChar(255)
|
|
posisi String @db.VarChar(255)
|
|
kelompok_peminatan String @db.VarChar(255)
|
|
image_path String @db.Text
|
|
jobdesk String @db.Text
|
|
lokasi String @db.VarChar(255)
|
|
kualifikasi String @db.Text
|
|
benefit String @db.Text
|
|
durasi_awal DateTime @db.Date
|
|
durasi_akhir DateTime @db.Date
|
|
id_batch Int
|
|
batch Batch @relation(fields: [id_batch], references: [id], map: "lowongan_magang_id_batch_foreign")
|
|
status_lowongan StatusLowongan
|
|
paid PaidStatus
|
|
created_at DateTime @default(now())
|
|
|
|
lamaran_magang LamaranMagang[]
|
|
|
|
@@index([id_batch], map: "lowongan_magang_id_batch_foreign")
|
|
@@map("lowongan_magang")
|
|
}
|
|
|
|
model Mahasiswa {
|
|
id Int @id @default(autoincrement())
|
|
nama_depan String @db.VarChar(255)
|
|
nama_belakang String? @db.VarChar(255)
|
|
email String @unique @db.VarChar(255)
|
|
kontak String @db.VarChar(255)
|
|
jurusan String @db.VarChar(255)
|
|
universitas String @db.VarChar(255)
|
|
negara String @db.VarChar(255)
|
|
role StudentRole @default(student)
|
|
cv_path String @db.Text
|
|
portofolio_path String @db.Text
|
|
motivasi String @db.Text
|
|
relevant_skills String @db.VarChar(255)
|
|
|
|
lamaran_magang LamaranMagang[]
|
|
|
|
@@map("mahasiswa")
|
|
}
|
|
|
|
model Partnership {
|
|
id Int @id @default(autoincrement())
|
|
nama_partner String @db.VarChar(255)
|
|
image_path String @db.Text
|
|
created_at DateTime @default(now())
|
|
|
|
@@map("partnership")
|
|
}
|
|
|
|
model Faq {
|
|
id Int @id @default(autoincrement())
|
|
pertanyaan String @db.Text
|
|
jawaban String @db.Text
|
|
created_at DateTime @default(now())
|
|
|
|
@@map("faq")
|
|
}
|
|
|
|
model RiwayatPelamar {
|
|
id Int @id @default(autoincrement())
|
|
batch Int
|
|
negara String? @db.VarChar(255)
|
|
posisi String? @db.VarChar(255)
|
|
tahun Int
|
|
jumlah Int
|
|
pelamar_diterima Int
|
|
pelamar_ditolak Int
|
|
pelamar_diproses Int
|
|
presentase_diterima Float
|
|
presentase_ditolak Float
|
|
presentase_diproses Float
|
|
|
|
created_at DateTime @default(now())
|
|
|
|
@@unique([batch, negara, posisi])
|
|
@@index([batch])
|
|
@@index([negara])
|
|
@@index([posisi])
|
|
@@map("riwayat_pelamar")
|
|
}
|
|
|
|
model Feedback {
|
|
id Int @id @default(autoincrement())
|
|
nama String @db.VarChar(255)
|
|
universitas String @db.VarChar(255)
|
|
pesan String @db.Text
|
|
batch Int
|
|
posisi String @db.VarChar(255)
|
|
tahun Int
|
|
image_path String @db.Text
|
|
|
|
created_at DateTime @default(now())
|
|
|
|
@@map("feedback")
|
|
}
|
|
|
|
model Batch {
|
|
id Int @id @default(autoincrement())
|
|
batch_number Int @unique
|
|
is_active Boolean @default(false)
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @updatedAt
|
|
lowongan_magang LowonganMagang[]
|
|
lamaranMagangs LamaranMagang[]
|
|
|
|
@@index([is_active])
|
|
@@index([batch_number])
|
|
@@map("batch")
|
|
}
|
|
|
|
enum Role {
|
|
admin
|
|
}
|
|
|
|
enum StudentRole {
|
|
student
|
|
}
|
|
|
|
enum StatusLamaran {
|
|
diterima
|
|
diproses
|
|
ditolak
|
|
}
|
|
|
|
enum StatusLowongan {
|
|
dibuka
|
|
ditutup
|
|
}
|
|
|
|
enum PaidStatus {
|
|
paid
|
|
unpaid
|
|
}
|