-
Mahmoud Aglan authored
ScheduleConflictService checks ALL sources of trainer/group conflicts: - TrainingSchedule (recurring weekly assignments) - TrainingSession (specific date overrides) - TrainingGroup.head_trainer_id (implied trainer commitment) - Assignment model (formal polymorphic assignments) Schedule Builder improvements: - Flexible time picker (any minute interval, not just hourly) - Trainer availability indicators (green dot = free, orange = busy) - Group availability indicators (red warning if scheduled elsewhere) - Implied trainer warnings (group's head trainer conflict = soft warning) - New vs existing assignments visually distinct (green = unsaved) - Trainer name shown on existing reservations - Row/column/all selection helpers - Recurring booking checks group + trainer + space conflicts per date - Cancel series now deactivates the underlying TrainingSchedule - Final validation pass before commit (double-check for race conditions) Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
4794a02c