A Onda 3.1 (Booking) precisa de uma base mínima confiável para criar reservas de quadras:
Booking com starts_at/ends_at.Booking com:
BookingType, BookingStatus).Booking e CreateBookingAction como ponto único de escrita.BookingConflictException para feedback amigável e testes explícitos.CreateBookingAction (funciona também em testes com SQLite).EXCLUDE USING gist com tstzrange('[)') para impedir overlap por constraint.sail artisan migratesail artisan test --filter CreateBookingActionTestBookingConflictException.GET /booking (booking)
auth + role:playercreate_bookings_table com constraint de exclusão para PostgreSQL.src/Modules/Booking/* (enums, model, DTO, action, exception).app/Livewire/Booking.php + view resources/views/livewire/booking.blade.php.tests/Feature/Booking/CreateBookingActionTest.php.