feat: add extended training types (cardio walk/dance, mind & meditation)
All checks were successful
Deploy Development / deploy (push) Successful in 49s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 13s

- Migration 005: Add cardio subcategories (Gehen, Tanzen)
- Migration 005: Add new category "Geist & Meditation" with 4 subcategories
  (Meditation, Atemarbeit, Achtsamkeit, Visualisierung)
- Update categories endpoint with mind category metadata
- Update Apple Health mapping: dance → dance, add meditation/mindfulness
- 6 new training types total

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Lars 2026-03-21 15:16:07 +01:00
parent 96b0acacd2
commit d164ab932d
3 changed files with 33 additions and 1 deletions

View File

@ -0,0 +1,24 @@
-- Migration 005: Extended Training Types
-- Add: Cardio (Gehen, Tanzen), Mind & Meditation category
-- Created: 2026-03-21
-- ========================================
-- Add new cardio subcategories
-- ========================================
INSERT INTO training_types (category, subcategory, name_de, name_en, icon, sort_order) VALUES
('cardio', 'walk', 'Gehen', 'Walking', '🚶', 105),
('cardio', 'dance', 'Tanzen', 'Dance', '💃', 106);
-- ========================================
-- Add new category: Geist & Meditation
-- ========================================
INSERT INTO training_types (category, subcategory, name_de, name_en, icon, sort_order) VALUES
('mind', 'meditation', 'Meditation', 'Meditation', '🧘‍♂️', 700),
('mind', 'breathwork', 'Atemarbeit', 'Breathwork', '🫁', 701),
('mind', 'mindfulness', 'Achtsamkeit', 'Mindfulness', '☮️', 702),
('mind', 'visualization', 'Visualisierung', 'Visualization', '🎨', 703);
-- ========================================
-- Add comment
-- ========================================
COMMENT ON TABLE training_types IS 'v9d Phase 1b: Extended with cardio walk/dance and mind category';

View File

@ -135,10 +135,12 @@ def get_training_type_for_apple_health(workout_type: str):
'martial arts': 'technique',
'boxing': 'sparring',
'rowing': 'rowing',
'dance': 'other',
'dance': 'dance',
'core training': 'functional',
'flexibility': 'static',
'cooldown': 'regeneration',
'meditation': 'meditation',
'mindfulness': 'mindfulness',
}
subcategory = mapping.get(workout_type.lower())

View File

@ -113,6 +113,12 @@ def list_categories(session: dict = Depends(require_auth)):
'icon': '💆',
'color': '#6B7280'
},
'mind': {
'name_de': 'Geist & Meditation',
'name_en': 'Mind & Meditation',
'icon': '🧘‍♂️',
'color': '#A78BFA'
},
'other': {
'name_de': 'Sonstiges',
'name_en': 'Other',