86 lines
2.8 KiB
PHP
86 lines
2.8 KiB
PHP
<?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 $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 [
|
|
'name' => 'required|string|max:255',
|
|
'legal_name' => 'nullable|string|max:255',
|
|
'cnpj' => 'nullable|string|max:20',
|
|
'profile_image_path' => 'nullable|image|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 [
|
|
'name.required' => 'O campo Nome Fantasia é obrigatório.',
|
|
'name.max' => 'O Nome Fantasia não pode ter mais que 255 caracteres.',
|
|
|
|
'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.',
|
|
];
|
|
}
|
|
}
|