Academy: picker de quadra/horas, slots com `court_id` e holds na agenda
Documentação KOLOS

Academy: picker de quadra/horas, slots com court_id e holds na agenda

Comportamento

  • Turmas (academy_classes) podem ter sync_court_holds: quando ativo e os slots têm court_id, são criados bookings do tipo ACADEMY_CLASS_HOLD para as próximas N semanas (config/kolos_academy.court_hold_weeks_ahead / KOLOS_ACADEMY_COURT_HOLD_WEEKS).
  • UI em Turmas na arena e Nova turma (treinador): dia da semana (nome), quadra, grelha de horas livres (conflitos com outras turmas ativas e com reservas), seleção múltipla de horas contíguas fundidas num intervalo, checkbox de reserva recorrente, linhas manuais com quadra opcional.
  • UpdateAcademyClassAction valida conflitos com exclusão da própria turma, persiste sync_court_holds e volta a sincronizar holds.

Ficheiros principais

  • src/Modules/Academy/Support/MergeContiguousAcademyPickerHours.php, ValidateAcademyScheduleSlots (UUID em court_id).
  • app/Livewire/Concerns/WithAcademyCourtSchedulePicker.php, TrainingClasses, CoachCreateAcademyClass.
  • Vistas resources/views/livewire/venue/training-classes.blade.php, .../academy/coach-create-academy-class.blade.php.

Testes

  • tests/Feature/Academy/AcademyClassCourtHoldsTest.php, MergeContiguousAcademyPickerHoursTest.php.