Files
hipmi/prisma/schema.prisma
Bagasbanuna02 ed77b569a6 Project Collaboration
## feat
- Buat proyek baru
- Tampilan list data pada beranda
- Partisipasi user lain
### No issuee
2024-04-05 15:31:35 +08:00

790 lines
30 KiB
Plaintext

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
engineType = "binary"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id String @id @default(cuid())
username String @unique
nomor String @unique
active Boolean @default(true)
createdAt DateTime? @default(now())
updatedAt DateTime? @updatedAt
MasterUserRole MasterUserRole @relation(fields: [masterUserRoleId], references: [id])
masterUserRoleId String @default("1")
UserSession UserSession?
Profile Profile?
Investasi Investasi[]
TransaksiInvestasi TransaksiInvestasi[]
Donasi Donasi[]
Donasi_Invoice Donasi_Invoice[]
Donasi_Notif Donasi_Notif[]
Event Event[]
Event_Peserta Event_Peserta[]
Voting Voting[]
Voting_Kontributor Voting_Kontributor[]
Job Job[]
Forum_Posting Forum_Posting[]
Forum_Komentar Forum_Komentar[]
Forum_ReportPosting Forum_ReportPosting[]
Forum_ReportKomentar Forum_ReportKomentar[]
ProjectCollaboration ProjectCollaboration[]
ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[]
ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat[]
}
model MasterUserRole {
id String @id
name String
active Boolean @default(true)
createdAt DateTime? @default(now())
updatedAt DateTime? @updatedAt
User User[]
}
model UserSession {
id String @id @default(cuid())
token String
expires DateTime
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
User User @relation(fields: [userId], references: [id])
userId String @unique
}
model KodeOtp {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
nomor String
otp Int
}
model Profile {
id String @id @default(cuid())
name String
email String @unique
alamat String
jenisKelamin String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
User User? @relation(fields: [userId], references: [id])
userId String? @unique
ImageProfile Images? @relation(fields: [imagesId], references: [id])
imagesId String? @unique
Portofolio Portofolio[]
ImagesBackground ImagesBackground? @relation(fields: [imagesBackgroundId], references: [id])
imagesBackgroundId String? @unique
}
model Images {
id String @id @default(cuid())
url String
label String @default("null")
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
Profile Profile?
Investasi Investasi?
BeritaInvestasi BeritaInvestasi[]
Donasi Donasi?
CeritaDonasi Donasi_Cerita[]
Donasi_TemporaryCreate Donasi_TemporaryCreate[]
Donasi_Kabar Donasi_Kabar[]
Donasi_PencairanDana Donasi_PencairanDana[]
Donasi_Invoice Donasi_Invoice[]
Portofolio Portofolio[]
Job Job[]
}
model ImagesBackground {
id String @id @default(cuid())
url String
label String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Profile Profile?
}
model Portofolio {
id String @id @default(cuid())
id_Portofolio String @unique
namaBisnis String
alamatKantor String
tlpn String
deskripsi String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
Profile Profile? @relation(fields: [profileId], references: [id])
profileId String?
MasterBidangBisnis MasterBidangBisnis @relation(fields: [masterBidangBisnisId], references: [id])
masterBidangBisnisId String
Logo Images? @relation(fields: [logoId], references: [id])
logoId String?
Portofolio_MediaSosial Portofolio_MediaSosial?
}
model Portofolio_MediaSosial {
id String @id @default(cuid())
facebook String?
twitter String?
instagram String?
tiktok String?
youtube String?
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Portofolio Portofolio? @relation(fields: [portofolioId], references: [id])
portofolioId String? @unique
}
model MasterBidangBisnis {
id String @id
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
Portofolio Portofolio[]
}
model MasterStatus {
id String @id @default(cuid())
name String
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Job Job[]
}
// -------------------- INVESTASI --------------------- //
// Table investasi / saham
model Investasi {
id String @id @default(cuid())
title String
targetDana String
hargaLembar String
totalLembar String
roi String
active Boolean @default(true)
countDown DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
author User? @relation(fields: [authorId], references: [id])
authorId String?
catatan String?
sisaLembar String
lembarTerbeli String? @default("0")
progress String? @default("0")
MasterPeriodeDeviden MasterPeriodeDeviden? @relation(fields: [masterPeriodeDevidenId], references: [id])
masterPeriodeDevidenId String?
MasterPembagianDeviden MasterPembagianDeviden? @relation(fields: [masterPembagianDevidenId], references: [id])
masterPembagianDevidenId String?
MasterPencarianInvestor MasterPencarianInvestor? @relation(fields: [masterPencarianInvestorId], references: [id])
masterPencarianInvestorId String?
ImageInvestasi Images? @relation(fields: [imagesId], references: [id])
imagesId String? @unique
MasterStatusInvestasi MasterStatusInvestasi? @relation(fields: [masterStatusInvestasiId], references: [id])
masterStatusInvestasiId String? @default("2")
ProspektusInvestasi ProspektusInvestasi?
BeritaInvestasi BeritaInvestasi[]
DokumenInvestasi DokumenInvestasi[]
TransaksiInvestasi TransaksiInvestasi[]
MasterProgresInvestasi MasterProgresInvestasi? @relation(fields: [masterProgresInvestasiId], references: [id])
masterProgresInvestasiId String?
}
model MasterPencarianInvestor {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
investasi Investasi[]
}
model MasterPeriodeDeviden {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
investasi Investasi[]
}
model MasterPembagianDeviden {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
investasi Investasi[]
}
model MasterStatusInvestasi {
id String @id @default(cuid())
name String
color String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
investasi Investasi[]
}
model ProspektusInvestasi {
id String @id @default(cuid())
url String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
investasi Investasi? @relation(fields: [investasiId], references: [id])
investasiId String? @unique
}
model DokumenInvestasi {
id String @id @default(cuid())
title String
url String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
investasi Investasi? @relation(fields: [investasiId], references: [id])
investasiId String?
}
model BeritaInvestasi {
id String @id @default(cuid())
title String
deskripsi String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ImageBerita Images? @relation(fields: [imagesId], references: [id])
imagesId String?
investasi Investasi @relation(fields: [investasiId], references: [id])
investasiId String
}
model MasterBank {
id String @id @default(cuid())
name String
norek String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model MasterProgresInvestasi {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Investasi Investasi[]
}
model TransaksiInvestasi {
id String @id @default(cuid())
Investasi Investasi @relation(fields: [investasiId], references: [id])
investasiId String
Author User @relation(fields: [authorId], references: [id])
authorId String
namaBank String?
nomorRekening String?
token String?
redirect_url String?
quantity String
price String
gross_amount String
merchant_name String
status_code String?
status_message String?
transaction_id String?
order_id String?
payment_type String?
transaction_time String?
transaction_status String?
fraud_status String?
pdf_url String?
finish_redirect_url String?
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
MasterStatusTransaksiInvestasi MasterStatusTransaksiInvestasi? @relation(fields: [masterStatusTransaksiInvestasiId], references: [id])
masterStatusTransaksiInvestasiId String? @default("1")
}
model MasterStatusTransaksiInvestasi {
id String @id @default(cuid())
name String
color String?
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
TransaksiInvestasi TransaksiInvestasi[]
}
/// ---------------------------------------- DONASI ----------------------------------------- //
model Donasi {
id String @id @default(cuid())
title String
target String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
publishTime DateTime?
catatan String?
progres String? @default("0")
terkumpul String? @default("0")
namaBank String?
rekening String?
akumulasiPencairan Int? @default(0)
totalPencairan Int? @default(0)
Author User? @relation(fields: [authorId], references: [id])
authorId String?
imageDonasi Images? @relation(fields: [imagesId], references: [id])
imagesId String? @unique
CeritaDonasi Donasi_Cerita?
DonasiMaster_Ketegori DonasiMaster_Kategori? @relation(fields: [donasiMaster_KategoriId], references: [id])
donasiMaster_KategoriId String?
DonasiMaster_Durasi DonasiMaster_Durasi? @relation(fields: [donasiMaster_DurasiId], references: [id])
donasiMaster_DurasiId String?
DonasiMaster_Status DonasiMaster_StatusDonasi? @relation(fields: [donasiMaster_StatusDonasiId], references: [id])
donasiMaster_StatusDonasiId String? @default("2")
Donasi_Invoice Donasi_Invoice[]
Donasi_Kabar Donasi_Kabar[]
Donasi_PencairanDana Donasi_PencairanDana[]
}
model Donasi_TemporaryCreate {
id String @id @default(cuid())
title String
target String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
imageDonasiTemporary Images? @relation(fields: [imagesId], references: [id])
imagesId String? @unique
kategori DonasiMaster_Kategori? @relation(fields: [donasiMaster_KategoriId], references: [id])
donasiMaster_KategoriId String?
durasi DonasiMaster_Durasi? @relation(fields: [donasiMaster_DurasiId], references: [id])
donasiMaster_DurasiId String?
}
model DonasiMaster_Kategori {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Donasi Donasi[]
Donasi_TemporaryCreate Donasi_TemporaryCreate[]
}
model DonasiMaster_Durasi {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Donasi Donasi[]
Donasi_TemporaryCreate Donasi_TemporaryCreate[]
}
model Donasi_Cerita {
id String @id @default(cuid())
pembukaan String
cerita String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
imageCeritaDonasi Images? @relation(fields: [imagesId], references: [id])
imagesId String? @unique
Donasi Donasi? @relation(fields: [donasiId], references: [id])
donasiId String? @unique
}
model DonasiMaster_StatusDonasi {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Donasi Donasi[]
}
model DonasiMaster_Bank {
id String @id @default(cuid())
name String
norek String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Donasi_Invoice Donasi_Invoice[]
}
model DonasiMaster_StatusInvoice {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Donasi_Invoice Donasi_Invoice[]
}
model Donasi_Invoice {
id String @id @default(cuid())
nominal String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Donasi Donasi? @relation(fields: [donasiId], references: [id])
donasiId String?
DonasiMaster_Bank DonasiMaster_Bank? @relation(fields: [donasiMaster_BankId], references: [id])
donasiMaster_BankId String?
DonasiMaster_StatusInvoice DonasiMaster_StatusInvoice? @relation(fields: [donasiMaster_StatusInvoiceId], references: [id])
donasiMaster_StatusInvoiceId String? @default("3")
Author User? @relation(fields: [authorId], references: [id])
authorId String?
Images Images? @relation(fields: [imagesId], references: [id])
imagesId String?
}
model Donasi_Kabar {
id String @id @default(cuid())
title String
deskripsi String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Donasi Donasi? @relation(fields: [donasiId], references: [id])
donasiId String?
ImagesKabar Images? @relation(fields: [imagesId], references: [id])
imagesId String?
Donasi_Notif Donasi_Notif[]
}
model Donasi_Notif {
id String @id @default(cuid())
isRead Boolean @default(false)
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
User User? @relation(fields: [userId], references: [id])
userId String?
Donasi_Kabar Donasi_Kabar? @relation(fields: [donasi_KabarId], references: [id])
donasi_KabarId String?
}
model Donasi_PencairanDana {
id String @id @default(cuid())
nominalCair Int
title String
deskripsi String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Donasi Donasi? @relation(fields: [donasiId], references: [id])
donasiId String?
Images Images? @relation(fields: [imagesId], references: [id])
imagesId String?
}
// ========================================= EVENT ========================================= //
model Event {
id String @id @default(cuid())
title String
lokasi String
tanggal DateTime
deskripsi String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
catatan String?
Author User? @relation(fields: [authorId], references: [id])
authorId String?
EventMaster_Status EventMaster_Status? @relation(fields: [eventMaster_StatusId], references: [id])
eventMaster_StatusId String? @default("2")
Event_Peserta Event_Peserta[]
EventMaster_TipeAcara EventMaster_TipeAcara? @relation(fields: [eventMaster_TipeAcaraId], references: [id])
eventMaster_TipeAcaraId Int?
}
model EventMaster_TipeAcara {
id Int @id @default(autoincrement())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Event Event[]
}
model EventMaster_Status {
id String @id @default(cuid())
name String
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Event Event[]
}
model Event_Peserta {
id String @id @default(cuid())
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Event Event? @relation(fields: [eventId], references: [id])
eventId String?
User User? @relation(fields: [userId], references: [id])
userId String?
}
// ========================================= VOTING ========================================= //
model Voting {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
deskripsi String
awalVote DateTime
akhirVote DateTime
catatan String?
Author User @relation(fields: [authorId], references: [id])
authorId String
Voting_Status Voting_Status? @relation(fields: [voting_StatusId], references: [id])
voting_StatusId String? @default("2")
Voting_DaftarNamaVote Voting_DaftarNamaVote[]
Voting_Kontributor Voting_Kontributor[]
}
model Voting_Status {
id String @id @default(cuid())
name String
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Voting Voting[]
}
model Voting_DaftarNamaVote {
id String @id @default(cuid())
value String
jumlah Int @default(0)
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Voting Voting? @relation(fields: [votingId], references: [id])
votingId String?
Voting_Kontributor Voting_Kontributor[]
}
model Voting_Kontributor {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Voting Voting? @relation(fields: [votingId], references: [id])
votingId String?
Author User? @relation(fields: [authorId], references: [id])
authorId String?
Voting_DaftarNamaVote Voting_DaftarNamaVote? @relation(fields: [voting_DaftarNamaVoteId], references: [id])
voting_DaftarNamaVoteId String?
}
// ========================================= JOB ========================================= //
model Job {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
isArsip Boolean @default(false)
catatan String?
title String
content String @db.Text
deskripsi String @db.Text
Images Images? @relation(fields: [imagesId], references: [id])
imagesId String?
Author User? @relation(fields: [authorId], references: [id])
authorId String?
MasterStatus MasterStatus? @relation(fields: [masterStatusId], references: [id])
masterStatusId String? @default("2")
}
// ========================================= FORUM ========================================= //
model ForumMaster_StatusPosting {
id Int @id @default(autoincrement())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
status String
Forum_Posting Forum_Posting[]
}
model Forum_Posting {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
publishAt DateTime?
diskusi String @db.Text
Forum_Komentar Forum_Komentar[]
Forum_ReportPosting Forum_ReportPosting[]
Author User? @relation(fields: [authorId], references: [id])
authorId String?
ForumMaster_StatusPosting ForumMaster_StatusPosting? @relation(fields: [forumMaster_StatusPostingId], references: [id])
forumMaster_StatusPostingId Int?
}
model Forum_Komentar {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
komentar String @db.Text
Forum_Posting Forum_Posting? @relation(fields: [forum_PostingId], references: [id])
forum_PostingId String?
Forum_ReportKomentar Forum_ReportKomentar[]
Author User? @relation(fields: [authorId], references: [id])
authorId String?
}
model ForumMaster_KategoriReport {
id Int @id @default(autoincrement())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
deskripsi String @db.Text
Forum_ReportPosting Forum_ReportPosting[]
Forum_ReportKomentar Forum_ReportKomentar[]
}
model Forum_ReportPosting {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deskripsi String? @db.Text
ForumMaster_KategoriReport ForumMaster_KategoriReport? @relation(fields: [forumMaster_KategoriReportId], references: [id])
forumMaster_KategoriReportId Int?
Forum_Posting Forum_Posting? @relation(fields: [forum_PostingId], references: [id])
forum_PostingId String?
User User? @relation(fields: [userId], references: [id])
userId String?
}
model Forum_ReportKomentar {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deskripsi String? @db.Text
ForumMaster_KategoriReport ForumMaster_KategoriReport? @relation(fields: [forumMaster_KategoriReportId], references: [id])
forumMaster_KategoriReportId Int?
Forum_Komentar Forum_Komentar? @relation(fields: [forum_KomentarId], references: [id])
forum_KomentarId String?
User User? @relation(fields: [userId], references: [id])
userId String?
}
// ========================================= PROJECT COLLABORATION ========================================= //
model ProjectCollaboration {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
catatan String?
title String
lokasi String
purpose String @db.Text
benefit String? @db.Text
ProjectCollaborationMaster_Industri ProjectCollaborationMaster_Industri? @relation(fields: [projectCollaborationMaster_IndustriId], references: [id])
projectCollaborationMaster_IndustriId Int?
Author User? @relation(fields: [userId], references: [id])
userId String?
ProjectCollaborationMaster_Status ProjectCollaborationMaster_Status? @relation(fields: [projectCollaborationMaster_StatusId], references: [id])
projectCollaborationMaster_StatusId Int? @default(1)
ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[]
}
model ProjectCollaborationMaster_Industri {
id Int @id @default(autoincrement())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
ProjectCollaboration ProjectCollaboration[]
}
model ProjectCollaborationMaster_Status {
id Int @id @default(autoincrement())
name String
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ProjectCollaboration ProjectCollaboration[]
}
model ProjectCollaboration_Partisipasi {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
User User? @relation(fields: [userId], references: [id])
userId String?
ProjectCollaboration ProjectCollaboration? @relation(fields: [projectCollaborationId], references: [id])
projectCollaborationId String?
ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat? @relation(fields: [projectCollaboration_RoomChatId], references: [id])
projectCollaboration_RoomChatId String?
}
model ProjectCollaboration_RoomChat {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Author User? @relation(fields: [userId], references: [id])
userId String?
ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[]
}