5b68f4fa38
- Booking model with booking_vehicle_options line items (supports mixing vehicle options like front_seat + back_seat in one booking), price snapshot, status machine, and driver/car assignment fields - BookingService: front-seat max, disabled-option toggles, duplicate-option and whole-vehicle-exclusivity guards - CreateBookingAction, CancelBookingAction, AssignDriverAction - BookingRefGenerator: sequential EVB-AAAAA1-style refs via row lock - POST/GET/cancel booking API endpoints (Sanctum, ownership + admin policy) - BookingPlugin + Filament BookingResource: list, detail view, Cancel and Assign Driver actions (shared between table and detail page) - domain.md updated for multi-vehicle-option bookings (§2) and driver/ vehicle assignment (§5a)
39 lines
873 B
PHP
39 lines
873 B
PHP
<?php
|
|
|
|
namespace Modules\Booking;
|
|
|
|
use Filament\Contracts\Plugin;
|
|
use Filament\Panel;
|
|
|
|
class BookingPlugin implements Plugin
|
|
{
|
|
public function getId(): string
|
|
{
|
|
return 'booking';
|
|
}
|
|
|
|
public function register(Panel $panel): void
|
|
{
|
|
$panel
|
|
->discoverResources(
|
|
in: __DIR__.'/Filament/Resources',
|
|
for: 'Modules\Booking\Filament\Resources',
|
|
)
|
|
->discoverPages(
|
|
in: __DIR__.'/Filament/Pages',
|
|
for: 'Modules\Booking\Filament\Pages',
|
|
)
|
|
->discoverWidgets(
|
|
in: __DIR__.'/Filament/Widgets',
|
|
for: 'Modules\Booking\Filament\Widgets',
|
|
);
|
|
}
|
|
|
|
public function boot(Panel $panel): void {}
|
|
|
|
public static function make(): static
|
|
{
|
|
return app(static::class);
|
|
}
|
|
}
|