Spaces:
Sleeping
Sleeping
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: [
|
30 |
workout_place: WorkoutPlace;
|
31 |
-
preferred_equipment: [
|
32 |
};
|
33 |
-
injuries: [
|
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 |
-
|
11 |
gender: "M1 Abrams Tank",
|
12 |
-
|
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 |
+
})
|