first commit
This commit is contained in:
155
prisma/schema.prisma
Normal file
155
prisma/schema.prisma
Normal file
@@ -0,0 +1,155 @@
|
||||
// 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"
|
||||
output = "../generated/prisma"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "mysql"
|
||||
}
|
||||
model User {
|
||||
id String @id
|
||||
name String @db.Text
|
||||
email String
|
||||
emailVerified Boolean @default(false)
|
||||
image String? @db.Text
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
sessions Session[]
|
||||
accounts Account[]
|
||||
|
||||
@@unique([email])
|
||||
@@map("user")
|
||||
}
|
||||
|
||||
model Session {
|
||||
id String @id
|
||||
expiresAt DateTime
|
||||
token String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
ipAddress String? @db.Text
|
||||
userAgent String? @db.Text
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([token])
|
||||
@@index([userId(length: 191)])
|
||||
@@map("session")
|
||||
}
|
||||
|
||||
model Account {
|
||||
id String @id
|
||||
accountId String @db.Text
|
||||
providerId String @db.Text
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
accessToken String? @db.Text
|
||||
refreshToken String? @db.Text
|
||||
idToken String? @db.Text
|
||||
accessTokenExpiresAt DateTime?
|
||||
refreshTokenExpiresAt DateTime?
|
||||
scope String? @db.Text
|
||||
password String? @db.Text
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@index([userId(length: 191)])
|
||||
@@map("account")
|
||||
}
|
||||
|
||||
model Verification {
|
||||
id String @id
|
||||
identifier String @db.Text
|
||||
value String @db.Text
|
||||
expiresAt DateTime
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@index([identifier(length: 191)])
|
||||
@@map("verification")
|
||||
}
|
||||
|
||||
model Exercise {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
muscleGroup String
|
||||
SFR Decimal
|
||||
|
||||
mesoCycleExercises MesoCycleExercise[]
|
||||
}
|
||||
|
||||
model MesoCycle {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
totalWeeks Int
|
||||
currentWeek Int
|
||||
isAsync Boolean
|
||||
//user User @relation(fields: [userId], references: [id])
|
||||
//userId Int // for
|
||||
mesoCycleDays MesoCycleDay[]
|
||||
}
|
||||
|
||||
model MesoCycleDay {
|
||||
id Int @id @default(autoincrement())
|
||||
weekday String? // If async === NULL
|
||||
orderIndex Int
|
||||
mesoCycle MesoCycle @relation(fields: [mesoCycleId], references: [id])
|
||||
mesoCycleId Int
|
||||
|
||||
mesoCycleExercises MesoCycleExercise[]
|
||||
workOutSessions WorkoutSession[]
|
||||
}
|
||||
|
||||
model MesoCycleExercise {
|
||||
id Int @id @default(autoincrement())
|
||||
startingSets Int
|
||||
orderIndex Int
|
||||
|
||||
mesoCycleDay MesoCycleDay @relation(fields: [mesoCycleDayId], references: [id])
|
||||
mesoCycleDayId Int
|
||||
|
||||
exercise Exercise @relation(fields: [exerciseId], references: [id])
|
||||
exerciseId Int
|
||||
exerciseLogs ExerciseLog[]
|
||||
}
|
||||
|
||||
model WorkoutSession {
|
||||
id Int @id @default(autoincrement())
|
||||
weekNumber Int
|
||||
isDeload Boolean
|
||||
completedAt DateTime? // Null until finished
|
||||
mesoCycleDay MesoCycleDay @relation(fields: [mesoCycleDayId], references: [id])
|
||||
mesoCycleDayId Int
|
||||
//user User @relation(fields: [userId], references: [id])
|
||||
//userId Int
|
||||
|
||||
exerciseLogs ExerciseLog[]
|
||||
}
|
||||
|
||||
model ExerciseLog {
|
||||
id Int @id @default(autoincrement())
|
||||
sets Int
|
||||
reps Int
|
||||
weight Decimal
|
||||
workoutSession WorkoutSession @relation(fields: [workoutSessionId], references: [id])
|
||||
workoutSessionId Int
|
||||
|
||||
mesoCycleExercise MesoCycleExercise @relation(fields: [mesoCycleExerciseId], references: [id])
|
||||
mesoCycleExerciseId Int
|
||||
|
||||
sessionFeedbacks SessionFeedback[]
|
||||
}
|
||||
|
||||
model SessionFeedback {
|
||||
id Int @id @default(autoincrement())
|
||||
question String
|
||||
answer String
|
||||
|
||||
exerciseLog ExerciseLog @relation(fields: [exerciseLogId], references: [id])
|
||||
exerciseLogId Int
|
||||
}
|
||||
Reference in New Issue
Block a user