*/ public function rules(): array { return [ 'rahdaran' => 'array', 'rahdaran.*' => 'exists:rahdaran,id', 'machines' => 'required|array', 'machines.*' => 'required|integer|exists:cmms_machines,id', 'driver' => 'required|integer|exists:rahdaran,id', 'zone' => 'required|in:1,2,3', 'start_date' => 'required|date', 'end_date' => 'required|date', 'end_point' => 'required|string', 'area' => 'required|array', 'area.type' => 'required|string', 'area.coordinates' => 'required|array', 'category_id' => 'required|in:1,2,3', ]; } public function after(): array { return [ function (Validator $validator) { $start = Carbon::parse($this->start_date); $end = Carbon::parse($this->end_date); $now = Carbon::now(); if ($end->diffInMinutes($now) > 0 || $start->diffInMinutes($now) > 0) { $validator->errors()->add( 'end_date', 'امکان ثبت ماموریت بدون فرایند با توجه به زمان انتخابی مقدور نمی باشد.' ); } } ]; } }