feat: add flight request validation
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
<?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' => 'ظرفیت باید حداقل ۱ باشد.',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class FlightUpdateRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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'
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user