From d164ab932dcf28cf2d80e87377de3c8c0e74c0d5 Mon Sep 17 00:00:00 2001 From: Lars Date: Sat, 21 Mar 2026 15:16:07 +0100 Subject: [PATCH] feat: add extended training types (cardio walk/dance, mind & meditation) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- .../005_training_types_extended.sql | 24 +++++++++++++++++++ backend/routers/activity.py | 4 +++- backend/routers/training_types.py | 6 +++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 backend/migrations/005_training_types_extended.sql diff --git a/backend/migrations/005_training_types_extended.sql b/backend/migrations/005_training_types_extended.sql new file mode 100644 index 0000000..35700e4 --- /dev/null +++ b/backend/migrations/005_training_types_extended.sql @@ -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'; diff --git a/backend/routers/activity.py b/backend/routers/activity.py index 5abcf0d..956dc0c 100644 --- a/backend/routers/activity.py +++ b/backend/routers/activity.py @@ -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()) diff --git a/backend/routers/training_types.py b/backend/routers/training_types.py index ab24785..e8c6fe7 100644 --- a/backend/routers/training_types.py +++ b/backend/routers/training_types.py @@ -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',