Reservas: bloqueio por horário de turma Academy (slot semanal)
Documentação KOLOS

Reservas: bloqueio por horário de turma Academy (slot semanal)

Data: 2026-04-09

Problema

Era possível criar BOOKING / MAINTENANCE num intervalo onde existe academy_class_schedule_slot na mesma quadra quando não havia linha ACADEMY_CLASS_HOLD (ex.: dias já passados na janela de sync). Na agenda, o bloco “Padrão semanal” desaparecia porque a grelha omite o padrão quando qualquer booking sobrepõe o intervalo.

Comportamento

  • CreateBookingAction passa a recusar (com BookingConflictException) sobreposição com slots semanais de turmas não arquivadas na mesma court_id, exceto quando o tipo é ACADEMY_CLASS_HOLD (sync de holds).

Ficheiros

  • src/Modules/Academy/Support/ProposedBookingOverlapsAcademyCourtSlot.php
  • src/Modules/Booking/Actions/CreateBookingAction.php
  • tests/Feature/Booking/CreateBookingActionTest.php

Validação

  • vendor/bin/sail exec laravel.test php artisan test tests/Feature/Booking/CreateBookingActionTest.php tests/Feature/Academy/AcademyClassCourtHoldsTest.php