whereNull('deleted_at'); $serviceExists = Rule::exists('partner_agreement_services', 'id')->whereNull('deleted_at'); $rules = [ 'user_id' => 'sometimes|integer|exists:users,id', 'partner_agreement_id' => ['sometimes', 'integer', $partnerExists], 'partner_agreement_service_id' => ['sometimes', 'integer', $serviceExists], 'date' => 'sometimes|date', 'time' => 'sometimes|date_format:H:i', 'observations' => 'sometimes|nullable|string', 'status' => ['sometimes', Rule::enum(AppointmentStatusEnum::class)], ]; if ($this->isMethod('post')) { $rules['user_id'] = 'required|integer|exists:users,id'; $rules['partner_agreement_id'] = ['required', 'integer', $partnerExists]; $rules['partner_agreement_service_id'] = ['required', 'integer', $serviceExists]; } return $rules; } }