Spaces:
Running
Running
| import { ExerciseType } from "@common/enums/exercise-type.enum"; | |
| import { Equipment } from "@common/models/equipment.model"; | |
| import { Exercise, IExercise } from "@common/models/exercise.model"; | |
| import { Muscle } from "@common/models/muscle.model"; | |
| import { dbStore } from "seeder/helpers/db-store"; | |
| import { IExerciseCSV } from "seeder/helpers/load-exercises-dataset"; | |
| import { seederWrapper } from "seeder/helpers/seeder-wrapper"; | |
| export default seederWrapper(Exercise, async () => { | |
| console.log('preparing exercises data... (this may take a while)'); | |
| let randomDuration = 30 + Math.floor(Math.random() * 60); | |
| const data = await Promise.all(dbStore.excerisesDataset.map(async function (e: IExerciseCSV) { | |
| return { | |
| name: e.name, | |
| category: e.bodyPart, | |
| exerciseType: e.type, | |
| ...( | |
| e.type === ExerciseType.WEIGHT && | |
| { | |
| reps: 10 + Math.floor(Math.random() * 10), | |
| sets: e.sets, | |
| duration: 0, | |
| } | |
| || | |
| { | |
| duration: randomDuration, | |
| } | |
| ), | |
| expectedDurationRange: (e.type === ExerciseType.WEIGHT && { | |
| min: 10 + Math.floor(Math.random() * 10), | |
| max: 30 + Math.floor(Math.random() * 30), | |
| } || | |
| { | |
| min: randomDuration, | |
| max: randomDuration, | |
| }), | |
| ...( | |
| e.instructions === "" && | |
| { | |
| instructions: "Do this exercise", | |
| } | |
| || | |
| { | |
| instructions: e.instructions, | |
| } | |
| ), | |
| ...( | |
| e.benefits === "" && | |
| { | |
| benefits: "You will get stronger", | |
| } | |
| || | |
| { | |
| benefits: e.benefits, | |
| } | |
| ), | |
| targetMuscles: { | |
| primary: (await Muscle.findOne({ name: e.target }).exec())._id, | |
| secondary: (await Muscle.findOne({ name: e.target }).exec())._id, | |
| }, | |
| equipments: [(await Equipment.findOne({ name: e.equipment }).exec())._id], | |
| coverImage: e.gif_url, | |
| media: { | |
| type: 'image', | |
| url: e.gif_url, | |
| }, | |
| isDeleted: false, | |
| } satisfies IExercise; | |
| })) | |
| console.log('inserting exercises...'); | |
| await Exercise.insertMany(data); | |
| }) | |