Code maintainability fixes

This commit is contained in:
AG
2025-12-06 11:32:40 +02:00
parent a13ef9f479
commit 4106f3b783
23 changed files with 1775 additions and 796 deletions

Binary file not shown.

View File

@@ -0,0 +1,29 @@
-- CreateTable
CREATE TABLE "PlanExercise" (
"id" TEXT NOT NULL PRIMARY KEY,
"planId" TEXT NOT NULL,
"exerciseId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"isWeighted" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "PlanExercise_planId_fkey" FOREIGN KEY ("planId") REFERENCES "WorkoutPlan" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT "PlanExercise_exerciseId_fkey" FOREIGN KEY ("exerciseId") REFERENCES "Exercise" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
);
-- RedefineTables
PRAGMA defer_foreign_keys=ON;
PRAGMA foreign_keys=OFF;
CREATE TABLE "new_WorkoutPlan" (
"id" TEXT NOT NULL PRIMARY KEY,
"userId" TEXT NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT,
"exercises" TEXT,
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL,
CONSTRAINT "WorkoutPlan_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
INSERT INTO "new_WorkoutPlan" ("createdAt", "description", "exercises", "id", "name", "updatedAt", "userId") SELECT "createdAt", "description", "exercises", "id", "name", "updatedAt", "userId" FROM "WorkoutPlan";
DROP TABLE "WorkoutPlan";
ALTER TABLE "new_WorkoutPlan" RENAME TO "WorkoutPlan";
PRAGMA foreign_keys=ON;
PRAGMA defer_foreign_keys=OFF;

View File

@@ -7,7 +7,6 @@ generator client {
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model User {
@@ -60,6 +59,7 @@ model Exercise {
isUnilateral Boolean @default(false)
sets WorkoutSet[]
planExercises PlanExercise[]
}
model WorkoutSession {
@@ -102,8 +102,19 @@ model WorkoutPlan {
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
name String
description String?
exercises String // JSON string of exercise IDs
exercises String? // JSON string of exercise IDs (Deprecated, to be removed)
planExercises PlanExercise[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model PlanExercise {
id String @id @default(uuid())
planId String
plan WorkoutPlan @relation(fields: [planId], references: [id], onDelete: Cascade)
exerciseId String
exercise Exercise @relation(fields: [exerciseId], references: [id])
order Int
isWeighted Boolean @default(false)
}