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', 'area' => 'required|array', 'area.type' => 'required|string', 'area.coordinates' => 'required|array', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', 'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id', ]; } 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', 'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.' ); } } }, ]; } }