2026-06-25 00:19:26 +05:30

62 lines
1.8 KiB
Plaintext

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// Get a free hosted Postgres database in seconds: `npx create-db`
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
}
model User {
id String @id @default(uuid())
username String @unique
passwordHash String
name String
phone String @unique
email String @unique
gender String
age Int
driveFolderId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
folders Folder[]
files FileAsset[]
}
model Folder {
id String @id @default(uuid())
name String
driveFolderId String @unique
scopeKey String? @unique
userId String
parentId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
parent Folder? @relation("FolderTree", fields: [parentId], references: [id], onDelete: Cascade)
children Folder[] @relation("FolderTree")
files FileAsset[]
@@unique([userId, parentId, name])
@@index([userId, parentId])
}
model FileAsset {
id String @id @default(uuid())
originalName String
driveFileId String @unique
mimeType String
sizeBytes BigInt
userId String
folderId String?
createdAt DateTime @default(now())
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
folder Folder? @relation(fields: [folderId], references: [id], onDelete: SetNull)
@@index([userId, folderId, createdAt])
}