UserDependentRequest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Enums\KinshipEnum;
  4. use App\Enums\UserDependentStatusEnum;
  5. use Illuminate\Foundation\Http\FormRequest;
  6. use Illuminate\Validation\Rule;
  7. class UserDependentRequest extends FormRequest
  8. {
  9. protected function prepareForValidation(): void
  10. {
  11. $user = $this->user();
  12. if ($user?->isAssociado()) {
  13. $this->merge(['responsible_user_id' => $user->id]);
  14. }
  15. }
  16. public function rules(): array
  17. {
  18. $rules = [
  19. 'responsible_user_id' => 'sometimes|integer|exists:users,id',
  20. 'name' => 'sometimes|string|max:255',
  21. 'kinship' => ['sometimes', Rule::enum(KinshipEnum::class)],
  22. 'status' => ['sometimes', Rule::enum(UserDependentStatusEnum::class)],
  23. ];
  24. if ($this->isMethod('post')) {
  25. $rules['responsible_user_id'] = 'required|integer|exists:users,id';
  26. $rules['name'] = 'required|string|max:255';
  27. $rules['kinship'] = ['required', Rule::enum(KinshipEnum::class)];
  28. $rules['document'] = 'required|file|mimes:jpg,jpeg,png,webp,pdf|max:' . config('uploads.max_size_kb');
  29. }
  30. return $rules;
  31. }
  32. }