76 lines
2.5 KiB
Plaintext
76 lines
2.5 KiB
Plaintext
generator client {
|
|
provider = "prisma-client"
|
|
output = "../app/generated/client"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
|
|
model users {
|
|
id String @id @default(cuid()) // We will override this with our custom generator in logic, but cuid as fallback
|
|
name String @db.VarChar
|
|
role String @db.VarChar // COACH, CLIENT
|
|
coach_id String?
|
|
created_at DateTime? @default(now()) @db.Timestamp(6)
|
|
|
|
// Relations
|
|
coach users? @relation("CoachClients", fields: [coach_id], references: [id])
|
|
clients users[] @relation("CoachClients")
|
|
|
|
created_menus training_menus[] @relation("CreatedMenus")
|
|
assigned_menus training_menus[] @relation("AssignedMenus")
|
|
recaps user_recaps[]
|
|
activity_logs activity_logs[]
|
|
|
|
@@index([id], map: "ix_users_id")
|
|
@@index([coach_id], map: "ix_users_coach_id")
|
|
}
|
|
|
|
model activity_logs {
|
|
id Int @id @default(autoincrement())
|
|
timestamp DateTime? @db.Timestamp(6)
|
|
status String? @db.VarChar
|
|
confidence String? @db.VarChar
|
|
details Json?
|
|
user_id String?
|
|
|
|
user users? @relation(fields: [user_id], references: [id])
|
|
|
|
@@index([id], map: "ix_activity_logs_id")
|
|
@@index([user_id], map: "ix_activity_logs_user_id")
|
|
}
|
|
|
|
model training_menus {
|
|
id Int @id @default(autoincrement())
|
|
name String? @db.VarChar
|
|
exercises Json?
|
|
created_at DateTime? @db.Timestamp(6)
|
|
author_id String?
|
|
client_id String?
|
|
|
|
author users? @relation("CreatedMenus", fields: [author_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
assigned_client users? @relation("AssignedMenus", fields: [client_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
user_recaps user_recaps[]
|
|
|
|
@@index([id], map: "ix_training_menus_id")
|
|
@@index([name], map: "ix_training_menus_name")
|
|
@@index([author_id], map: "ix_training_menus_author_id")
|
|
}
|
|
|
|
model user_recaps {
|
|
id Int @id @default(autoincrement())
|
|
menu_id Int?
|
|
user_id String?
|
|
summary Json?
|
|
completed_at DateTime? @db.Timestamp(6)
|
|
|
|
training_menus training_menus? @relation(fields: [menu_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
user users? @relation(fields: [user_id], references: [id])
|
|
|
|
@@index([id], map: "ix_user_recaps_id")
|
|
@@index([user_id], map: "ix_user_recaps_user_id")
|
|
}
|