exclude lift-assisted ski types from ascent totals
This commit is contained in:
@@ -3,6 +3,12 @@ import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { PEAKS } from './peaks-seed';
|
||||
import { assignMinzoom, scorePeak } from './peak-score';
|
||||
import { LIFT_ASSISTED_TYPES } from '$lib/activity-rules';
|
||||
|
||||
// SQL fragment: elevation gain that counts toward ascent totals
|
||||
// (lift-assisted downhill types contribute 0)
|
||||
const LIFT_LIST = LIFT_ASSISTED_TYPES.map((t) => `'${t}'`).join(', ');
|
||||
export const COUNTED_GAIN = `CASE WHEN lower(trim(type)) IN (${LIFT_LIST}) THEN 0 ELSE elev_gain_m END`;
|
||||
|
||||
const DATA_DIR = process.env.STREBA_DATA_DIR ?? 'data';
|
||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||
@@ -234,7 +240,7 @@ export function userStats(userId: number): {
|
||||
.prepare(
|
||||
`SELECT count(*) activities,
|
||||
coalesce(sum(distance_m), 0) distance_m,
|
||||
coalesce(sum(elev_gain_m), 0) elev_gain_m,
|
||||
coalesce(sum(${COUNTED_GAIN}), 0) elev_gain_m,
|
||||
coalesce(sum(coalesce(moving_s, duration_s, 0)), 0) moving_s
|
||||
FROM activities WHERE user_id = ?`
|
||||
)
|
||||
@@ -252,7 +258,7 @@ export function communityTotals(): {
|
||||
`SELECT (SELECT count(*) FROM users) users,
|
||||
count(*) activities,
|
||||
coalesce(sum(distance_m), 0) distance_m,
|
||||
coalesce(sum(elev_gain_m), 0) elev_gain_m
|
||||
coalesce(sum(${COUNTED_GAIN}), 0) elev_gain_m
|
||||
FROM activities`
|
||||
)
|
||||
.get() as { users: number; activities: number; distance_m: number; elev_gain_m: number };
|
||||
|
||||
Reference in New Issue
Block a user