StateRequest.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Http\Requests;
  3. use Illuminate\Foundation\Http\FormRequest;
  4. use App\Enums\DefaultStatusEnum;
  5. use Illuminate\Validation\Rule;
  6. class StateRequest extends FormRequest
  7. {
  8. public function rules(): array
  9. {
  10. $rules = [
  11. 'name' => 'sometimes|string|max:255',
  12. 'code' => 'sometimes|string|size:2',
  13. 'country_id' => 'sometimes|exists:countries,id',
  14. 'status' => ['sometimes', Rule::enum(DefaultStatusEnum::class)],
  15. ];
  16. if ($this->isMethod('post')) {
  17. $rules['name'] = [
  18. 'required',
  19. 'string',
  20. 'max:255',
  21. Rule::unique('states')->where(function ($query) {
  22. return $query->where('country_id', $this->country_id);
  23. })
  24. ];
  25. $rules['code'] = [
  26. 'required',
  27. 'string',
  28. 'size:2',
  29. Rule::unique('states')->where(function ($query) {
  30. return $query->where('country_id', $this->country_id);
  31. })
  32. ];
  33. $rules['country_id'] = 'required|exists:countries,id';
  34. $rules['status'] = ['required', Rule::enum(DefaultStatusEnum::class)];
  35. }
  36. return $rules;
  37. }
  38. }