File size: 1,565 Bytes
35527e2
 
 
bccd229
35527e2
 
 
0f92957
d831612
 
 
35527e2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b10734b
 
3b7869d
 
bccd229
3b6e4a8
 
 
 
 
 
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
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 (next 7 days)
    futureDates?: string[]; // Dates for future predictions
    futureValues?: (number | null)[]; // Optimal activity values for future days
    futureAverage7d?: (number | null)[]; // Predicted 7-day rolling average
    futureAverage28d?: (number | null)[]; // Predicted 28-day rolling average
    futureAcwr?: (number | null)[]; // Predicted ACWR values
}