['required', 'exists:deceased,id'], 'client_id' => ['nullable', 'exists:clients,id'], 'vehicle_id' => ['nullable', 'exists:vehicles,id'], 'mission_title' => ['nullable', 'string', 'max:255'], 'convoy_type' => ['nullable', Rule::in(['local', 'national', 'international'])], 'transport_mode' => ['nullable', Rule::in(['road', 'air', 'sea', 'rail'])], 'status' => ['nullable', Rule::in(['planned', 'in_progress', 'completed', 'cancelled'])], 'planned_start_at' => ['required', 'date'], 'estimated_end_at' => ['nullable', 'date', 'after_or_equal:planned_start_at'], 'family_email' => ['nullable', 'email', 'max:255'], 'automatic_notifications' => ['nullable', 'boolean'], 'departure_location_selection_mode' => ['nullable', Rule::in(['place', 'manual'])], 'departure_location_id' => ['nullable', 'exists:client_locations,id'], 'departure_name' => ['nullable', 'string', 'max:255'], 'departure_address' => ['nullable', 'string', 'max:255'], 'departure_city' => ['nullable', 'string', 'max:255'], 'departure_postal_code' => ['nullable', 'string', 'max:20'], 'departure_country_code' => ['nullable', 'string', 'size:2'], 'departure_latitude' => ['nullable', 'numeric', 'between:-90,90'], 'departure_longitude' => ['nullable', 'numeric', 'between:-180,180'], 'departure_additional_details' => ['nullable', 'string'], ]; } }