ClientFavoriteProviderRequest.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Http\Requests;
  3. use Illuminate\Foundation\Http\FormRequest;
  4. use Illuminate\Validation\Rule;
  5. class ClientFavoriteProviderRequest extends FormRequest
  6. {
  7. public function authorize(): bool
  8. {
  9. return true;
  10. }
  11. public function rules(): array
  12. {
  13. $clientId = $this->input('client_id');
  14. $favoriteId = $this->route('id');
  15. return [
  16. 'client_id' => ['required', 'integer', 'exists:clients,id'],
  17. 'provider_id' => [
  18. 'required',
  19. 'integer',
  20. 'exists:providers,id',
  21. Rule::unique('client_favorite_providers', 'provider_id')
  22. ->where('client_id', $clientId)
  23. ->whereNull('deleted_at')
  24. ->ignore($favoriteId),
  25. ],
  26. 'notes' => ['nullable', 'string', 'max:1000'],
  27. ];
  28. }
  29. public function messages(): array
  30. {
  31. return [
  32. 'client_id.required' => 'O cliente é obrigatório.',
  33. 'client_id.exists' => 'Cliente não encontrado.',
  34. 'provider_id.required' => 'O prestador é obrigatório.',
  35. 'provider_id.exists' => 'Prestador não encontrado.',
  36. 'provider_id.unique' => 'Este prestador já está favoritado.',
  37. 'notes.max' => 'As observações não podem exceder 1000 caracteres.',
  38. ];
  39. }
  40. }