UserRequest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Enums\LanguageEnum;
  4. use App\Enums\UserTypeEnum;
  5. use Illuminate\Foundation\Http\FormRequest;
  6. use Illuminate\Validation\Rule;
  7. class UserRequest extends FormRequest
  8. {
  9. public function rules(): array
  10. {
  11. $rules = [
  12. 'avatar' => 'sometimes|string|nullable',
  13. 'name' => 'sometimes|string|nullable',
  14. 'email' => [
  15. 'sometimes',
  16. 'email',
  17. Rule::unique('users', 'email')->ignore($this->route('id')),
  18. ],
  19. 'password' => 'sometimes|string|nullable',
  20. 'type' => ['sometimes', Rule::enum(UserTypeEnum::class)],
  21. 'language' => ['sometimes', Rule::enum(LanguageEnum::class)],
  22. 'phone' => 'sometimes|string|nullable',
  23. ];
  24. if ($this->isMethod('post')) {
  25. $rules['name'] = 'required|string|max:255';
  26. $rules['email'] = 'required|email|unique:users,email';
  27. $rules['password'] = 'required|string|min:6';
  28. if (! $this->has('language')) {
  29. $this->merge(['language' => LanguageEnum::PORTUGUESE->value]);
  30. }
  31. }
  32. return $rules;
  33. }
  34. }