Files
shahrzadzandi09/app/Http/Requests/FlightStoreRequest.php
T

122 lines
3.7 KiB
PHP

<?php
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class FlightStoreRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
// return true;
return auth('admin')->user()?->canManageFlights('create') ?? false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'travel_type_id' =>
[
'required',
'exists:travel_types,id'
],
'flight_number' => [
'required',
'string',
'max:50'
],
'airline_name' =>
[
'required',
'string',
'max:150'
],
'origin' =>
[
'required',
'string',
'max:150'
],
'destination' =>
[
'required',
'string',
'max:100'
],
'departure_date' =>
[
'required',
'date'
],
'departure_time' =>
[
'required',
'date_format:H:i'
],
'arrival_date' =>
[
'required',
'date',
'after_or_equal:departure_date'
],
'arrival_time' =>
[
'required',
'date_format:H:i'
],
'duration' =>
[
'required',
'string',
'max:50'
],
'price' =>
[
'required',
'numeric',
'min:0'
],
'capacity' =>
[
'required',
'integer',
'min:1'
],
'status' =>
[
'required',
'in:0,1'
],
];
}
public function messages(): array
{
return [
'travel_type_id.required' => 'نوع سفر را انتخاب کنید.',
'travel_type_id.exists' => 'نوع سفر انتخاب‌شده معتبر نیست.',
'flight_number.required' => 'شماره پرواز الزامی است.',
'airline_name.required' => 'نام ایرلاین الزامی است.',
'origin.required' => 'مبدأ الزامی است.',
'destination.required' => 'مقصد الزامی است.',
'departure_date.required' => 'تاریخ حرکت الزامی است.',
'departure_date.after_or_equal:today' => 'تاریخ حرکت نمی‌تواند قبل از امروز باشد.',
'arrival_date.required' => 'تاریخ رسیدن الزامی است.',
'arrival_date.after_or_equal:departure_date' => 'تاریخ رسیدن باید بعد از تاریخ حرکت باشد.',
'price.required' => 'قیمت الزامی است.',
'price.min' => 'قیمت نمی‌تواند منفی باشد.',
'capacity.min' => 'ظرفیت باید حداقل ۱ باشد.',
];
}
}