'sometimes|integer|exists:partner_agreements,id', 'service_number' => 'sometimes|nullable|string|max:50', 'name' => 'sometimes|string|max:255', 'description' => 'sometimes|nullable|string', 'category_id' => 'sometimes|nullable|integer|exists:categories,id', 'price' => 'sometimes|nullable|numeric|min:0', 'associate_price' => 'sometimes|nullable|numeric|min:0', 'supplier_price' => 'sometimes|nullable|numeric|min:0', 'requires_scheduling' => 'sometimes|boolean', 'status' => ['sometimes', Rule::enum(PartnerAgreementServiceStatusEnum::class)], ]; if ($this->isMethod('post')) { $rules['partner_agreement_id'] = 'required|integer|exists:partner_agreements,id'; $rules['name'] = 'required|string|max:255'; } return $rules; } }