mitai-jinkendo/backend/routers
Lars 829edecbdc
All checks were successful
Deploy Development / deploy (push) Successful in 43s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 12s
feat: learnable activity type mapping system (DB-based, auto-learning)
Replaces hardcoded mappings with database-driven, self-learning system.

Backend:
- Migration 007: activity_type_mappings table
  - Supports global and user-specific mappings
  - Seeded with 40+ default mappings (German + English)
  - Unique constraint: (activity_type, profile_id)
- Refactored: get_training_type_for_activity() queries DB
  - Priority: user-specific → global → NULL
- Bulk categorization now saves mapping automatically
  - Source: 'bulk' for learned mappings
- admin_activity_mappings.py: Full CRUD endpoints
  - List, Get, Create, Update, Delete
  - Coverage stats endpoint
- CSV import uses DB mappings (no hardcoded logic)

Frontend:
- AdminActivityMappingsPage: Full mapping management UI
  - Coverage stats (% mapped, unmapped count)
  - Filter: All / Global
  - Create/Edit/Delete mappings
  - Tip: System learns from bulk categorization
- Added route + admin link
- API methods: adminList/Get/Create/Update/DeleteActivityMapping

Benefits:
- No code changes needed for new activity types
- System learns from user bulk categorizations
- User-specific mappings override global defaults
- Admin can manage all mappings via UI
- Migration pre-populates 40+ common German/English types

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 19:31:58 +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: learnable activity type mapping system (DB-based, auto-learning) 2026-03-21 19:31:58 +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: admin CRUD for training types + distribution chart in ActivityPage 2026-03-21 15:32:32 +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
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
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
importdata.py feat: complete Phase 4 enforcement for all features (backend) 2026-03-21 07:40:37 +01:00
insights.py feat: complete Phase 4 enforcement for all features (backend) 2026-03-21 07:40:37 +01:00
nutrition.py feat: add manual nutrition entry form with auto-detect 2026-03-21 08:37:01 +01:00
photos.py feat: complete Phase 4 enforcement for all features (backend) 2026-03-21 07:40:37 +01:00
profiles.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
prompts.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +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
weight.py feat: Phase 4 Batch 1 - enable enforcement for data entries 2026-03-21 06:57:05 +01:00