athlete page first draft
This commit is contained in:
@@ -4,6 +4,25 @@ export type Sport = "cycling" | "running" | "hiking" | "walking" | "swimming" |
|
||||
export type SubSport = "road" | "mountain" | "gravel" | "indoor" | "trail" | "track" | "nordic" | null;
|
||||
export type Privacy = "public" | "blur_start" | "no_gps" | "private";
|
||||
|
||||
/** [duration_s, avg_watts] pairs, sorted by duration ascending. */
|
||||
export type MmpCurve = [number, number][];
|
||||
|
||||
export interface AthletePowerCurve {
|
||||
all_time: MmpCurve | null;
|
||||
last_365d: MmpCurve | null;
|
||||
last_90d: MmpCurve | null;
|
||||
}
|
||||
|
||||
export interface AthleteJson {
|
||||
bas_version: string;
|
||||
generated_at: string;
|
||||
power_curve: AthletePowerCurve;
|
||||
max_hr?: number;
|
||||
ftp_w?: number;
|
||||
hr_zones?: [number, number][];
|
||||
power_zones?: [number, number][];
|
||||
}
|
||||
|
||||
export interface ActivitySummary {
|
||||
id: string;
|
||||
title: string;
|
||||
@@ -20,6 +39,7 @@ export interface ActivitySummary {
|
||||
max_hr_bpm: number | null;
|
||||
avg_cadence_rpm: number | null;
|
||||
avg_power_w: number | null;
|
||||
mmp: MmpCurve | null;
|
||||
source: string | null;
|
||||
privacy: Privacy;
|
||||
detail_url: string | null;
|
||||
@@ -66,6 +86,7 @@ export interface ActivityDetail extends ActivitySummary {
|
||||
end_latlng: [number, number] | null;
|
||||
laps: Lap[];
|
||||
timeseries: Timeseries;
|
||||
mmp: MmpCurve | null;
|
||||
strava_id: string | null;
|
||||
duplicate_of: string | null;
|
||||
custom: Record<string, unknown>;
|
||||
|
||||
Reference in New Issue
Block a user