Track gear usage and lifecycle — shoe mileage, bike components, climbing shoe sessions. Designed in SYNTHESIS §7.
equipment_catalog (shared product database, JSON-seeded)packages/seed-data/equipment-catalog.jsonequipment (athlete's personal gear)athletes and optionally to equipment_catalogparent_id for component hierarchy (chain/cassette/tire as children of a bike — Intervals.icu pattern)initial_distance_m (user adds shoes they've already run 200km in)activity_equipment (junction table)climb_logs.equipment_id for per-ascent shoe trackingAthlete taps "Add Equipment" → searches catalog by name → sees product image and brand → selects → equipment row created with catalog_id FK. Custom/unlisted gear has no catalog_id.
sport_zone_priorities.default_equipment_id auto-assigns gear per sport type (e.g., all cycling activities get the road bike).
Schema Migration, Seed Data Pipeline (equipment-catalog.json)
See docs/api-research/SYNTHESIS.md §7 (equipment_catalog, equipment, activity_equipment).