aboutsummaryrefslogtreecommitdiff
path: root/db/schema.sql
Commit message (Collapse)AuthorAge
* Match official climbs against their recorded sampleMartin Kagamino Lehoux2026-09-24
| | | | | | | | | | | | | | | | | | | | | | An official climb matched on endpoint coordinates alone. On a loop ridden the other way the route meets the climb's top before its bottom, so pairing each start with the first end inside its lap window credited a 5.9 km passage as the 850 m Chemin de la Tour Pey Blanc, and a 49 km one on another ride. Climbs now keep the sample of the segment they were created from: the recorded length and elevation gain of the selected route points, captured by the ride detail and preview handlers and stored NOT NULL. Matching takes the whole route and drops any candidate outside ±50% of that sample on either axis, and attempts are refreshed by upsert and prune so re-analyzing a ride keeps the recorded-at stamp of the passages that survive. The backfill leaves the web package: backfill.Run recomputes ride values then official climb attempts as a single `go run . backfill` command (climbs-backfill is gone), rideanalysis owns the attempt snapshot, and the mountain-pass loading margin is shared. Applied to the stored rides it stamps 78 samples, drops the four bogus attempts and leaves ride 800 with its three Pont Rout passages.
* Persist official climb attempts with climbs pagesMartin Kagamino Lehoux2026-09-13
| | | | | | | | | | | | | Record one attempt row per (ride, climb, occurrence) when a ride detail loads, snapshotting distance, elevation gain, slope, cotacol and attempt timestamps; a climbs-backfill CLI command seeds all existing rides. New /climbs list page aggregates attempts (medians computed in Go, best time as min duration) with sortable columns, and /climbs/{id} shows the median scalar stats, a median normalized elevation profile (50 steps over each attempt's own length), the full-precision recorded route of the median-distance attempt on an OSM map, and every attempt with time at second precision.
* Rename rides.type to external_sport_type, infer bike type from Strava sport ↵Martin Kagamino Lehoux2026-08-28
| | | | type and display categories in UI
* Add touring ride type for cyclotourismeMartin Kagamino Lehoux2026-08-28
|
* Add dual GPX/FIT exporter and backfill for ridesMartin Kagamino Lehoux2026-08-27
| | | | | | | Phase 1 writes both .gpx and .fit on Strava import, adds fit_path column, renames storage.gpx_dir to storage.rides_dir, and backfills missing FIT files from existing GPX without breaking CLI progress. FIT files are gitignored.
* Categorise OSM passes by highway and colour them on the ride detail mapMartin Kagamino Lehoux2026-08-27
| | | | | | | | Passes are extracted from OSM PBF nodes (mountain_pass=yes) and linked to containing ways; highway road values map to road, track to track, path/footway to path, plus hiking for rock/climbing. All passes are kept, coloured distinctly (road/track/path/hiking/unknown) for road-bike validation on ride 397. Single squashed migration adds category column, cheap to re-extract.
* Add hardcore ride categorisation with bike and ride typesMartin Kagamino Lehoux2026-08-23
|
* Use OSM as the single source of mountain passesMartin Kagamino Lehoux2026-08-21
| | | | | | | Replace the centcols CSV download/enrichment pipeline with OSM PBF extraction as the primary (only) source: merge osmpass into mountain_pass, drop the centcols table and model fields, filter to named passes with elevation, and remove the centcols CLI flags.
* feat(ride): persist canonical moving time, preserve Strava referenceMartin Kagamino Lehoux2026-08-21
|
* feat: add official climb workflowMartin Kagamino Lehoux2026-08-14
|
* feat: Persist Cotacol ride valuesMartin Kagamino Lehoux2026-08-08
|
* feat: Add web ride library with Strava syncMartin Kagamino Lehoux2026-08-05
|
* feat: Detect mountain pass crossings, name climbs after passes, render ride ↵Martin Kagamino Lehoux2026-08-03
| | | | | | | | | | charts - osmpass: extract mountain_pass=yes nodes from an OSM PBF, enrich centcols passes with OSM coordinates, resumable -fetch-osm download - mountain_pass: DetectCrossings for a ride, MatchClimb to name a climb after the pass it tops - ride: expose Points(), add Climb.Top() and Climb.Name - chart: -chart renders elevation profile with climb bands and pass markers - commands: -fetch-osm, -extract-osm, -import-cached, -enrich
* feat: Download mountain passes from centcols into SQLiteMartin Kagamino Lehoux2026-08-01