122 lines
3.7 KiB
PHP
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' => 'ظرفیت باید حداقل ۱ باشد.',
|
|
];
|
|
}
|
|
}
|