feat(cloud-page) - setup1
This commit is contained in:
@@ -31,6 +31,8 @@ model User {
|
||||
updatedPayments Payment[] @relation("PaymentUpdatedBy")
|
||||
backups DatabaseBackup[]
|
||||
notifications Notification[]
|
||||
cloudFolders CloudFolder[]
|
||||
cloudFiles CloudFile[]
|
||||
}
|
||||
|
||||
model Patient {
|
||||
@@ -310,3 +312,50 @@ enum NotificationTypes {
|
||||
PAYMENT
|
||||
ETC
|
||||
}
|
||||
|
||||
model CloudFolder {
|
||||
id Int @id @default(autoincrement())
|
||||
userId Int
|
||||
name String
|
||||
parentId Int?
|
||||
parent CloudFolder? @relation("FolderChildren", fields: [parentId], references: [id], onDelete: Cascade)
|
||||
children CloudFolder[] @relation("FolderChildren")
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
files CloudFile[]
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
@@unique([userId, parentId, name]) // prevents sibling folder name duplicates
|
||||
@@index([parentId])
|
||||
}
|
||||
|
||||
model CloudFile {
|
||||
id Int @id @default(autoincrement())
|
||||
userId Int
|
||||
name String
|
||||
mimeType String?
|
||||
fileSize BigInt @db.BigInt
|
||||
folderId Int? // optional: null => root
|
||||
isComplete Boolean @default(false) // upload completed?
|
||||
totalChunks Int? // optional: expected number of chunks
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
folder CloudFolder? @relation(fields: [folderId], references: [id], onDelete: SetNull)
|
||||
|
||||
chunks CloudFileChunk[]
|
||||
|
||||
@@index([folderId])
|
||||
}
|
||||
|
||||
model CloudFileChunk {
|
||||
id Int @id @default(autoincrement())
|
||||
fileId Int
|
||||
seq Int
|
||||
data Bytes
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
file CloudFile @relation(fields: [fileId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([fileId, seq])
|
||||
@@index([fileId, seq])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user