diff --git a/backend/migrations/021_import_skills_from_matrix.sql b/backend/migrations/021_import_skills_from_matrix.sql new file mode 100644 index 0000000..e528e15 --- /dev/null +++ b/backend/migrations/021_import_skills_from_matrix.sql @@ -0,0 +1,46 @@ +-- Migration 021: Import Skills from Fähigkeitsmatrix +-- One-time import of skills with categories from karatetrainer.net +-- Source: https://karatetrainer.net/index.php?title=Fähigkeitsmatrix + +-- Create skill categories first +INSERT INTO skill_categories (name, description, sort_order) VALUES +('Kihon', 'Grundtechniken', 1), +('Kumite', 'Kampf', 2), +('Kata', 'Formen', 3), +('Selbstverteidigung', 'Selbstschutz und Gefahrenabwehr', 4), +('Koordination', 'Koordinative Fähigkeiten', 5), +('Kondition', 'Konditionelle Fähigkeiten', 6), +('Kognition', 'Kognitive Fähigkeiten', 7), +('Soziale Fähigkeiten', 'Sozialkompetenzen', 8), +('Psychische Fähigkeiten', 'Mentale Stärke', 9) +ON CONFLICT (name) DO NOTHING; + +-- Import skills (name unique, category by name lookup) +INSERT INTO skills (name, description, category_id) +SELECT + skill_name, + skill_description, + (SELECT id FROM skill_categories WHERE name = category_name LIMIT 1) +FROM (VALUES + ('Dachi Waza', 'Standtechniken - stabiler Stand mit korrekter Gewichtsverteilung', 'Kihon'), + ('Uke Waza', 'Blocktechniken - Abwehr von Angriffen', 'Kihon'), + ('Zuki Waza', 'Stoßtechniken - gerade und kreisförmige Stöße', 'Kihon'), + ('Geri Waza', 'Tritttechniken - verschiedene Kicks', 'Kihon'), + ('Beinarbeit', 'Grundlegende Bewegungen im Kumite', 'Kumite'), + ('Distanzkontrolle', 'Kontrolle der Kampfdistanz', 'Kumite'), + ('Flexibilität', 'Beweglichkeit und Dehnfähigkeit', 'Kondition'), + ('Präzision', 'Treffergenauigkeit', 'Kumite'), + ('Bewegungsschnelligkeit', 'Schnelligkeit der Bewegungsausführung', 'Kondition'), + ('Anaerobe Ausdauer', 'Ausdauer bei hoher Intensität', 'Kondition'), + ('Schnelligkeitsausdauer', 'Ausdauer bei schnellen Bewegungen', 'Kondition'), + ('Antizipation', 'Vorhersage gegnerischer Aktionen', 'Kognition'), + ('Reaktionsschnelligkeit', 'Reaktion auf Reize', 'Koordination'), + ('Timing', 'Zeitliche Abstimmung von Aktionen', 'Kumite'), + ('Fokus', 'Konzentration auf das Wesentliche', 'Psychische Fähigkeiten'), + ('Mentale Stärke', 'Psychische Belastbarkeit', 'Psychische Fähigkeiten'), + ('Kata Ablauf', 'Korrekte Ausführung der Kata-Sequenz', 'Kata'), + ('Bunkai', 'Anwendung der Kata-Techniken', 'Kata') +) AS skills(skill_name, skill_description, category_name) +ON CONFLICT (name) DO UPDATE SET + description = EXCLUDED.description, + category_id = EXCLUDED.category_id;