Files
HKSingleParty/03_source/cms_backend/prisma/schema.prisma

1296 lines
33 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URI")
}
//
model Helloworld {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
hello String @default("")
}
model Account {
id String @id @default(cuid())
userId String @map("user_id")
type String
provider String
providerAccountId String @map("provider_account_id")
refresh_token String?
access_token String?
expires_at Int?
token_type String?
scope String?
id_token String?
session_state String?
oauth_token_secret String?
oauth_token String?
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
PartyUser PartyUser? @relation(fields: [partyUserId], references: [id])
partyUserId String?
@@unique([provider, providerAccountId])
}
model Session {
id String @id @default(cuid())
sessionToken String @unique @map("session_token")
userId String @map("user_id")
expires DateTime
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
PartyUser PartyUser? @relation(fields: [partyUserId], references: [id])
partyUserId String?
}
model User {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String?
username String? @unique
email String @unique
emailVerified DateTime?
password String?
image String?
bucketImage String?
admin Boolean @default(false)
accounts Account[]
sessions Session[]
info Json?
}
model VerificationToken {
id Int @id @default(autoincrement())
identifier String
token String @unique
expires DateTime
@@unique([identifier, token])
}
model Student {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
email String @unique
metadata Json @default("{}")
}
// ----------------------------------------------------------------
// frontend/src/_mock/_user.ts
// ----------------------------------------------------------------
// REQ0044/near_by_page
model Member {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
email String @unique
name String?
Event Event[]
eventId Int?
age Int?
rank String @default("Beginner")
verified String @default("NOT_VERIFIED")
hobbies String[] @default([])
distance String @default("10km")
location_area String @default("Sai Kung")
greetings String @default("Hi, I am")
gender String @default("not disclosed")
tall_cm Int?
weight_kg Int?
occupation String @default("not disclosed")
language String[] @default([])
education String[] @default([])
self_introduction String @default("")
music String[] @default([])
pets String[] @default([])
character String[] @default([])
//
avatar String @default("")
sex String @default("")
}
model Order {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
title String?
order_time DateTime @default(now())
last_payment_date DateTime?
status String @default("pending")
Event Event[]
}
// REQ0042/event-detail
model Event {
id Int @id @default(autoincrement())
eventDate DateTime
title String
joinMembers Json[] // Assuming Member model exists
price Float
currency String
duration_m Int
ageBottom Int
ageTop Int
location String
avatar String // Assuming avatar is stored as a file path or URL
Order Order[]
Member Member? @relation(fields: [memberId], references: [id])
memberId Int?
}
// cms_backend
// mapped to IProductReview
model ProductReview {
id Int @id @default(autoincrement())
name String
rating Float
comment String
helpful Float
avatarUrl String
postedAt DateTime @default(now()) // Assuming IDateValue maps to DateTime
isPurchased Boolean
attachments String[]
ProductItem ProductItem[]
//
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
// mapped to IProductFilters
model ProductFilters {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
rating String
gender String[]
category String
colors String[]
priceRange Int[]
}
// mapped to IProductTableFilters
model ProductTableFilters {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
stock String[]
publish String[]
}
// mapped to IProductItem
model ProductItem {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
available Int
category String
code String
colors String[]
coverUrl String
description String
gender String[]
images String[]
inventoryType String
name String
newLabel Json
price Float
priceSale Float?
publish String
quantity Int
ratings Json[]
reviews ProductReview[]
saleLabel Json
sizes String[]
sku String
subDescription String
tags String[]
taxes Float
totalRatings Float
totalReviews Int
totalSold Int
}
model MailSender {
// Define fields for MailSender here
// Example:
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
email String
name String
avatarUrl String?
//
// SendMail Mail[] @relation("mail_from")
// ReceiveMail Mail[] @relation("mail_to")
}
model MailLabel {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
type String
name String
color String
unreadCount Int?
}
model MailAttachment {
// Define fields for MailAttachment here
// Example:
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
filename String
url String
size Int
// Mail Mail? @relation(fields: [mailId], references: [id])
// mailId Int?
}
model Mail {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
folder String
labelIds String[]
subject String
isUnread Boolean
isImportant Boolean
message String
isStarred Boolean
//
// from MailSender @relation("mail_from", fields: [mailFromId], references: [id])
// mailFromId Int
//
// to MailSender[] @relation("mail_to")
//
// attachments MailAttachment[]
}
// model OrderHistory {
// id Int @id @default(autoincrement())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// //
// orderTime DateTime @default(now())
// paymentTime DateTime
// deliveryTime DateTime
// completionTime DateTime
// timeline Json[]
// OrderItem OrderItem? @relation(fields: [orderItemId], references: [id])
// orderItemId Int?
// }
// model OrderShippingAddress {
// id Int @id @default(autoincrement())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// //
// fullAddress String
// phoneNumber String
// OrderItem OrderItem? @relation(fields: [orderItemId], references: [id])
// orderItemId Int?
// }
// model OrderPayment {
// id Int @id @default(autoincrement())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// //
// cardType String
// cardNumber String
// OrderItem OrderItem? @relation(fields: [orderItemId], references: [id])
// orderItemId Int?
// }
// model OrderDelivery {
// id Int @id @default(autoincrement())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// //
// shipBy String
// speedy String
// trackingNumber String
// OrderItem OrderItem? @relation(fields: [orderItemId], references: [id])
// orderItemId Int?
// }
// model OrderCustomer {
// id Int @id @default(autoincrement())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// //
// name String
// email String
// avatarUrl String
// ipAddress String
// OrderItem OrderItem? @relation(fields: [orderItemId], references: [id])
// orderItemId Int?
// }
// model OrderProductItem {
// id Int @id @default(autoincrement())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// //
// sku String
// name String
// price Float
// coverUrl String
// quantity Float
// OrderItem OrderItem? @relation(fields: [orderItemId], references: [id])
// orderItemId Int?
// }
model OrderItem {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
taxes Float
status String
shipping Float
discount Float
subtotal Float
orderNumber String
totalAmount Float
totalQuantity Float
history Json
payment Json
customer Json
delivery Json
items Json[]
shippingAddress Json
// OrderProductItem OrderProductItem[]
// OrderHistory OrderHistory[]
// OrderDelivery OrderDelivery[]
// OrderCustomer OrderCustomer[]
// OrderPayment OrderPayment[]
// OrderShippingAddress OrderShippingAddress[]
}
// src/types/tour.ts
model TourGuide {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
avatarUrl String
phoneNumber String
TourItem TourItem? @relation(fields: [tourItemId], references: [id])
tourItemId Int?
TourFilters TourFilters? @relation(fields: [tourFiltersId], references: [id])
tourFiltersId Int?
}
model TourBooker {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
guests Float
avatarUrl String
TourItem TourItem? @relation(fields: [tourItemId], references: [id])
tourItemId Int?
}
model TourItem {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
price Float
tags String[]
content String
publish String
images String[]
durations String
priceSale Float
totalViews Float
services String[]
destination String
ratingNumber Float
bookers TourBooker[]
tourGuides TourGuide[]
available Json
}
model TourFilters {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
services String[]
destination String[]
tourGuides TourGuide[]
endDate DateTime
startDate DateTime
}
// src/types/user.ts
model UserProfileCover {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
role String
coverUrl String
avatarUrl String
}
model UserProfile {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
role String
quote String
email String
school String
country String
company String
totalFollowers Float
totalFollowing Float
// socialLinks: ISocialLink
}
model UserProfileFollower {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
country String
avatarUrl String
}
model UserProfileGallery {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
title String
imageUrl String
postedAt DateTime
}
model UserProfileFriend {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
role String
avatarUrl String
}
model UserProfilePost {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
media String
message String
personLikes Json[]
comments Json[]
}
model UserCard {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
role String
coverUrl String
avatarUrl String
totalPosts Float
totalFollowers Float
totalFollowing Float
}
// `UserItem` obsoleted, use `UserMeta` instead
model UserItem {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
city String
role String
email String
state String
status String
address String
country String
zipCode String
company String
avatarUrl String
phoneNumber String
isVerified Boolean
//
username String
password String
//
isAdmin Boolean @default(false)
}
model UserMeta {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
city String
role String
email String
state String
status String
address String
country String
zipCode String
company String
avatarUrl String
phoneNumber String
isVerified Boolean
//
username String
password String
//
isAdmin Boolean @default(false)
}
model UserAccountBillingHistory {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
price Float
invoiceNumber String
}
// src/types/blog.ts
model PostFilters {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
publish String
}
model PostHero {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
title String
coverUrl String
author Json?
}
model PostComment {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
message String
avatarUrl String
postedAt DateTime
users Json[]
replyComment Json[]
PostItem PostItem? @relation(fields: [postItemId], references: [id])
postItemId Int?
}
model PostItem {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
title String
tags String[]
publish String
content String
coverUrl String
metaTitle String
totalViews Float
totalShares Float
description String
totalComments Float
totalFavorites Float
metaKeywords String[]
metaDescription String
comments PostComment[]
author Json
favoritePerson Json[]
}
// src/types/calendar.ts
model CalendarFilters {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
colors String[]
startDate DateTime
endDate DateTime
}
model CalendarRange {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
start String?
end String?
}
model CalendarEvent {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
color String
title String
allDay Boolean
description String
end String
start String
}
// src/types/chat.ts
model ChatAttachment {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
size Int
type String
path String
preview String
ChatMessage ChatMessage? @relation(fields: [chatMessageId], references: [id])
chatMessageId Int?
}
model ChatMessage {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
body String
senderId String
contentType String
attachments ChatAttachment[]
ChatConversation ChatConversation? @relation(fields: [chatConversationId], references: [id])
chatConversationId Int?
}
model ChatParticipant {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
role String
email String
address String
avatarUrl String
phoneNumber String
lastActivity DateTime
status String
ChatConversation ChatConversation? @relation(fields: [chatConversationId], references: [id])
chatConversationId Int?
}
model ChatConversation {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
type String
unreadCount Int
messages ChatMessage[]
participants ChatParticipant[]
}
model ChatConversations {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
allIds String[]
byId Json
}
// src/types/checkout.ts
model CheckoutItem {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
size String
price Float
coverUrl String
colors String[]
quantity Float
available Float
subtotal Float
CheckoutState CheckoutState? @relation(fields: [checkoutStateId], references: [id])
checkoutStateId Int?
}
model CheckoutDeliveryOption {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
label String
value Float
description String
}
model CheckoutPaymentOption {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
value String
label String
description String
}
model CheckoutCardOption {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
value String
label String
}
model CheckoutState {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
total Float
subtotal Float
discount Float
shipping Float
totalItems Float
items CheckoutItem[]
billing AddressItem[]
}
// common.ts
model PaymentCard {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
cardType String
primary Boolean?
cardNumber String
}
model AddressItem {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
company String?
primary Boolean?
fullAddress String
phoneNumber String?
addressType String?
CheckoutState CheckoutState[]
checkoutStateId Int?
// InvoiceTo Invoice[] @relation("invoice_to")
// InvoiceFrom Invoice[] @relation("invoice_from")
}
model SocialLink {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
twitter String
facebook String
linkedin String
instagram String
}
// file.ts
model FileFilters {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
type String[]
endDate DateTime
startDate DateTime
}
model FileShared {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
email String
avatarUrl String
permission String
FolderManager FolderManager? @relation(fields: [folderManagerId], references: [id])
folderManagerId Int?
FileManager FileManager? @relation(fields: [fileManagerId], references: [id])
fileManagerId Int?
}
model FolderManager {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
url String
name String
size Int
type String
tags String[]
totalFiles Int?
isFavorited Boolean
modifiedAt DateTime
shared FileShared[]
}
model FileManager {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
url String
name String
size Int
type String
tags String[]
isFavorited Boolean
modifiedAt DateTime
shared FileShared[]
}
model FileStore {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
modifiedAt DateTime @updatedAt
//
name String
path String
preview String
size Float
type String
//
content Bytes @db.ByteA
}
// invoice.ts
model InvoiceTableFilters {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
status String
service String[]
endDate DateTime
startDate DateTime
}
model InvoiceItem {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
taxes Float
status String
discount Float
shipping Float
subtotal Float
totalAmount Float
items Json[]
invoiceNumber String
invoiceFrom Json
invoiceTo Json
sent Float
dueDate DateTime @default(now())
createDate DateTime @default(now())
}
// model Invoice {
// id Int @id @default(autoincrement())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// //
// sent Int
// taxes Float
// status String
// subtotal Float
// discount Float
// shipping Float
// totalAmount Float
// dueDate DateTime
// invoiceNumber String
// items InvoiceItem[]
// createDate DateTime
// invoiceTo AddressItem[] @relation("invoice_to")
// invoiceFrom AddressItem[] @relation("invoice_from")
// }
// job.ts
model JobFilters {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
roles String[]
experience String
benefits String[]
locations String[]
employmentTypes String[]
}
model JobCandidate {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
role String
avatarUrl String
JobItem JobItem[]
}
model JobCompany {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
logo String
phoneNumber String
fullAddress String
JobItem JobItem[]
}
model JobSalary {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
type String
price Float
negotiable Boolean
JobItem JobItem[]
}
model JobItem {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
role String
title String
content String
publish String
skills String[]
totalViews Float
experience String
benefits String[]
locations String[]
employmentTypes String[]
workingSchedule String[]
expiredDate DateTime? @db.Timestamp(3)
salary JobSalary[]
company JobCompany[]
candidates JobCandidate[]
}
// kanban.ts
model KanbanColumn {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
Kanban Kanban? @relation(fields: [kanbanId], references: [id])
kanbanId Int?
}
model KanbanComment {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
message String
avatarUrl String
messageType String
KanbanTask KanbanTask? @relation(fields: [kanbanTaskId], references: [id])
kanbanTaskId Int?
}
model KanbanAssignee {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
role String
email String
status String
address String
avatarUrl String
phoneNumber String
lastActivity DateTime
KanbanTask KanbanTask? @relation(fields: [kanbanTaskId], references: [id])
kanbanTaskId Int?
}
model Reporter {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
avatarUrl String
KanbanTask KanbanTask? @relation(fields: [kanbanTaskId], references: [id])
kanbanTaskId Int?
}
model KanbanTask {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
status String
priority String
labels String[]
description String?
attachments String[]
comments KanbanComment[]
assignee KanbanAssignee[]
due DateTime[]
reporter Reporter[]
Kanban Kanban? @relation(fields: [kanbanId], references: [id])
kanbanId Int?
}
model Kanban {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
columns KanbanColumn[]
tasks KanbanTask[]
}
// mapped to IEventReview
model EventReview {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
name String
rating Float
comment String
helpful Float
avatarUrl String
postedAt DateTime @default(now()) // Assuming IDateValue maps to DateTime
isPurchased Boolean
attachments String[]
//
EventItem EventItem? @relation(fields: [eventItemId], references: [id])
eventItemId String?
}
// NOTE: need to consider with Event
// mapped to IEventItem
// a.k.a. PartyEvent party-event
model EventItem {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
available Int @default(99)
category String
code String @default("")
colors String[]
coverUrl String
description String
gender String[]
images String[]
inventoryType String @default("")
name String @default("")
newLabel Json @default("{}")
price Float @default(999.9)
priceSale Float? @default(111.1)
publish String @default("")
quantity Int @default(99)
ratings Json[]
saleLabel Json @default("{}")
sizes String[] @default([""])
sku String @default("")
subDescription String @default("")
tags String[] @default([""])
taxes Float @default(5.0)
totalRatings Float @default(5.0)
totalReviews Int @default(10)
totalSold Int @default(10)
//
ageBottom Float @default(-1)
ageTop Float @default(-1)
avatar String[] @default([""])
currency String @default("HKD")
capacity Int @default(10)
duration_m Float @default(180)
endDate String? @default("")
eventDate DateTime @default(now())
isFeatured Boolean @default(false)
joinMembers Json[] @default([])
location String @default("HK")
organizer String @default("")
registrationDeadline String @default("")
requirements String @default("")
schedule String @default("")
speakers String[] @default([])
sponsors String[] @default([])
startDate String? @default("")
status String? @default("")
title String @default("")
//
reviews EventReview[]
}
model AppLog {
id String @id @default(uuid())
timestamp DateTime @default(now())
//
level Int? @default(1)
message String? @default("")
//
module String?
userId String?
metadata Json?
@@index([timestamp])
@@index([level])
@@index([module])
}
model AccessLog {
id String @id @default(uuid())
timestamp DateTime @default(now())
//
userId String? @default("")
message String? @default("")
//
metadata Json?
@@index([timestamp])
@@index([userId])
}
model PartyOrderItem {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
taxes Float
status String
shipping Float
discount Float
subtotal Float
orderNumber String
totalAmount Float
totalQuantity Float
history Json
payment Json
customer Json
delivery Json
items Json[]
shippingAddress Json
// OrderProductItem OrderProductItem[]
// OrderHistory OrderHistory[]
// OrderDelivery OrderDelivery[]
// OrderCustomer OrderCustomer[]
// OrderPayment OrderPayment[]
// OrderShippingAddress OrderShippingAddress[]
}
model PartyUser {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
//
username String? @unique
password String?
//
name String?
email String @unique
emailVerified DateTime?
avatarUrl String?
bucketImage String?
admin Boolean @default(false)
accounts Account[]
sessions Session[]
info Json?
phoneNumber String @default("")
company String @default("")
status String @default("pending")
role String @default("")
isVerified Boolean @default(false)
//
country String @default("")
state String @default("")
city String @default("")
address String @default("")
zipCode String @default("")
//
rank String @default("user")
sex String @default("")
}