Add the training zones tables from SYNTHESIS §7. Split from #20 (HR Zone Configuration) — the schema is significantly richer than that issue describes.
training_zoneseffective_from dates (GoldenCheetah pattern) — insert new rows, don't overwrite old ones. Historical activities resolve to zones active at the time.sport_type = NULL = default, sport_type = 'cycling' = cycling-specific overrideUNIQUE(athlete_id, zone_type, sport_type, zone_number, effective_from)sport_zone_prioritiesload_order and tiz_order (e.g., 'POWER_HR_PACE' for cycling)default_equipment_id for auto-assigning gear per sport(athlete_id, zone_type, sport_type, effective_from <= activity.start_date) ORDER BY effective_from DESC LIMIT 1athlete_metrics anchor value (FTP, max HR, etc.)sport_type = NULL (default)Schema Migration
#20, #21, #24, #25
See docs/api-research/SYNTHESIS.md §7 (training_zones table, sport_zone_priorities table).