trips, trip_stops, trip_timeline_events. Admin: schedule/show/cancel. Driver: start, arrive/depart/skip stops, report incident, arrive at dumpsite, release load (creates dumpsite_release row + tallies trip load), complete. Every action writes a typed timeline event with GPS. Trip number auto-generated TRIP-YYYYMMDD-NNN. Promotes dumpsite_releases.trip_id to a real FK now that trips exists. 148 feature tests passing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
24 lines
772 B
PHP
24 lines
772 B
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Trip;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
class StoreTripRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool { return true; }
|
|
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'route_id' => ['required', 'integer', 'exists:routes,id'],
|
|
'team_id' => ['required', 'integer', 'exists:collection_teams,id'],
|
|
'truck_id' => ['nullable', 'integer', 'exists:trucks,id'],
|
|
'dumpsite_id' => ['nullable', 'integer', 'exists:dumpsites,id'],
|
|
'scheduled_date' => ['required', 'date', 'after_or_equal:today'],
|
|
'scheduled_start_time' => ['nullable', 'date_format:H:i'],
|
|
'notes' => ['nullable', 'string', 'max:1000'],
|
|
];
|
|
}
|
|
}
|