shinkan-jinkendo/.claude/docs/working/TRAINING_MODULES_IMPLEMENTATION_PLAN.md
Lars 49adb395dd
All checks were successful
Deploy Development / deploy (push) Successful in 41s
Test Suite / pytest-backend (push) Successful in 35s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 12s
Test Suite / playwright-tests (push) Successful in 1m15s
feat(version): bump to 0.8.110 and update project specifications
- Updated app version to 0.8.110 and database schema version to 20260512057, reflecting recent enhancements.
- Revised project status documentation to include new versioning and next steps for development.
- Enhanced the functional specification for training modules and combination exercises, detailing upcoming features and improvements.
- Improved technical specifications to align with the latest code changes, ensuring consistency across documentation.
- Introduced new UI elements for toast notifications and unsaved changes prompts to enhance user experience.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 16:34:38 +02:00

4.4 KiB
Raw Blame History

Umsetzungsplan: Trainingsmodule & Kombinationsübungen

Bezug: functional/Shinkan Trainingsmodule Kombinationsuebungen Spezifikation V2.md (Kopf „V3“, inkl. §10.2.1, §10.4 Coaching-Stufen, Anhang A Implementierungsabgleich — Drift-Schutz)
Technische Entwurfsspezifikation: technical/TRAINING_MODULES_AND_COMBINATION_EXERCISES_SPEC.md
Stand dieses Dokuments: 2026-05-12 (Abgleich mit Code App 0.8.110, siehe backend/version.py)

Ziele

Umsetzung der MVP-Punkte aus der Fachspezifikation ohne die bestehende Planung zu destabilisieren: schrittweise Migrationen, bestehende Sektions-/Item-Struktur (training_unit_sections, training_unit_section_items) beibehalten, Kopiersemantik bei Übernahmen.

Phasenüberblick

Phase Inhalt Status
1 Trainingsmodule (Bibliothek): Tabellen training_modules, training_module_items; REST CRUD mit Governance wie andere Bibliotheken; Übernahme in eine bestehende Einheit per POST /api/training-units/{id}/apply-training-module (Anfügen ans Ende eines Abschnitts via section_order_index); optionale Lineage-Spalte source_training_module_id auf Planungsitems; UI: Liste/Editor unter /planning/training-modules, Link von der Planung, Modal „Modul übernehmen“ umgesetzt (MVP Schritt 1)
2 Kombinationsübungen: exercise_kind/combination_*, Slots, Pools, method_archetype, method_profile (JSON) teilweise — wie links; zusätzlich 057 planning_method_profile; Planungs-Merge Client (effectiveComboMethodProfile); Archetypen weiterhin nur Code-Konstanten (kein Admin)
3 Planungsblöcke: Gruppierung, Auflösen, „als Modul speichern“, erweiterter Übernahmemodus (Zwischenposition) geplant
4 Coaching: Archetyp-Support teilweise: Stufe A — Merge Katalog+Planung; CombinationPlanBracket in Peek/Run; globale Profilzahlen mit Labels (describeGlobalComboProfile); Stations-/Timing-Zusammenfassung inkl. Wdh.-Hinweise. Stufe B/Coffen10.6, Anhang A)
5 Rahmenprogramm: Modulübernahme UX in Slot-Blueprint-Editor konsolidieren geplant

Coaching — verbindliche Arbeitspakete (gegen Spec-Drift)

Paket Spec-Referenz Kurzinhalt
4a (Ist/Ziel) §10.2.1 Archetyp-Schlüssel bleiben identisch zu backend/routers/exercises.py (COMBINATION_ARCHETYPE_IDS) und frontend/src/constants/combinationArchetypes.js.
4b §10.4 Stufe A Erreicht (0.8.110): Slots + Kandidaten; Archetyp-Hilfstext; wirksames Profil lesend mit fachlichen Labels; Klammerdarstellung konsistent (CombinationPlanBracket, comboPlanningMethodProfile.js).
4c §10.4 Stufe B Entscheidung: virtuelle Substeps vs. persistierte Items; Konsistenz sectionsToPutPayload/Ist-Zeit.
4d §10.4 Stufe C Archetyp-spezifische Timer/Wechsel/Abhaken an method_profile — nach 4c.
4e §10.6 Archetyp-Verwaltung: DB/UI oder Konfiguration statt nur Release — Labels, Defaults, ggf. Vereins-/Rollen-Sichtbarkeit.
4f §10.6 · COMBINATION_TIMING_PROFILE_PLAN.md Massen-Vorbelegung: ein Klick alle Slot-Zeiten/Anzahlen aus Archetyp/Global; Modal „Archetyp-Vorlage anwenden?“ (Phase 2 des Timing-Plans).
4g §10.6 Backend-Validierung: Pflichtfelder/Wertebereiche je method_archetype; optional serverseitiger Merge mit Katalog (aktuell nur Client).

Phase 1 (technische Notizen)

  • Governance: visibility/club_id/created_by analog training_plan_templates; Listenfilter library_content_visibility_sql.
  • Übernahme: Keine Live-Verknüpfung; Items werden kopiert; source_training_module_id dokumentiert Herkunft.
  • Schnittstelle Übernahme: section_order_index entspricht der Reihenfolge der Abschnitte in der gespeicherten Einheit (0-basiert), konsistent zur Planungs-API.

Pflege nach Merge

  • DATABASE_SCHEMA.md bei größeren Schema-Erweiterungen ergänzen.
  • ACCESS_LAYER_ENDPOINT_AUDIT.md bei neuen mandantenbezogenen Endpunkten fortpflegen.
  • Nach jeder Kombi-/Coach-Änderung: functional/… Spezifikation V2.md Anhang A und diese Tabelle Phasen 2/4 abstimmen.