UserRequest.php 1.0 KB

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