File size: 2,158 Bytes
d491754
b7f0477
da50ce9
b7f0477
 
 
ce1ade1
b7f0477
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
 
da50ce9
eb78df6
b7f0477
 
339fa48
b7f0477
 
 
ce1ade1
eb78df6
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
b7f0477
ce1ade1
b7f0477
ce1ade1
b7f0477
 
 
d491754
 
 
da50ce9
d491754
 
 
da50ce9
d491754
 
eb78df6
da50ce9
eb78df6
 
b7f0477
da50ce9
b7f0477
 
86f4808
da50ce9
eb78df6
86f4808
b7f0477
da50ce9
b7f0477
 
eb78df6
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
 
ce1ade1
b7f0477
ce1ade1
b7f0477
eb78df6
b7f0477
d491754
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import { Expose, Transform } from "class-transformer";
import { serialize } from "@helpers/serialize";
import { SwaggerResponseProperty } from "@lib/decorators/swagger-response-property.decorator";



class WorkoutDays {
  @Expose()
  @SwaggerResponseProperty({ type: "number" })
  day_number: number;

  @Expose()
  @SwaggerResponseProperty({ type: "number" })
  total_number_exercises: number;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  day_type: string;

  @Expose({ name: "exercises" })
  @SwaggerResponseProperty({ type: ["string"] })
  exercises: any;
}

class WorkoutTemplateWeeks {
  @Expose()
  @SwaggerResponseProperty({ type: "number" })
  week_number: number;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  week_name: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  week_description: string;

  @Expose({ name: "days" })
  @SwaggerResponseProperty({ type: [WorkoutDays] })
  @Transform(
    ({ value }) => serialize(value, WorkoutDays)
  )
  days: any;
}

export class WorkoutSerialization {
  @Expose({ name: "_id" })
  @SwaggerResponseProperty({ type: "string" })
  id: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  name: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  description: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  type: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  image: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  created_by: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  fitness_level: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  fitness_goal: string;

  @Expose()
  @SwaggerResponseProperty({ type: "string" })
  place: any;

  @Expose()
  @SwaggerResponseProperty({ type: "number" })
  min_per_day: number;

  @Expose()
  @SwaggerResponseProperty({ type: "number" })
  total_number_days: number;

  @Expose({ name: "template_weeks" })
  @SwaggerResponseProperty({ type: [WorkoutTemplateWeeks] })
  @Transform(
    ({ value }) => serialize(value, WorkoutTemplateWeeks)
  )
  template_weeks: any;

}