diff --git a/app/Http/Requests/FlightStoreRequest.php b/app/Http/Requests/FlightStoreRequest.php new file mode 100644 index 0000000..2c52ad6 --- /dev/null +++ b/app/Http/Requests/FlightStoreRequest.php @@ -0,0 +1,121 @@ +user()?->canManageFlights('create') ?? false; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array|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' => 'ظرفیت باید حداقل ۱ باشد.', + ]; + } +} diff --git a/app/Http/Requests/FlightUpdateRequest.php b/app/Http/Requests/FlightUpdateRequest.php new file mode 100644 index 0000000..942065b --- /dev/null +++ b/app/Http/Requests/FlightUpdateRequest.php @@ -0,0 +1,101 @@ +|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' + ], + ]; + } +}