- .gitignore: .claude/docs, rules, commands tracken; settings.local weiter ignorieren - DOCUMENTATION.md: verbindliche Ablage functional/technical/working/issues - .claude/README.md: Agent-Einstieg; GITEA_ISSUES_INDEX aus MCP (Stand 2026-04-08) - Arbeitspapiere von docs/ nach .claude/docs/working/ verschoben - docs/MEMBERSHIP_SYSTEM.md als Stub; kanonisch technical/MEMBERSHIP_SYSTEM.md - CLAUDE.md Pflichtlektüre und Links angepasst; docs/README.md vereinfacht Made-with: Cursor
54 lines
2.5 KiB
Markdown
54 lines
2.5 KiB
Markdown
# Persönliche Referenzwerte (Profil)
|
|
|
|
## Überblick
|
|
|
|
Nutzer-spezifische, **historische** Kennwerte (z. B. HF-Schwellen, Trainingshäufigkeit), die **nicht** zur Admin-/Focus-Area-Konfiguration gehören, sondern zum **aktiven Profil** wie Größe oder Ziele.
|
|
|
|
## Tabellen
|
|
|
|
| Tabelle | Zweck |
|
|
|--------|--------|
|
|
| `reference_value_types` | System-seedete Typdefinitionen: stabiler `key`, Anzeige-`label`, optional `default_unit`, `sort_order`, `active`, `metadata` (JSONB). |
|
|
| `profile_reference_values` | Historische Einträge: `profile_id`, `reference_value_type_id`, `effective_date`, `value_numeric` und/oder `value_text`, `unit`, optionale Felder `source`, `confidence`, `method`, `notes`, `extra` (JSONB). |
|
|
|
|
**Kein** Überschreiben eines einzelnen „aktuellen“ Werts: jede Messung ist eine eigene Zeile.
|
|
|
|
## Seed-Typen (Migration 037)
|
|
|
|
- `max_heart_rate` (bpm)
|
|
- `resting_heart_rate` (bpm)
|
|
- `anaerobic_threshold_hr` (bpm)
|
|
- `aerobic_threshold_hr` (bpm)
|
|
- `training_frequency_weekly` (Sessions/Woche)
|
|
- `fitness_level` (Stufe)
|
|
|
|
Es werden **keine** Benutzerwerte automatisch angelegt.
|
|
|
|
## Admin (nur Rolle `admin`)
|
|
|
|
- `GET/POST/PUT/DELETE /api/admin/reference-value-types` — vollständiger CRUD auf `reference_value_types` (inkl. inaktiver Typen).
|
|
- Löschen nur, wenn keine Zeilen in `profile_reference_values` zu diesem Typ existieren (sonst HTTP 409).
|
|
- UI: **Admin → Ziele & Fokus → Referenz-Kennwerte** (`/admin/reference-value-types`).
|
|
|
|
## API (Prefix `/api`)
|
|
|
|
- `GET /reference-value-types` — aktive Typen (dynamische UI)
|
|
- `GET /profile-reference-values?type_key=…` — Liste pro Typ, neueste zuerst
|
|
- `POST /profile-reference-values` — neuer Eintrag
|
|
- `PUT /profile-reference-values/{id}` — Aktualisierung
|
|
- `DELETE /profile-reference-values/{id}` — Löschen
|
|
|
|
Authentifizierung wie üblich; Profil über `X-Profile-Id` / `get_pid` wie andere Module.
|
|
|
|
## UI
|
|
|
|
**Einstellungen → Karte „Referenzwerte“ → „Referenzwerte verwalten“** (`/settings/reference-values`).
|
|
|
|
Typauswahl per Dropdown (aus API); Verlauf als Tabelle mit Bearbeiten/Löschen; Formular für neue Einträge bzw. Bearbeitung.
|
|
|
|
## Erweiterbarkeit
|
|
|
|
- Neue Messgrößen: nur **INSERT** in `reference_value_types` (Migration oder Admin-Skript), kein Schema-Wechsel für Nutzerdaten.
|
|
- Zusatzmetadaten: Spalten `source`, `confidence`, `method`, `notes`, `extra` bereits vorhanden; UI kann später erweitert werden.
|
|
- Platzierung **profilorientiert**, damit klar ist: Nutzerdaten, keine systemweite Semantik wie Focus Areas.
|