// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
relationMode = "prisma"
}
generator client {
provider = "prisma-client-js"
}
model User {
id String @id @default(cuid())
userId String @unique
firstName String
lastName String
email String @unique
emailVerified DateTime?
hash String
salt String
age String
weight String
height String
gender String
stripeCustomerId String? @unique @map(name: "stripe_customer_id")
isSubscribed Boolean @default(false) @map(name: "is_subscribed")
interval String?
isAdmin Boolean @default(false) @map(name: "is_admin")
verificationToken EmailVerificationToken?
session Session?
@@map(name: "users")
}
model EmailVerificationToken {
id Int @id @default(autoincrement())
expiry DateTime
token String
email String @unique
user User @relation(fields: [email], references: [email])
}
model Session {
id String @id @default(cuid())
session_token String @unique
userId String @unique
expires DateTime
user User @relation(fields: [userId], references: [userId], onDelete: Cascade)
@@index([userId])
@@map(name: "sessions")
}
model Trainer {
id String @id @default(cuid())
type String
firstName String
lastName String
bio String
subtitle String
image String
frontPage Boolean @default(false) @map(name: "front_page")
@@map(name: "trainers")
}
model Program {
id String @id @default(cuid())
name String
description String
category String
goal String
level String
image String
duration String
exercises ProgramExercise[]
}
model Exercise {
id String @id @default(cuid())
name String
description String
category String
level String
image String
video String
programs ProgramExercise[]
@@index([name])
}
model ProgramExercise {
id String @id @default(cuid())
position Int
programId String
exerciseId String
reps String
sets String
rest String
program Program @relation(fields: [programId], references: [id])
exercise Exercise @relation(fields: [exerciseId], references: [id])
@@unique([programId, exerciseId])
@@index([exerciseId, programId])
}