diff --git a/src/app/calendar/calendar.component.html b/src/app/calendar/calendar.component.html index cf80197..8986a78 100644 --- a/src/app/calendar/calendar.component.html +++ b/src/app/calendar/calendar.component.html @@ -11,16 +11,16 @@ Sunday Total Milage - @for (week of examplePlan.workouts; track $index) { + @for (planWeek of examplePlan.planDetials; track $index) { -
Week {{$index + 1}}
+
Week {{planWeek.week}}
- @for (day of week; track $index) { + @for (workout of planWeek.workouts; track $index) { -
{{day.type}}
-
{{day.totalDistance == 0 ? '' : day.totalDistance + ' miles'}}
-
{{day.description}}
+
{{workout.type}}
+
{{workout.totalDistance == 0 ? '' : workout.totalDistance + ' miles'}}
+
{{workout.description}}
} 43 diff --git a/src/app/models/plan.model.ts b/src/app/models/plan.model.ts index 4d9b3e0..b083185 100644 --- a/src/app/models/plan.model.ts +++ b/src/app/models/plan.model.ts @@ -6,5 +6,10 @@ export interface Plan { startDate: Date, endDate: Date, numWeeks: number, - workouts: Workout[][] + planDetials: Week[] +} + +export interface Week { + week: number, + workouts: Workout[] } \ No newline at end of file diff --git a/src/app/models/workout.model.ts b/src/app/models/workout.model.ts index d8aa871..91c1a2d 100644 --- a/src/app/models/workout.model.ts +++ b/src/app/models/workout.model.ts @@ -1,5 +1,4 @@ export interface Workout { - week: number day: number, type: WorkoutType, totalDistance: number, diff --git a/src/app/testData/examplePlan.ts b/src/app/testData/examplePlan.ts index 94de96c..fc45010 100644 --- a/src/app/testData/examplePlan.ts +++ b/src/app/testData/examplePlan.ts @@ -7,924 +7,852 @@ export const examplePlan: Plan = { startDate: new Date('2026-03-23'), endDate: new Date('2026-03-23'), numWeeks: 18, - workouts: [ - [ - { - week: 1, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 1, - day: 1, - type: WorkoutType.Threshold, - totalDistance: 8, - description: '20-25 min LT' - }, - { - week: 1, - day: 2, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 1, - day: 3, - type: WorkoutType.GeneralAerobic, - totalDistance: 8, - description: '' - }, - { - week: 1, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 1, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 1, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 11, - description: '' - } - ], - [ - { - week: 2, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 2, - day: 1, - type: WorkoutType.GeneralAerobic, - totalDistance: 8, - description: '6 x 10s Hills, 8 x 100m strides' - }, - { - week: 2, - day: 2, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 2, - day: 3, - type: WorkoutType.GeneralAerobic, - totalDistance: 9, - description: '' - }, - { - week: 2, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 2, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 2, - day: 6, - type: WorkoutType.MarathonPaceLongRun, - totalDistance: 12, - description: '8 mi @ marathon pace' - } - ], - [ - { - week: 3, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 3, - day: 1, - type: WorkoutType.GeneralAerobic, - totalDistance: 9, - description: '' - }, - { - week: 3, - day: 2, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 3, - day: 3, - type: WorkoutType.Threshold, - totalDistance: 8, - description: '25-30 min LT' - }, - { - week: 3, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 3, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 3, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 14, - description: '' - } - ], - [ - { - week: 4, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 4, - day: 1, - type: WorkoutType.GeneralAerobic, - totalDistance: 8, - description: '6 x 10s Hills, 8 x 100m strides' - }, - { - week: 4, - day: 2, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 4, - day: 3, - type: WorkoutType.GeneralAerobic, - totalDistance: 9, - description: '' - }, - { - week: 4, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 4, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 4, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 15, - description: '' - } - ], - [ - { - week: 5, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 5, - day: 1, - type: WorkoutType.Threshold, - totalDistance: 9, - description: '30-35 min LT' - }, - { - week: 5, - day: 2, - type: WorkoutType.Recovery, - totalDistance: 5, - description: '' - }, - { - week: 5, - day: 3, - type: WorkoutType.GeneralAerobic, - totalDistance: 9, - description: '' - }, - { - week: 5, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 5, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 5, - day: 6, - type: WorkoutType.MarathonPaceLongRun, - totalDistance: 15, - description: '10 mi @ marathon pace' - } - ], - [ - { - week: 6, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 6, - day: 1, - type: WorkoutType.GeneralAerobic, - totalDistance: 7, - description: '10 x 100m strides' - }, - { - week: 6, - day: 2, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 6, - day: 3, - type: WorkoutType.GeneralAerobic, - totalDistance: 7, - description: '' - }, - { - week: 6, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 6, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 6, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 11, - description: '' - } - ], - [ - { - week: 7, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 7, - day: 1, - type: WorkoutType.Threshold, - totalDistance: 9, - description: '30-35 min LT' - }, - { - week: 7, - day: 2, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 7, - day: 3, - type: WorkoutType.MediumLongRun, - totalDistance: 11, - description: '' - }, - { - week: 7, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 7, - day: 5, - type: WorkoutType.GeneralAerobic, - totalDistance: 7, - description: '6 x 10s Hills, 8 x 100m strides' - }, - { - week: 7, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 17, - description: '' - } - ], - [ - { - week: 8, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 8, - day: 1, - type: WorkoutType.Recovery, - totalDistance: 6, - description: '6x100 strides' - }, - { - week: 8, - day: 2, - type: WorkoutType.MediumLongRun, - totalDistance: 12, - description: '' - }, - { - week: 8, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 8, - day: 4, - type: WorkoutType.Threshold, - totalDistance: 10, - description: '35-40 min LT' - }, - { - week: 8, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 8, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 19, - description: '' - } - ], - [ - { - week: 9, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 9, - day: 1, - type: WorkoutType.Recovery, - totalDistance: 6, - description: '' - }, - { - week: 9, - day: 2, - type: WorkoutType.MediumLongRun, - totalDistance: 13, - description: '' - }, - { - week: 9, - day: 3, - type: WorkoutType.Recovery, - totalDistance: 6, - description: '' - }, - { - week: 9, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 9, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 5, - description: '6x100 strides' - }, - { - week: 9, - day: 6, - type: WorkoutType.MarathonPaceLongRun, - totalDistance: 16, - description: '12 mi @ marathon pace' - } - ], - [ - { - week: 10, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 10, - day: 1, - type: WorkoutType.GeneralAerobic, - totalDistance: 8, - description: '' - }, - { - week: 10, - day: 2, - type: WorkoutType.VO2Max, - totalDistance: 8, - description: '6 x 600m @ 5K pace' - }, - { - week: 10, - day: 3, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 10, - day: 4, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 10, - day: 5, - type: WorkoutType.GeneralAerobic, - totalDistance: 7, - description: '6 x 10s Hills, 8 x 100m strides' - }, - { - week: 10, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 13, - description: '' - } - ], - [ - { - week: 11, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 11, - day: 1, - type: WorkoutType.Recovery, - totalDistance: 6, - description: '6x100 strides' - }, - { - week: 11, - day: 2, - type: WorkoutType.Threshold, - totalDistance: 11, - description: '35-45 min LT' - }, - { - week: 11, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 11, - day: 4, - type: WorkoutType.MediumLongRun, - totalDistance: 12, - description: '' - }, - { - week: 11, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 11, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 19, - description: '' - } - ], - [ - { - week: 12, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 12, - day: 1, - type: WorkoutType.GeneralAerobic, - totalDistance: 10, - description: '' - }, - { - week: 12, - day: 2, - type: WorkoutType.VO2Max, - totalDistance: 8, - description: '5 x 600m @ 5K pace' - }, - { - week: 12, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 12, - day: 4, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '6x100 strides' - }, - { - week: 12, - day: 5, - type: WorkoutType.VO2Max, - totalDistance: 10, - description: '8K-15K Tune Up' - }, - { - week: 12, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 16, - description: '' - } - ], - [ - { - week: 13, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 13, - day: 1, - type: WorkoutType.Recovery, - totalDistance: 6, - description: '' - }, - { - week: 13, - day: 2, - type: WorkoutType.VO2Max, - totalDistance: 9, - description: '5 x 1000m @ 5K pace' - }, - { - week: 13, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 13, - day: 4, - type: WorkoutType.MediumLongRun, - totalDistance: 11, - description: '' - }, - { - week: 13, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 5, - description: '' - }, - { - week: 13, - day: 6, - type: WorkoutType.MarathonPaceLongRun, - totalDistance: 17, - description: '14 mi @ marathon pace' - } - ], - [ - { - week: 14, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 14, - day: 1, - type: WorkoutType.GeneralAerobic, - totalDistance: 10, - description: '' - }, - { - week: 14, - day: 2, - type: WorkoutType.VO2Max, - totalDistance: 8, - description: '5 x 600m @ 5K pace' - }, - { - week: 14, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 14, - day: 4, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '6x100 strides' - }, - { - week: 14, - day: 5, - type: WorkoutType.VO2Max, - totalDistance: 10, - description: '8K-15K Tune Up' - }, - { - week: 14, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 16, - description: '' - } - ], - [ - { - week: 15, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 15, - day: 1, - type: WorkoutType.Recovery, - totalDistance: 6, - description: '' - }, - { - week: 15, - day: 2, - type: WorkoutType.VO2Max, - totalDistance: 9, - description: '5 x 1000m @ 5K pace' - }, - { - week: 15, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 15, - day: 4, - type: WorkoutType.MediumLongRun, - totalDistance: 11, - description: '' - }, - { - week: 15, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '' - }, - { - week: 15, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 19, - description: '' - } - ], - [ - { - week: 16, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 16, - day: 1, - type: WorkoutType.GeneralAerobic, - totalDistance: 7, - description: '6 x 10s Hills, 10 x 100m strides' - }, - { - week: 16, - day: 2, - type: WorkoutType.Recovery, - totalDistance: 5, - description: '' - }, - { - week: 16, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 16, - day: 4, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '4-5 mi w/ 6x100 strides' - }, - { - week: 16, - day: 5, - type: WorkoutType.VO2Max, - totalDistance: 9, - description: '8K-10K Tune Up' - }, - { - week: 16, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 16, - description: '' - } - ], - [ - { - week: 17, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 17, - day: 1, - type: WorkoutType.Recovery, - totalDistance: 6, - description: '8x100 strides' - }, - { - week: 17, - day: 2, - type: WorkoutType.VO2Max, - totalDistance: 8, - description: '5 x 1000m @ 5K pace' - }, - { - week: 17, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 17, - day: 4, - type: WorkoutType.Recovery, - totalDistance: 5, - description: '6x100 strides' - }, - { - week: 17, - day: 5, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 17, - day: 6, - type: WorkoutType.LongRun, - totalDistance: 12, - description: '' - } - ], - [ - { - week: 18, - day: 0, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 18, - day: 1, - type: WorkoutType.Recovery, - totalDistance: 5, - description: '8x100 strides' - }, - { - week: 18, - day: 2, - type: WorkoutType.DressRehersal, - totalDistance: 5, - description: '2 mi @ marathon pace' - }, - { - week: 18, - day: 3, - type: WorkoutType.Rest, - totalDistance: 0, - description: '' - }, - { - week: 18, - day: 4, - type: WorkoutType.Recovery, - totalDistance: 4, - description: '6x100 strides' - }, - { - week: 18, - day: 5, - type: WorkoutType.Recovery, - totalDistance: 2, - description: '' - }, - { - week: 18, - day: 6, - type: WorkoutType.RaceDay, - totalDistance: 26.2, - description: '' - } - ], + planDetials: [ + { + week: 1, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Threshold, + totalDistance: 8, + description: '20-25 min LT' + }, + { + day: 2, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 3, + type: WorkoutType.GeneralAerobic, + totalDistance: 8, + description: '' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 11, + description: '' + } + ] + }, + { + week: 2, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.GeneralAerobic, + totalDistance: 8, + description: '6 x 10s Hills, 8 x 100m strides' + }, + { + day: 2, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 3, + type: WorkoutType.GeneralAerobic, + totalDistance: 9, + description: '' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.MarathonPaceLongRun, + totalDistance: 12, + description: '8 mi @ marathon pace' + } + ] + }, + { + week: 3, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.GeneralAerobic, + totalDistance: 9, + description: '' + }, + { + day: 2, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 3, + type: WorkoutType.Threshold, + totalDistance: 8, + description: '25-30 min LT' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 14, + description: '' + } + ] + }, + { + week: 4, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.GeneralAerobic, + totalDistance: 8, + description: '6 x 10s Hills, 8 x 100m strides' + }, + { + day: 2, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 3, + type: WorkoutType.GeneralAerobic, + totalDistance: 9, + description: '' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 15, + description: '' + } + ] + }, + { + week: 5, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Threshold, + totalDistance: 9, + description: '30-35 min LT' + }, + { + day: 2, + type: WorkoutType.Recovery, + totalDistance: 5, + description: '' + }, + { + day: 3, + type: WorkoutType.GeneralAerobic, + totalDistance: 9, + description: '' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.MarathonPaceLongRun, + totalDistance: 15, + description: '10 mi @ marathon pace' + } + ] + }, + { + week: 6, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.GeneralAerobic, + totalDistance: 7, + description: '10 x 100m strides' + }, + { + day: 2, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 3, + type: WorkoutType.GeneralAerobic, + totalDistance: 7, + description: '' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 11, + description: '' + } + ] + }, + { + week: 7, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Threshold, + totalDistance: 9, + description: '30-35 min LT' + }, + { + day: 2, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 3, + type: WorkoutType.MediumLongRun, + totalDistance: 11, + description: '' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.GeneralAerobic, + totalDistance: 7, + description: '6 x 10s Hills, 8 x 100m strides' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 17, + description: '' + } + ] + }, + { + week: 8, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Recovery, + totalDistance: 6, + description: '6x100 strides' + }, + { + day: 2, + type: WorkoutType.MediumLongRun, + totalDistance: 12, + description: '' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.Threshold, + totalDistance: 10, + description: '35-40 min LT' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 19, + description: '' + } + ] + }, + { + week: 9, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Recovery, + totalDistance: 6, + description: '' + }, + { + day: 2, + type: WorkoutType.MediumLongRun, + totalDistance: 13, + description: '' + }, + { + day: 3, + type: WorkoutType.Recovery, + totalDistance: 6, + description: '' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 5, + description: '6x100 strides' + }, + { + day: 6, + type: WorkoutType.MarathonPaceLongRun, + totalDistance: 16, + description: '12 mi @ marathon pace' + } + ] + }, + { + week: 10, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.GeneralAerobic, + totalDistance: 8, + description: '' + }, + { + day: 2, + type: WorkoutType.VO2Max, + totalDistance: 8, + description: '6 x 600m @ 5K pace' + }, + { + day: 3, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 4, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 5, + type: WorkoutType.GeneralAerobic, + totalDistance: 7, + description: '6 x 10s Hills, 8 x 100m strides' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 13, + description: '' + } + ] + }, + { + week: 11, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Recovery, + totalDistance: 6, + description: '6x100 strides' + }, + { + day: 2, + type: WorkoutType.Threshold, + totalDistance: 11, + description: '35-45 min LT' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.MediumLongRun, + totalDistance: 12, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 19, + description: '' + } + ] + }, + { + week: 12, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.GeneralAerobic, + totalDistance: 10, + description: '' + }, + { + day: 2, + type: WorkoutType.VO2Max, + totalDistance: 8, + description: '5 x 600m @ 5K pace' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '6x100 strides' + }, + { + day: 5, + type: WorkoutType.VO2Max, + totalDistance: 10, + description: '8K-15K Tune Up' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 16, + description: '' + } + ] + }, + { + week: 13, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Recovery, + totalDistance: 6, + description: '' + }, + { + day: 2, + type: WorkoutType.VO2Max, + totalDistance: 9, + description: '5 x 1000m @ 5K pace' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.MediumLongRun, + totalDistance: 11, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 5, + description: '' + }, + { + day: 6, + type: WorkoutType.MarathonPaceLongRun, + totalDistance: 17, + description: '14 mi @ marathon pace' + } + ] + }, + { + week: 14, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.GeneralAerobic, + totalDistance: 10, + description: '' + }, + { + day: 2, + type: WorkoutType.VO2Max, + totalDistance: 8, + description: '5 x 600m @ 5K pace' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '6x100 strides' + }, + { + day: 5, + type: WorkoutType.VO2Max, + totalDistance: 10, + description: '8K-15K Tune Up' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 16, + description: '' + } + ] + }, + { + week: 15, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Recovery, + totalDistance: 6, + description: '' + }, + { + day: 2, + type: WorkoutType.VO2Max, + totalDistance: 9, + description: '5 x 1000m @ 5K pace' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.MediumLongRun, + totalDistance: 11, + description: '' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 19, + description: '' + } + ] + }, + { + week: 16, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.GeneralAerobic, + totalDistance: 7, + description: '6 x 10s Hills, 10 x 100m strides' + }, + { + day: 2, + type: WorkoutType.Recovery, + totalDistance: 5, + description: '' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '4-5 mi w/ 6x100 strides' + }, + { + day: 5, + type: WorkoutType.VO2Max, + totalDistance: 9, + description: '8K-10K Tune Up' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 16, + description: '' + } + ] + }, + { + week: 17, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Recovery, + totalDistance: 6, + description: '8x100 strides' + }, + { + day: 2, + type: WorkoutType.VO2Max, + totalDistance: 8, + description: '5 x 1000m @ 5K pace' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.Recovery, + totalDistance: 5, + description: '6x100 strides' + }, + { + day: 5, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 6, + type: WorkoutType.LongRun, + totalDistance: 12, + description: '' + } + ] + }, + { + week: 18, + workouts: [ + { + day: 0, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 1, + type: WorkoutType.Recovery, + totalDistance: 5, + description: '8x100 strides' + }, + { + day: 2, + type: WorkoutType.DressRehersal, + totalDistance: 5, + description: '2 mi @ marathon pace' + }, + { + day: 3, + type: WorkoutType.Rest, + totalDistance: 0, + description: '' + }, + { + day: 4, + type: WorkoutType.Recovery, + totalDistance: 4, + description: '6x100 strides' + }, + { + day: 5, + type: WorkoutType.Recovery, + totalDistance: 2, + description: '' + }, + { + day: 6, + type: WorkoutType.RaceDay, + totalDistance: 26.2, + description: '' + } + ] + } ] -}; \ No newline at end of file +};