mitai-jinkendo/backend/migrations
Lars f87b93ce2f
All checks were successful
Deploy Development / deploy (push) Successful in 47s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 13s
feat: prevent duplicate rest day types per date (Migration 012)
Problem: User can create multiple rest days of same type per date
(e.g., 2x Mental Rest on 2026-03-23) - makes no sense.

Solution: UNIQUE constraint on (profile_id, date, focus)

## Migration 012:
- Add focus column (extracted from rest_config JSONB)
- Populate from existing data
- Add NOT NULL constraint
- Add CHECK constraint (valid focus values)
- Add UNIQUE constraint (profile_id, date, focus)
- Add index for performance

## Backend:
- Insert focus column alongside rest_config
- Handle UniqueViolation gracefully
- User-friendly error: "Du hast bereits einen Ruhetag 'Muskelregeneration' für 23.03."

## Benefits:
- DB-level enforcement (clean)
- Fast queries (no JSONB scan)
- Clear error messages
- Prevents: 2x muscle_recovery same day
- Allows: muscle_recovery + mental_rest same day ✓

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 17:36:49 +01:00
..
003_add_email_verification.sql feat: add self-registration with email verification 2026-03-21 09:53:11 +01:00
004_training_types.sql feat(v9d): add training types system + logout button 2026-03-21 13:05:33 +01:00
005_training_types_extended.sql feat: add extended training types (cardio walk/dance, mind & meditation) 2026-03-21 15:16:07 +01:00
006_training_types_abilities.sql feat: admin CRUD for training types + distribution chart in ActivityPage 2026-03-21 15:32:32 +01:00
007_activity_type_mappings.sql feat: learnable activity type mapping system (DB-based, auto-learning) 2026-03-21 19:31:58 +01:00
008_vitals_rest_days.sql feat: add missing migration 008 (vitals, rest days, sleep_goal_minutes) 2026-03-22 10:59:55 +01:00
009_sleep_log.sql fix: migration 009 - change profile_id from VARCHAR(36) to UUID 2026-03-22 08:22:58 +01:00
010_rest_days_jsonb.sql feat: flexible rest days system with JSONB config (v9d Phase 2a) 2026-03-22 16:20:52 +01:00
011_allow_multiple_rest_days_per_date.sql feat: multi-dimensional rest days + development routes architecture (v9d → v9e) 2026-03-22 16:51:09 +01:00
012_rest_days_unique_focus.sql feat: prevent duplicate rest day types per date (Migration 012) 2026-03-22 17:36:49 +01:00
check_features.sql feat: v9c Phase 1 - Feature consolidation & cleanup migration 2026-03-20 18:57:39 +01:00
v9c_cleanup_features.sql feat: v9c Phase 1 - Feature consolidation & cleanup migration 2026-03-20 18:57:39 +01:00
v9c_fix_features.sql fix: add missing feature check endpoint and features 2026-03-20 12:57:29 +01:00
v9c_subscription_system.sql fix: correct UUID foreign key constraints in v9c migration 2026-03-19 12:50:12 +01:00