feat: valida dados do formulário para adição de clients.
This commit is contained in:
parent
b8dadb0292
commit
6d6749964e
|
|
@ -0,0 +1,86 @@
|
|||
<?php
|
||||
|
||||
namespace App\Livewire\Forms;
|
||||
|
||||
use Livewire\Form;
|
||||
use App\Models\Client;
|
||||
|
||||
class ClientForm extends Form
|
||||
{
|
||||
// 2. ATRIBUTOS REMOVIDOS: Os #[Rule(...)] foram removidos daqui
|
||||
public $client_name = '';
|
||||
public $legal_name = '';
|
||||
public $cnpj = '';
|
||||
public $profile_image_path;
|
||||
public $pbx_hosting = '';
|
||||
public $activation_date;
|
||||
public $carrier = '';
|
||||
public $access_type = '';
|
||||
public $server_ip = '';
|
||||
public $root_password = '';
|
||||
public $has_call_center = false;
|
||||
public $has_voice_gateway = false;
|
||||
public $has_fop2 = false;
|
||||
public $modules = '';
|
||||
public $whatsapp_number = '';
|
||||
public $whatsapp_activation_date;
|
||||
|
||||
// Método para preencher o formulário (para edição futura)
|
||||
public function addClient(Client $client)
|
||||
{
|
||||
$data = $client->toArray();
|
||||
$data['has_call_center'] = (bool) $client->has_call_center;
|
||||
$data['has_voice_gateway'] = (bool) $client->has_voice_gateway;
|
||||
$data['has_fop2'] = (bool) $client->has_fop2;
|
||||
|
||||
$this->fill($data);
|
||||
}
|
||||
|
||||
// 4. ADICIONADO: Método de Regras
|
||||
/**
|
||||
* Define as regras de validação para o formulário.
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'client_name' => 'required|string|max:255',
|
||||
'legal_name' => 'required|string|max:255',
|
||||
'cnpj' => 'required|string|max:20|unique:clients,cnpj',
|
||||
'profile_image_path' => 'nullable|file|mimes:jpeg,png,bmp,gif,svg,webp|max:2048', // 2MB Max 'pbx_hosting' => 'nullable|string|max:255',
|
||||
'activation_date' => 'nullable|date',
|
||||
'carrier' => 'nullable|string|max:255',
|
||||
'access_type' => 'nullable|string|max:255',
|
||||
'server_ip' => 'nullable|ip',
|
||||
'root_password' => 'nullable|string',
|
||||
'has_call_center' => 'boolean',
|
||||
'has_voice_gateway' => 'boolean',
|
||||
'has_fop2' => 'boolean',
|
||||
'modules' => 'nullable|json',
|
||||
'whatsapp_number' => 'nullable|string|max:20',
|
||||
'whatsapp_activation_date' => 'nullable|date',
|
||||
];
|
||||
}
|
||||
|
||||
// 5. ADICIONADO: Método de Mensagens Customizadas
|
||||
/**
|
||||
* Define as mensagens de erro customizadas.
|
||||
*/
|
||||
public function messages()
|
||||
{
|
||||
return [
|
||||
'client_name.required' => 'O campo Nome Fantasia é obrigatório.',
|
||||
'client_name.max' => 'O Nome Fantasia não pode ter mais que 255 caracteres.',
|
||||
|
||||
'cnpj.unique' => 'Este CNPJ já está cadastrado em outro cliente.',
|
||||
|
||||
'profile_image_path.image' => 'O arquivo deve ser uma imagem válida (jpg, png, etc.).',
|
||||
'profile_image_path.max' => 'A imagem não pode ser maior que 2MB.',
|
||||
|
||||
'server_ip.ip' => 'Por favor, insira um endereço de IP válido.',
|
||||
'modules.json' => 'O campo módulos deve conter um formato JSON válido.',
|
||||
|
||||
'*.date' => 'Por favor, insira uma data válida.',
|
||||
'*.boolean' => 'Este campo deve ser verdadeiro ou falso.',
|
||||
];
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue