Membership-System und Bug Fixing (inkl. Nutrition) #8

Merged
Lars merged 56 commits from develop into main 2026-03-21 08:48:57 +01:00
Showing only changes of commit 0210844522 - Show all commits

View File

@ -103,7 +103,7 @@ mitai-jinkendo/
**Core Features (Backend):**
- ✅ DB-Schema (11 neue Tabellen, Feature-Registry Pattern)
- ✅ Feature-Access Middleware (check_feature_access, increment_feature_usage)
- ⚠️ Feature-Access Middleware (existiert, aber wird NICHT in Endpoints aufgerufen - siehe KRITISCH unten!)
- ✅ Flexibles Tier-System (free/basic/premium/selfhosted) - Admin-editierbar via API
- ✅ **Coupon-System** (3 Typen: single_use, period, wellpass)
- ✅ Coupon-Stacking-Logik (Pause + Resume bei Wellpass-Override)
@ -125,6 +125,43 @@ mitai-jinkendo/
- 🔲 Trial-System UI (Countdown-Banner, auto-start nach E-Mail-Verifikation)
- 🔲 App-Settings Admin-Panel (globale Konfiguration: trial_days, allow_registration, etc.)
**⚠️ KRITISCH: Feature-Enforcement fehlt noch! (März 2026)**
**Problem:** Admin-UI zum Konfigurieren existiert, aber die eigentliche Prüfung/Durchsetzung fehlt!
- User kann Limits überschreiten (KI-Analysen, Export, etc.)
- Deaktivierte Features sind trotzdem nutzbar
- Feature-Middleware existiert aber wird NICHT aufgerufen
**Backend TODO (KRITISCH):**
- 🔲 **insights.py** - Feature-Checks für KI-Analysen einbauen
```python
@router.post('/run/{slug}')
def run_analysis(slug: str, session = Depends(require_auth)):
profile_id = session['profile_id']
# TODO: check_feature_access(profile_id, 'ai_calls', action='use')
# TODO: increment_feature_usage(profile_id, 'ai_calls')
```
- 🔲 **exportdata.py** - Feature-Check für Export (CSV/JSON/ZIP)
- 🔲 **importdata.py** - Feature-Check für Import
- 🔲 **nutrition.py** - Feature-Check für FDDB-Import
- 🔲 **activity.py** - Feature-Check für Apple Health Import
- 🔲 **photos.py** - Feature-Check für Progress-Fotos
- 🔲 **weight.py, circumference.py, caliper.py** - Entry-Limits prüfen
**Frontend TODO (wichtig für UX):**
- 🔲 `useFeatureAccess()` Hook implementieren
```javascript
const { canUse, remaining, limit } = useFeatureAccess('ai_calls')
```
- 🔲 `<FeatureGate feature="...">` Komponente erstellen
- 🔲 Feature-Gates in Analysis-Seite (KI-Button ausblenden wenn limit=0)
- 🔲 Feature-Gates in Settings (Export-Buttons)
- 🔲 Feature-Gates in Import-Funktionen
- 🔲 Limit-Anzeige ("3/10 KI-Analysen verbleibend")
- 🔲 Upgrade-Prompt bei Limit erreicht
**Geschätzte Arbeit:** 2-3 Stunden (Backend 60%, Frontend 40%)
**E-Mail Templates (v9c):**
- 🔲 Registrierung + E-Mail-Verifizierung
- 🔲 Einladungslink