| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- namespace App\Http\Requests;
- use Illuminate\Foundation\Http\FormRequest;
- use Illuminate\Validation\Rule;
- class ClientFavoriteProviderRequest extends FormRequest
- {
- public function authorize(): bool
- {
- return true;
- }
- public function rules(): array
- {
- $clientId = $this->input('client_id');
- $favoriteId = $this->route('id');
- $rules = [
- 'client_id' => ['sometimes', 'integer', 'exists:clients,id'],
- 'provider_id' => [
- 'sometimes',
- 'integer',
- 'exists:providers,id',
- Rule::unique('client_favorite_providers', 'provider_id')
- ->where('client_id', $clientId)
- ->whereNull('deleted_at')
- ->ignore($favoriteId),
- ],
- 'notes' => ['nullable', 'string', 'max:1000'],
- ];
- if ($this->isMethod('POST')) {
- $rules['client_id'] = ['required', 'integer', 'exists:clients,id'];
- $rules['provider_id'] = [
- 'required',
- 'integer',
- 'exists:providers,id',
- Rule::unique('client_favorite_providers', 'provider_id')
- ->where('client_id', $clientId)
- ->whereNull('deleted_at')
- ->ignore($favoriteId),
- ];
- }
- return $rules;
- }
- public function messages(): array
- {
- return [
- 'client_id.required' => 'O cliente é obrigatório.',
- 'client_id.exists' => 'Cliente não encontrado.',
- 'provider_id.required' => 'O prestador é obrigatório.',
- 'provider_id.exists' => 'Prestador não encontrado.',
- 'provider_id.unique' => 'Este prestador já está favoritado.',
- 'notes.max' => 'As observações não podem exceder 1000 caracteres.',
- ];
- }
- }
|