165 lines
5.7 KiB
SQL
165 lines
5.7 KiB
SQL
-- CreateTable
|
|
CREATE TABLE `user` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`name` TEXT NOT NULL,
|
|
`email` VARCHAR(191) NOT NULL,
|
|
`emailVerified` BOOLEAN NOT NULL DEFAULT false,
|
|
`image` TEXT NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updatedAt` DATETIME(3) NOT NULL,
|
|
|
|
UNIQUE INDEX `user_email_key`(`email`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `session` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`expiresAt` DATETIME(3) NOT NULL,
|
|
`token` VARCHAR(191) NOT NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updatedAt` DATETIME(3) NOT NULL,
|
|
`ipAddress` TEXT NULL,
|
|
`userAgent` TEXT NULL,
|
|
`userId` VARCHAR(191) NOT NULL,
|
|
|
|
INDEX `session_userId_idx`(`userId`(191)),
|
|
UNIQUE INDEX `session_token_key`(`token`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `account` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`accountId` TEXT NOT NULL,
|
|
`providerId` TEXT NOT NULL,
|
|
`userId` VARCHAR(191) NOT NULL,
|
|
`accessToken` TEXT NULL,
|
|
`refreshToken` TEXT NULL,
|
|
`idToken` TEXT NULL,
|
|
`accessTokenExpiresAt` DATETIME(3) NULL,
|
|
`refreshTokenExpiresAt` DATETIME(3) NULL,
|
|
`scope` TEXT NULL,
|
|
`password` TEXT NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updatedAt` DATETIME(3) NOT NULL,
|
|
|
|
INDEX `account_userId_idx`(`userId`(191)),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `verification` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`identifier` TEXT NOT NULL,
|
|
`value` TEXT NOT NULL,
|
|
`expiresAt` DATETIME(3) NOT NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updatedAt` DATETIME(3) NOT NULL,
|
|
|
|
INDEX `verification_identifier_idx`(`identifier`(191)),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Exercise` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(191) NOT NULL,
|
|
`muscleGroup` VARCHAR(191) NOT NULL,
|
|
`SFR` DECIMAL(65, 30) NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `MesoCycle` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(191) NOT NULL,
|
|
`totalWeeks` INTEGER NOT NULL,
|
|
`currentWeek` INTEGER NOT NULL,
|
|
`isAsync` BOOLEAN NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `MesoCycleDay` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`weekday` VARCHAR(191) NULL,
|
|
`orderIndex` INTEGER NOT NULL,
|
|
`mesoCycleId` INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `MesoCycleExercise` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`startingSets` INTEGER NOT NULL,
|
|
`orderIndex` INTEGER NOT NULL,
|
|
`mesoCycleDayId` INTEGER NOT NULL,
|
|
`exerciseId` INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `WorkoutSession` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`weekNumber` INTEGER NOT NULL,
|
|
`isDeload` BOOLEAN NOT NULL,
|
|
`completedAt` DATETIME(3) NULL,
|
|
`mesoCycleDayId` INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `ExerciseLog` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`sets` INTEGER NOT NULL,
|
|
`reps` INTEGER NOT NULL,
|
|
`weight` DECIMAL(65, 30) NOT NULL,
|
|
`workoutSessionId` INTEGER NOT NULL,
|
|
`mesoCycleExerciseId` INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `SessionFeedback` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`question` VARCHAR(191) NOT NULL,
|
|
`answer` VARCHAR(191) NOT NULL,
|
|
`exerciseLogId` INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `session` ADD CONSTRAINT `session_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `account` ADD CONSTRAINT `account_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `MesoCycleDay` ADD CONSTRAINT `MesoCycleDay_mesoCycleId_fkey` FOREIGN KEY (`mesoCycleId`) REFERENCES `MesoCycle`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `MesoCycleExercise` ADD CONSTRAINT `MesoCycleExercise_mesoCycleDayId_fkey` FOREIGN KEY (`mesoCycleDayId`) REFERENCES `MesoCycleDay`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `MesoCycleExercise` ADD CONSTRAINT `MesoCycleExercise_exerciseId_fkey` FOREIGN KEY (`exerciseId`) REFERENCES `Exercise`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `WorkoutSession` ADD CONSTRAINT `WorkoutSession_mesoCycleDayId_fkey` FOREIGN KEY (`mesoCycleDayId`) REFERENCES `MesoCycleDay`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `ExerciseLog` ADD CONSTRAINT `ExerciseLog_workoutSessionId_fkey` FOREIGN KEY (`workoutSessionId`) REFERENCES `WorkoutSession`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `ExerciseLog` ADD CONSTRAINT `ExerciseLog_mesoCycleExerciseId_fkey` FOREIGN KEY (`mesoCycleExerciseId`) REFERENCES `MesoCycleExercise`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `SessionFeedback` ADD CONSTRAINT `SessionFeedback_exerciseLogId_fkey` FOREIGN KEY (`exerciseLogId`) REFERENCES `ExerciseLog`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|