mitai-jinkendo/backend/routers
Lars 65ee5f898f
All checks were successful
Deploy Development / deploy (push) Successful in 43s
Build Test / lint-backend (push) Successful in 1s
Build Test / build-frontend (push) Successful in 13s
feat: Phase 1.5 - Flexible Goal System (DB-Registry) Part 1/2
KRITISCHE ARCHITEKTUR-ÄNDERUNG vor Phase 0b:
Ermöglicht dynamische Goal Types ohne Code-Änderungen.

Backend:
- Migration 024: goal_type_definitions Tabelle
  → 8 existierende Typen als Seed-Data migriert
  → Flexible Schema: source_table, aggregation_method, calculation_formula
  → System vs. Custom Types (is_system flag)
- goal_utils.py: Universal Value Fetcher
  → get_current_value_for_goal() ersetzt hardcoded if/elif chain
  → Unterstützt: latest, avg_7d, avg_30d, sum_30d, count_7d, etc.
  → Komplexe Formeln (lean_mass) via calculation_formula JSON
- goals.py: CRUD API für Goal Type Definitions
  → GET /goals/goal-types (public)
  → POST/PUT/DELETE /goals/goal-types (admin-only)
  → Schutz für System-Types (nicht löschbar)
- goals.py: _get_current_value_for_goal_type() delegiert zu Universal Fetcher

Frontend:
- api.js: 4 neue Funktionen (listGoalTypeDefinitions, create, update, delete)

Dokumentation:
- TODO_GOAL_SYSTEM.md: Phase 1.5 hinzugefügt, Roadmap aktualisiert

Part 2/2 (nächster Commit):
- Frontend: Dynamic Goal Types Dropdown
- Admin UI: Goal Type Management Page
- Testing

Warum JETZT (vor Phase 0b)?
- Phase 0b Platzhalter (120+) nutzen Goals für Score-Berechnungen
- Flexible Goals → automatisch in Platzhaltern verfügbar
- Später umbauen = Doppelarbeit (alle Platzhalter anpassen)

Zukünftige Custom Goals möglich:
- 🧘 Meditation (min/Tag)
- 📅 Trainingshäufigkeit (x/Woche)
- 📊 Planabweichung (%)
- 🎯 Ritual-Adherence (%)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 06:45:05 +01:00
..
__init__.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
access_grants.py feat: add admin management routers for subscription system 2026-03-19 13:09:33 +01:00
activity.py feat: global quality filter setting (Issue #31) 2026-03-23 22:29:49 +01:00
admin_activity_mappings.py feat: learnable activity type mapping system (DB-based, auto-learning) 2026-03-21 19:31:58 +01:00
admin_training_types.py feat: Training Type Profiles Phase 2.1 - Backend Profile Management (#15) 2026-03-23 11:50:40 +01:00
admin.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
auth.py fix: email verification redirect and already-used token message 2026-03-21 12:28:51 +01:00
blood_pressure.py fix: support German column names in CSV imports 2026-03-23 16:40:49 +01:00
caliper.py feat: Phase 4 Batch 1 - enable enforcement for data entries 2026-03-21 06:57:05 +01:00
circumference.py feat: Phase 4 Batch 1 - enable enforcement for data entries 2026-03-21 06:57:05 +01:00
coupons.py feat: add coupon management and redemption 2026-03-19 13:07:09 +01:00
evaluation.py feat: Training Type Profiles - Phase 1.1 Foundation (#15) 2026-03-23 10:49:26 +01:00
exportdata.py feat: complete Phase 4 enforcement for all features (backend) 2026-03-21 07:40:37 +01:00
features.py fix: prevent connection pool exhaustion in features/usage 2026-03-21 07:02:42 +01:00
goals.py feat: Phase 1.5 - Flexible Goal System (DB-Registry) Part 1/2 2026-03-27 06:45:05 +01:00
importdata.py feat: complete Phase 4 enforcement for all features (backend) 2026-03-21 07:40:37 +01:00
insights.py feat: Pipeline-System - Backend Infrastructure (Issue #28, Phase 1) 2026-03-25 09:42:28 +01:00
nutrition.py feat: add manual nutrition entry form with auto-detect 2026-03-21 08:37:01 +01:00
photos.py fix: photo upload date parameter parsing 2026-03-22 14:33:01 +01:00
profiles.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
prompts.py feat: show all stage outputs as collapsible JSON in expert mode 2026-03-26 13:17:58 +01:00
rest_days.py feat: prevent duplicate rest day types per date (Migration 012) 2026-03-22 17:36:49 +01:00
sleep.py feat: sleep duration excludes awake time (actual sleep only) 2026-03-22 14:01:47 +01:00
stats.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
subscription.py feat: add user subscription info endpoints 2026-03-19 13:05:55 +01:00
tier_limits.py fix: show all tiers in admin matrix editor including selfhosted 2026-03-20 06:19:32 +01:00
tiers_mgmt.py feat: add admin management routers for subscription system 2026-03-19 13:09:33 +01:00
training_types.py feat: add extended training types (cardio walk/dance, mind & meditation) 2026-03-21 15:16:07 +01:00
user_restrictions.py feat: add admin management routers for subscription system 2026-03-19 13:09:33 +01:00
vitals_baseline.py fix: handle decimal values in Apple Health vitals import 2026-03-23 16:50:08 +01:00
vitals.py feat: add CSV import for Vitals (Omron + Apple Health) 2026-03-23 15:26:51 +01:00
weight.py feat: Phase 4 Batch 1 - enable enforcement for data entries 2026-03-21 06:57:05 +01:00