mission->user_id === auth()->user()->id && $this->mission->state_id == MissionStates::REJECT_BY_TRANSPORTATION->value; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules(): array { return [ 'rahdaran' => 'required|array', 'rahdaran.*' => 'exists:rahdaran,id', 'requested_machines' => 'required|array', 'type' => 'required|in:1,2', 'zone' => 'required|in:1,2,3', 'start_date' => 'required|date', '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', 'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.' ); } } } ]; } }