From 5045247e3eb201637bffd9369d4e6a6a7c4a834b Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 7 Jan 2023 20:49:54 -0800 Subject: [PATCH] Added Types and Interfaces to ProgressAD's ORM (#11) --- backend/models/dixon.js | 36 ----------- backend/models/user.js | 99 ------------------------------- backend/models/user.ts | 1 + backend/models/workout.js | 122 -------------------------------------- backend/models/workout.ts | 1 + 5 files changed, 2 insertions(+), 257 deletions(-) delete mode 100644 backend/models/dixon.js delete mode 100644 backend/models/user.js delete mode 100644 backend/models/workout.js diff --git a/backend/models/dixon.js b/backend/models/dixon.js deleted file mode 100644 index eab1fb4..0000000 --- a/backend/models/dixon.js +++ /dev/null @@ -1,36 +0,0 @@ -import mongoose from "mongoose"; - -const dixonSchema = new mongoose.Schema({ - machine_name: { - type: String, - required: false, - unique: false - }, - machine_id: { - // uuid - type: String, - required: false, - unique: false - }, - machine_image: { - // cloudinary - type: String, - required: false, - unique: false - }, - machine_type: { - type: String, - enum: ["Cardio", "Strength", "Other", "None"], - default: "None", - required: false - }, - machine_status: { - // 1,true = available, 0,false = in use - type: Boolean, - required: false, - default: true - } -}); - -const Dixon = mongoose.model("Dixon", dixonSchema); -export { Dixon }; diff --git a/backend/models/user.js b/backend/models/user.js deleted file mode 100644 index 551770d..0000000 --- a/backend/models/user.js +++ /dev/null @@ -1,99 +0,0 @@ -import mongoose from "mongoose"; -import dotenv from "dotenv"; -import { Workout } from "./workout.js"; - -dotenv.config(); - -const userSchema = new mongoose.Schema({ - username: { - type: String, - required: true, - minlength: 3, - maxlength: 200, - unique: false - }, - pin: { - type: String, - required: true, - minlength: 4, - maxlength: 99999, - unique: false - }, - initLogin: { - type: Boolean, - default: true - }, - weight: { - type: Number, - default: 0, - validate: { - validator: Number.isInteger, - message: "{VALUE} is not an integer value" - }, - required: [true, "Weight is required"], - unique: false - }, - height: { - type: Number, - default: 0, - validate: { - validator: Number.isInteger, - message: "{VALUE} is not an integer value" - }, - required: [true, "Height is required"], - unique: false - }, - BMI: { - type: Number, - default: 0, - required: [true, "BMI is required"], - unique: false - }, - bloodType: { - type: String, - enum: ["O+", "O-", "A+", "A-", "B+", "B-", "AB+", "AB-", ""], - required: false, - unique: false, - uppercase: true - }, - loginDateTime: { - type: Date, - required: false, - minlength: 3, - maxlength: 200, - unique: false - }, - logoutDateTime: { - type: Date, - required: false, - minlength: 3, - maxlength: 200, - unique: false - }, - savedWorkouts: [Workout.schema], - workouts: [Workout.schema], - firstName: { - type: String, - required: false - }, - lastName: { - type: String, - required: false - }, - age: { - type: Number, - default: 0, - min: 0, - max: 150, - validate: { - validator: Number.isInteger, - message: "{VALUE} is not an integer value" - }, - required: false, - unique: false - } -}); - -const User = mongoose.model("User", userSchema); - -export { User }; diff --git a/backend/models/user.ts b/backend/models/user.ts index 80c3af9..11f31d0 100644 --- a/backend/models/user.ts +++ b/backend/models/user.ts @@ -82,6 +82,7 @@ const userSchema = new mongoose.Schema({ unique: false, uppercase: true }, + // May be used for future features // loginDateTime: { // type: Date, // required: false, diff --git a/backend/models/workout.js b/backend/models/workout.js deleted file mode 100644 index bee93db..0000000 --- a/backend/models/workout.js +++ /dev/null @@ -1,122 +0,0 @@ -import mongoose from "mongoose"; -import dotenv from "dotenv"; - -dotenv.config(); - -const exerciseSchema = new mongoose.Schema({ - exercise_name: { - type: String, - required: false - } -}); - -const machineSchema = new mongoose.Schema({ - username: { - type: String, - required: true, - unqiue: false - }, - machine_name: { - type: String, - required: false - }, - machine_type: { - type: String, - enum: ["Cardio", "Strength", "Other", "None"], - default: "None", - required: false - }, - machine_status: { - // 1,true = available, 0,false = in use - type: Boolean, - required: false - }, - distance: { - // in miles - type: Number, - required: false - }, - timeSpent: { - // in minutes - type: Number, - required: false - }, - sets: [ - { - reps: { - type: Number, - required: false, - default: 0 - }, - weight: { - type: Number, - required: false, - default: 0 - } - } - ], - machine_id: { - type: String, - required: false, - unique: false - } -}); - -const workoutSchema = new mongoose.Schema({ - username: { - type: String, - required: true, - unqiue: false - }, - workOutType: { - enum: ["Cardio", "Strength", "Other", "None"], - type: String, - required: false, - unique: false, - default: "None" - }, - workOutIntensity: { - enum: ["Low", "Medium", "High", "None"], - type: String, - required: false, - unique: false, - default: "None" - }, - machines: [machineSchema], - workoutStartTimestamp: { - type: Date, - required: false, - unique: false - }, - workoutEndTimestamp: { - type: Date, - required: false, - unique: false - }, - effortLevel: { - type: Number, - required: false, - min: 0, - max: 10, - unique: false - }, - tirednessLevel: { - type: Number, - required: false, - min: 0, - max: 10, - unique: false - }, - workoutDuration: { - // in minutes - type: Number, - required: false, - unique: false - }, - workoutExercises: [exerciseSchema] -}); - -const Workout = mongoose.model("Workout", workoutSchema); -const Machine = mongoose.model("Machine", machineSchema); -const Exercise = mongoose.model("Exercise", exerciseSchema); -export { Workout, Machine, Exercise }; diff --git a/backend/models/workout.ts b/backend/models/workout.ts index 68d38c4..4da193c 100644 --- a/backend/models/workout.ts +++ b/backend/models/workout.ts @@ -39,6 +39,7 @@ type MachineType = mongoose.Document & { } type WorkoutType = mongoose.Document & { + _id: string; username: string; workOutType: EWorkoutType; workOutIntensity: string;