PartnerAgreementServiceRequest.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Enums\PartnerAgreementServiceStatusEnum;
  4. use App\Enums\PartnerAgreementServiceTypeEnum;
  5. use Illuminate\Foundation\Http\FormRequest;
  6. use Illuminate\Validation\Rule;
  7. class PartnerAgreementServiceRequest extends FormRequest
  8. {
  9. public function rules(): array
  10. {
  11. $rules = [
  12. 'partner_agreement_id' => 'sometimes|integer|exists:partner_agreements,id',
  13. 'service_number' => 'sometimes|nullable|string|max:50',
  14. 'code_exams' => 'sometimes|nullable|string|max:50',
  15. 'name' => 'sometimes|string|max:255',
  16. 'description' => 'sometimes|nullable|string',
  17. 'type' => ['sometimes', 'nullable', Rule::enum(PartnerAgreementServiceTypeEnum::class)],
  18. 'category_id' => 'sometimes|nullable|integer|exists:categories,id',
  19. 'price' => 'sometimes|nullable|numeric|min:0',
  20. 'associate_price' => 'sometimes|nullable|numeric|min:0',
  21. 'supplier_price' => 'sometimes|nullable|numeric|min:0',
  22. 'requires_scheduling' => 'sometimes|boolean',
  23. 'status' => ['sometimes', Rule::enum(PartnerAgreementServiceStatusEnum::class)],
  24. ];
  25. if ($this->isMethod('post')) {
  26. $rules['partner_agreement_id'] = 'required|integer|exists:partner_agreements,id';
  27. $rules['name'] = 'required|string|max:255';
  28. }
  29. return $rules;
  30. }
  31. }