# Shinkan Jinkendo Version Information APP_VERSION = "0.5.0" BUILD_DATE = "2026-04-23" DB_SCHEMA_VERSION = "20260423002" MODULE_VERSIONS = { "auth": "1.0.0", "profiles": "1.0.0", "clubs": "0.1.0", "groups": "0.1.0", "skills": "0.1.0", "methods": "0.1.0", "exercises": "0.5.0", # Updated: M:N Training Characters (Migration 012) "training_units": "0.1.0", "training_programs": "0.1.0", "planning": "0.1.0", "import_wiki": "0.1.0", "admin": "1.0.0", "membership": "1.0.0", "catalogs": "1.5.0", # Updated: Trainer Contexts API (Migration 012) } CHANGELOG = [ { "version": "0.5.0", "date": "2026-04-23", "changes": [ "Feature: Trainer-Kontext-System für fokussierte Ansichten", "DB: Migration 012 - exercise_training_characters (M:N)", "DB: Migration 012 - trainer_contexts (Trainer-Profil-System)", "Backend: CRUD API für Trainer-Kontexte (/api/trainer-contexts)", "Frontend: TrainerContextsPage für Verwaltung eigener Arbeitsbereiche", "Architektur: Flat Catalogs + Smart Filtering für 1000+ Übungen", "Architektur: NULL = 'für alles geeignet', M:N = spezifische Zuordnung", ] }, { "version": "0.4.0", "date": "2026-04-23", "changes": [ "BREAKING: Migration 010 - Umbenennung training_styles → style_directions", "BREAKING: Migration 011 - Neue Dimension training_types (Breitensport/Leistungssport)", "DB: Konsistente Terminologie - Stilrichtungen vs. Trainingsstile", "DB: Neue Tabelle training_types mit Seed-Daten (Breitensport, Leistungssport, Wettkampf)", "DB: Neue Junction-Tabelle exercise_training_types (M:N)", "Architektur: Fokusbereich → Stilrichtung → Trainingsstil → Zielgruppe (alle M:N)", "Backend: Alle SQL Queries aktualisiert auf neue Tabellennamen (style_directions, style_direction_target_groups)", "Backend: API Parameter umbenannt (training_style_id → style_direction_id)", "Backend: CRUD Endpoints für training_types hinzugefügt", ] }, { "version": "0.3.4", "date": "2026-04-23", "changes": [ "BREAKING: Migration 009 - Zielgruppen M:N Refactoring", "DB: target_groups.training_style_id entfernt (jetzt global unabhängig)", "DB: Neue Junction-Tabelle training_style_target_groups (M:N)", "API: 5 neue Endpoints für M:N Management (GET/POST/PUT/DELETE + hierarchy)", "API: GET /training-style-target-groups mit Enrichment (focus_area_name, training_style_name)", "API: GET /training-styles/hierarchy für Tree-View (verschachtelte Struktur)", "API: POST /training-style-target-groups mit Upsert-Logik", "Backward-Compatible: exercise_target_groups weiterhin unterstützt", "Architecture: Eine Zielgruppe kann mehreren Stilen zugeordnet werden", ] }, { "version": "0.3.3", "date": "2026-04-23", "changes": [ "Fix: Admin-Navigation - Redirect /admin → /admin/catalogs", "Fix: Admin-Link funktioniert jetzt (vorher 404)" ] }, { "version": "0.3.2", "date": "2026-04-23", "changes": [ "Feature: Zielgruppen-Verwaltung komplett (Backend + Frontend)", "API: GET/POST/PUT/DELETE /target-groups mit hierarchischem Kontext (focus_area → training_style → target_group)", "Admin UI: Neuer Tab 'Zielgruppen' in Katalogverwaltung", "UX: Create/Edit-Forms mit Training-Stil-Auswahl, Altersbereich (min/max)", "UX: Hierarchie-Anzeige in Liste (Fokusbereich → Stil → Zielgruppe)", "Protection: DELETE mit CASCADE-Schutz (Fehler wenn Übungen zugeordnet)", ] }, { "version": "0.3.1", "date": "2026-04-23", "changes": [ "Feature: Exercises-Router unterstützt M:N Zuordnungen", "API: GET /exercises/{id} liefert focus_areas[], training_styles[], target_groups[], age_groups_catalog[]", "API: POST/PUT /exercises akzeptiert focus_areas_multi[], training_styles_multi[], target_groups_multi[], age_groups_catalog[]", "Pattern: DELETE+INSERT für M:N Updates (konsistent mit skills)", "Backward-Compatible: Legacy FK-Felder (focus_area_id, training_style_id) bleiben erhalten", ] }, { "version": "0.3.0", "date": "2026-04-23", "changes": [ "BREAKING: M:N Beziehungen für Übungen (statt 1:1)", "Migration 008: M:N Zuordnungstabellen (exercise_focus_areas, exercise_styles, exercise_target_groups, exercise_age_groups)", "Feature: Hierarchische Katalog-Struktur (Fokusbereich → Stil → Zielgruppe)", "Feature: Zielgruppen-Verwaltung (training_styles.focus_area_id Hierarchie)", "Feature: Primary/Secondary Assignments (is_primary Flag)", "Doku: DATABASE_SCHEMA.md + DOMAIN_MODEL.md kontinuierlich gepflegt", "Architecture: Smart Cascade-Logik (RESTRICT, Rerouting, Move)", ] }, { "version": "0.2.0", "date": "2026-04-23", "changes": [ "Feature: Admin-verwaltbare Kataloge (Focus Areas, Training Styles, Training Characters, Skill Categories)", "Feature: Trainer-Fokusbereich-Zuordnung für rollenbasierte Filterung", "Migration 007: Katalog-Tabellen + Seed-Daten", "Frontend: AdminCatalogsPage mit 5 Tabs (CRUD für alle Kataloge)", "Frontend: ExercisesPage nutzt Katalog-Dropdowns (kein Hard-Coding mehr)", "Frontend: Trainingsstil-Dropdown hinzugefügt (fehlte komplett)", "Standardisierung: Alle Formulare mit Labels oben, volle Breite, linksbündig", ] }, { "version": "0.1.0", "date": "2026-04-21", "changes": [ "Initial MVP Setup", "Feature: Übungsverwaltung (Kern-Modul)", "Feature: Fähigkeiten- und Methodenkataloge", "Feature: Trainingsplanung für Gruppen", "Feature: Trainingsabschnitte mit Kombinations-Flag", "Feature: MediaWiki-Import (einseitig)", "Feature: Freigabelogik (privat/Verein/offiziell)", "Infrastructure: Auth + Membership von Mitai übernommen", ] } ]