File size: 2,108 Bytes
d491754
b7f0477
da50ce9
b7f0477
 
 
 
 
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
 
da50ce9
eb78df6
b7f0477
 
da50ce9
b7f0477
 
 
 
eb78df6
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
 
da50ce9
eb78df6
 
b7f0477
da50ce9
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
 
 
da50ce9
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 Days {
  @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: {} })
  exercises: any;
}

class TemplateWeeks {
  @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: [Days] })
  @Transform(
    ({ value }) => serialize(value, Days)
  )
  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: [TemplateWeeks] })
  @Transform(
    ({ value }) => serialize(value, TemplateWeeks)
  )
  template_weeks: any;

}