moahmedwafy commited on
Commit
359c042
·
1 Parent(s): 8a3b286

feat: users seeder

Browse files
src/common/models/user.model.ts CHANGED
@@ -26,11 +26,11 @@ export interface IUser {
26
  fitness_goal: FitnessGoal;
27
  target_weight: number;
28
  workout_frequency: number;
29
- preferred_days: [PreferredDay];
30
  workout_place: WorkoutPlace;
31
- preferred_equipment: [PreferredEquipment];
32
  };
33
- injuries: [Injury];
34
  }
35
 
36
  const userSchema = new Schema({
 
26
  fitness_goal: FitnessGoal;
27
  target_weight: number;
28
  workout_frequency: number;
29
+ preferred_days: PreferredDay[];
30
  workout_place: WorkoutPlace;
31
+ preferred_equipment: PreferredEquipment[];
32
  };
33
+ injuries: Injury[];
34
  }
35
 
36
  const userSchema = new Schema({
src/seeder/seeders/admins.seeder.ts CHANGED
@@ -5,11 +5,11 @@ import { seederWrapper } from "seeder/helpers/seeder-wrapper";
5
  export default seederWrapper(Admin, async () => {
6
  // create super admin
7
  await Admin.create({
 
8
  email: "[email protected]",
9
  password: "super",
10
- role: Role.SUPER_ADMIN,
11
  gender: "M1 Abrams Tank",
12
- name: "Super Admin",
13
- dob: new Date(),
14
  });
15
  });
 
5
  export default seederWrapper(Admin, async () => {
6
  // create super admin
7
  await Admin.create({
8
+ name: "Super Admin",
9
  email: "[email protected]",
10
  password: "super",
11
+ image: `https://placehold.co/300x400`,
12
  gender: "M1 Abrams Tank",
13
+ role: Role.SUPER_ADMIN,
 
14
  });
15
  });
src/seeder/seeders/users.seeder.ts ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { AuthenticatableType } from "@common/enums/authenticatable-type.enum";
2
+ import { FitnessGoal } from "@common/enums/fitness-goal.enum";
3
+ import { FitnessLevel } from "@common/enums/fitness-level.enum";
4
+ import { Injury } from "@common/enums/injury.enum";
5
+ import { PreferredDay } from "@common/enums/preferred-day.enum";
6
+ import { PreferredEquipment } from "@common/enums/preferred-equipment.enum";
7
+ import { WorkoutPlace } from "@common/enums/workout-place.enum";
8
+ import { IUser, User } from "@common/models/user.model";
9
+ import { seederWrapper } from "seeder/helpers/seeder-wrapper";
10
+
11
+ export default seederWrapper(User, async () => {
12
+ // 10 users
13
+ await Promise.all(Array.from({ length: 10 }, (_, i) => i).map(async function (i) {
14
+ const o: IUser = {
15
+ name: `User ${i}`,
16
+ email: `user-${i}@app.com`,
17
+ password: "password",
18
+ image: `https://placehold.co/300x400`,
19
+ gender: (i as number % 2 === 0) ?
20
+ 'male' :
21
+ 'female',
22
+ height: 170,
23
+ weight: 70,
24
+ fitness_level: [FitnessLevel.BEGINNER, FitnessLevel.INTERMEDIATE, FitnessLevel.ADVANCED][i % 3],
25
+ preferences: {
26
+ fitness_goal: [FitnessGoal.LOSE_WEIGHT, FitnessGoal.GAIN_MUSCLE, FitnessGoal.GET_FITTER][i % 3],
27
+ target_weight: 60,
28
+ workout_frequency: 3,
29
+ preferred_days: [PreferredDay.MONDAY, PreferredDay.TUESDAY, PreferredDay.WEDNESDAY],
30
+ workout_place: [WorkoutPlace.GYM, WorkoutPlace.HOME, WorkoutPlace.BOTH][i % 3],
31
+ preferred_equipment: [[PreferredEquipment.BARBELLS, PreferredEquipment.DUMBBELLS, PreferredEquipment.GYM_MACHINES, PreferredEquipment.RESISTANCE_BAND, PreferredEquipment.BODYWEIGHT][i % 5]],
32
+ },
33
+ injuries: [[Injury.ARMS, Injury.BACK, Injury.NECK, Injury.SHOULDERS, Injury.KNEES][i % 5]],
34
+ dob: new Date(1990, 1, 1),
35
+ role: AuthenticatableType.USER,
36
+ };
37
+ await User.create(o);
38
+ }))
39
+ })