mission->edare_shahri_id == auth()->user()->edarate_shahri_id && $this->mission->state_id == MissionStates::START_MISSION->value; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules(): array { return [ 'rahdaran' => 'array', 'rahdaran.*' => 'exists:rahdaran,id', 'machine_id' => 'required|integer|exists:cmms_machines,id', 'driver' => 'required|integer|exists:rahdaran,id', 'type' => 'required|in:1,2', 'zone' => 'required|in:1,2,3', 'end_date' => 'required|date', 'description' => 'string', 'end_point' => 'required|string', 'encoded_route' => 'required|string', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', 'end_km'=> 'required|string', ]; } public function after(): array { return [ function (Validator $validator) { if ($this->type == 1) { $start = Carbon::parse($this->start_date); $end = Carbon::parse($this->end_date); if ($start->diffInMinutes($end) > 480) { $validator->errors()->add( 'end_date', 'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.' ); } } if ($this->end_km < $this->mission->km) { $validator->errors()->add( 'end_km', 'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.' ); } if (strtotime($this->end_date) < strtotime($this->mission->start_time)) { $validator->errors()->add( 'time', 'زمان پایان ماموریت باید بعد از زمان شروع ماموریت باشد.' ); } }, ]; } }