This commit is contained in:
Dominik Klarkowski
2026-06-18 09:43:25 +02:00
parent ee178feff0
commit d00a5a42ac
9 changed files with 621 additions and 21 deletions

View File

@@ -34,10 +34,20 @@ export type RunningActivityInput = z.infer<typeof runningActivitySchema>;
export type RoutePoint = [number, number];
export type RunMetrics = {
distanceKm: number[];
hrBpm?: number[];
cadenceSpm?: number[];
gctMs?: number[];
gcbLeftPct?: number[];
};
export type RunningActivity = RunningActivityInput & {
_id: ObjectId;
createdAt: Date;
routePoints?: RoutePoint[];
elevationProfile?: number[];
runMetrics?: RunMetrics;
};
const COLLECTION = "running_activities";
@@ -72,12 +82,21 @@ export async function getRunningActivity(id: string): Promise<RunningActivity |
return collection.findOne({ _id: new ObjectId(id) });
}
export async function setRunningActivityRoutePoints(
export async function setRunningActivityMetrics(
garminActivityId: number,
points: RoutePoint[]
metrics: RunMetrics
): Promise<void> {
const collection = await getCollection();
await collection.updateOne({ garminActivityId }, { $set: { routePoints: points } });
await collection.updateOne({ garminActivityId }, { $set: { runMetrics: metrics } });
}
export async function setRunningActivityRoutePoints(
garminActivityId: number,
points: RoutePoint[],
elevationProfile: number[]
): Promise<void> {
const collection = await getCollection();
await collection.updateOne({ garminActivityId }, { $set: { routePoints: points, elevationProfile } });
}
type SyncState = { _id: "garmin"; lastSyncAt: Date };