61 lines
1.7 KiB
Plaintext
Executable File
61 lines
1.7 KiB
Plaintext
Executable File
generator dartClient {
|
|
provider = "dart run orm"
|
|
output = "../lib/infrastructure/persistence/db"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
// User Model
|
|
model UserDbo {
|
|
id String @id @default(uuid())
|
|
name String
|
|
email String @unique
|
|
password String
|
|
projects ProjectDbo[] // Beziehung zu Projekten
|
|
timeEntries TimeEntryDbo[] // Beziehung zu Zeiteinträgen
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
// Project Model
|
|
model ProjectDbo {
|
|
id String @id @default(uuid())
|
|
name String
|
|
description String?
|
|
clientId String?
|
|
tasks ProjectTaskDbo[] // Beziehung zu Aufgaben
|
|
timeEntries TimeEntryDbo[] // Beziehung zu Zeiteinträgen
|
|
user UserDbo @relation(fields: [userId], references: [id])
|
|
userId String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
// TimeEntry Model
|
|
model TimeEntryDbo {
|
|
id String @id @default(uuid())
|
|
startTime DateTime
|
|
endTime DateTime?
|
|
description String?
|
|
user UserDbo @relation(fields: [userId], references: [id])
|
|
userId String
|
|
project ProjectDbo @relation(fields: [projectId], references: [id])
|
|
projectId String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
// Task Model (optional)
|
|
model ProjectTaskDbo {
|
|
id String @id @default(uuid())
|
|
name String
|
|
description String?
|
|
project ProjectDbo @relation(fields: [projectId], references: [id])
|
|
projectId String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|