ClientFavoriteProviderByCodeRequest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Models\Provider;
  4. use Illuminate\Foundation\Http\FormRequest;
  5. class ClientFavoriteProviderByCodeRequest extends FormRequest
  6. {
  7. public function authorize(): bool
  8. {
  9. return true;
  10. }
  11. protected function prepareForValidation(): void
  12. {
  13. $this->merge([
  14. 'code' => Provider::normalizeShareCode($this->input('code')),
  15. ]);
  16. }
  17. public function rules(): array
  18. {
  19. return [
  20. 'client_id' => ['required', 'integer', 'exists:clients,id'],
  21. 'code' => [
  22. 'required',
  23. 'string',
  24. 'size:'.Provider::SHARE_CODE_LENGTH,
  25. 'regex:/^['.Provider::SHARE_CODE_ALPHABET.']+$/',
  26. ],
  27. ];
  28. }
  29. public function messages(): array
  30. {
  31. return [
  32. 'client_id.required' => __('requests.client_favorite_provider.client_required'),
  33. 'client_id.exists' => __('requests.client_favorite_provider.client_not_found'),
  34. 'code.required' => __('requests.client_favorite_provider.code_required'),
  35. 'code.size' => __('requests.client_favorite_provider.code_invalid'),
  36. 'code.regex' => __('requests.client_favorite_provider.code_invalid'),
  37. ];
  38. }
  39. }