File size: 2,061 Bytes
35527e2
 
 
bccd229
35527e2
 
 
0f92957
d831612
 
 
35527e2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b10734b
 
3b7869d
 
bccd229
fcc9f70
 
 
 
 
 
 
 
 
 
 
 
35527e2
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
export interface Activity {
    date: Date;
    activityType?: string;
    title?: string;
    distance?: number; // in kilometers
    duration?: number; // in minutes
    trainingStressScore?: number;
    calories?: number;
    averageHR?: number;
    maxHR?: number;
    totalAscent?: number; // in meters
}

export interface ProcessedData {
    activities: Activity[];
    dates: string[];
    distances: (number | null)[];
    durations: (number | null)[];
    tss: (number | null)[];
}

export interface MetricACWRData {
    dates: string[];
    values: (number | null)[]; // Daily sum values
    average7d: (number | null)[]; // 7-day rolling average
    average28d: (number | null)[]; // 28-day rolling average
    acwr: (number | null)[]; // ACWR based on this metric
    targetTomorrowValue?: number | null; // Value needed tomorrow to reach target ACWR of 1.3
    targetACWR?: number; // The target ACWR value used for calculation
    restTomorrowACWR?: number | null; // What ACWR would be with a rest day tomorrow
    todayValue?: number | null; // Today's value for reference
    activitiesByDate?: Map<string, Activity[]>; // Activities grouped by date
    // Future predictions (filtered - only significant activities)
    futureDates?: string[]; // Dates for future predictions (filtered)
    futureValues?: (number | null)[]; // Optimal activity values for future days (filtered)
    futureAverage7d?: (number | null)[]; // Predicted 7-day rolling average (filtered)
    futureAverage28d?: (number | null)[]; // Predicted 28-day rolling average (filtered)
    futureAcwr?: (number | null)[]; // Predicted ACWR values (filtered)
    // Complete future predictions (including rest days for ACWR curve continuity)
    allFutureDates?: string[]; // All future dates including rest days
    allFutureValues?: number[]; // All future values including low values
    allFutureAverage7d?: number[]; // All 7-day averages
    allFutureAverage28d?: number[]; // All 28-day averages
    allFutureAcwr?: number[]; // All ACWR values for curve continuity
}