File manager - Edit - /var/www/html/portalHomolog/app/Http/Requests/TurisAngra/EmpresasDeTurismo/EmpresaTurismoRequest.php
Back
<?php namespace App\Http\Requests\TurisAngra\EmpresasDeTurismo; use Illuminate\Foundation\Http\FormRequest; use App\Models\User; use App\Helpers\EmpresaTurismoFileHelper; class EmpresaTurismoRequest extends FormRequest { /** * Autoriza o uso do request. */ public function authorize(): bool { return true; } private function getUserWithEmail($email) : ?User { $user = User::where("email", $email)->first(); if($user != null && $user->exists){ return $user; } return null; } /** * Regras de validação. */ public function rules(): array { $empresaTurismo = $this->route('empresaTurismo'); $empresa = $empresaTurismo ? $empresaTurismo->empresa_id : null; $rules = [ // Dados da empresa 'razaoSocial' => 'required|string|max:255', 'nomeFantasia' => 'required|string|max:255', 'numeroInscricaoMunicipal' => 'required|numeric|unique:empresas,numeroInscricaoMunicipal,' . $empresa, 'cnpj' => 'required|string|regex:/^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/|unique:empresas,cnpj,' . $empresa, 'anoAbertura' => [ 'required', 'digits:4', 'integer', 'min:1900', 'max:' . date('Y'), ], 'telefone' => 'required|string|max:20', 'celular' => 'required|string|max:20', 'possui_whatsapp' => 'required|boolean', 'email' => 'required|email|max:100|unique:empresas,email,' . $empresa, 'site' => 'nullable|url|max:255', 'cadastur' => 'required|string|max:20', 'cadasturVencimento' => 'nullable|date', // Responsável legal "fullNameResponsavelEmpresa" => "required|string|max:100|regex:/^[A-Za-zÀ-ÿ\s]+$/", "cpfResponsavelEmpresa" => "required|string|max:14|regex:/^\d{3}\.\d{3}\.\d{3}-\d{2}$/", "emailResponsavelEmpresa" => "required|email|max:100", "phoneNumberResponsavelEmpresa" => 'required|string|max:20', "photoResponsavelEmpresa" => "nullable|image|mimes:jpeg,jpg,png,gif|mimetypes:image/jpeg,image/png,image/gif|max:2048", // Preposto (só se checkbox marcado) 'fullNamePrepostoEmpresa' => 'nullable|string|max:100|regex:/^[A-Za-zÀ-ÿ\s]+$/', 'cpfPrepostoEmpresa' => 'nullable|string|regex:/^\d{3}\.\d{3}\.\d{3}-\d{2}$/', 'emailPrepostoEmpresa' => 'nullable|email|max:100', 'phoneNumberPrepostoEmpresa' => 'nullable|string|max:20', 'photoPrepostoEmpresa' => 'nullable|image|mimes:jpeg,jpg,png,gif|mimetypes:image/jpeg,image/png,image/gif', // Endereço 'cep' => 'required|string|max:10', 'logradouro' => 'required|string|max:255', 'numero' => 'nullable|string|max:20', 'complemento' => 'nullable|string|max:255', 'bairro' => 'required|string|max:255', 'cidade' => 'required|string|max:255', 'uf' => 'required|string|size:2', 'latitude' => 'nullable|numeric|between:-90,90', 'longitude' => 'nullable|numeric|between:-180,180', // Documentos "comprovante" => "nullable|file|mimes:jpeg,jpg,png,gif,pdf|mimetypes:image/jpeg,image/png,image/gif,application/pdf|max:2048", 'contratoSocial' => 'nullable|file|mimes:pdf,jpeg,png|max:102400', 'cartaoCNPJ' => 'nullable|file|mimes:pdf,jpeg,png|max:102400', 'registroJuntaComercial' => 'nullable|file|mimes:pdf,jpeg,png|max:102400', 'alvaraDeFuncionamento' => 'nullable|file|mimes:pdf,jpeg,png|max:102400', 'inscricaoEstadual' => 'nullable|file|mimes:pdf,jpeg,png|max:102400', 'inscricaoMunicipal' => 'nullable|file|mimes:pdf,jpeg,png|max:102400', // Status "status" => 'required|in:ATIVADO,DESATIVADO', ]; $rules = array_merge($rules, EmpresaTurismoFileHelper::documentLinkValidationRules()); if ($this->has('checkPrepostoEmpresa') && $this->checkPrepostoEmpresa) { $rules['fullNamePrepostoEmpresa'] = 'required|string|max:100|regex:/^[A-Za-zÀ-ÿ\s]+$/'; $rules['cpfPrepostoEmpresa'] = 'required|string|regex:/^\d{3}\.\d{3}\.\d{3}-\d{2}$/'; $rules['emailPrepostoEmpresa'] = 'required|email|max:100'; $rules['phoneNumberPrepostoEmpresa'] = 'required|string|max:20'; } return $rules; } protected function prepareForValidation(): void { $this->merge([ 'possui_whatsapp' => filter_var($this->input('possui_whatsapp', '0'), FILTER_VALIDATE_BOOLEAN), ]); } /** * Mensagens personalizadas de erro. */ public function messages(): array { $messages = [ // Empresa 'razaoSocial.required' => 'A razão social é obrigatória.', 'nomeFantasia.required' => 'O nome fantasia é obrigatório.', 'numeroInscricaoMunicipal.required' => 'O número de inscrição municipal é obrigatório.', 'numeroInscricaoMunicipal.numeric' => 'A inscrição municipal deve conter apenas números.', 'numeroInscricaoMunicipal.unique' => 'A inscrição municipal já está cadastrada.', 'cnpj.required' => 'O CNPJ é obrigatório.', 'cnpj.unique' => 'O CNPJ já está cadastrado.', 'cnpj.regex' => 'Informe um CNPJ válido no formato 00.000.000/0000-00.', 'anoAbertura.required' => __('O ano de abertura é obrigatório.'), 'anoAbertura.digits' => __('O ano de abertura deve conter exatamente 4 dígitos.'), 'anoAbertura.integer' => __('O ano de abertura informado é inválido.'), 'anoAbertura.min' => __('O ano de abertura informado é inválido.'), 'anoAbertura.max' => __('O ano de abertura não pode ser maior que o ano atual.'), 'telefone.required' => 'O telefone é obrigatório.', 'celular.required' => 'O celular é obrigatório.', 'possui_whatsapp.required' => __('Informe se o celular da empresa tem WhatsApp.'), 'possui_whatsapp.boolean' => __('O campo Tem WhatsApp? deve ser Sim ou Não.'), 'email.required' => 'O e-mail da empresa é obrigatório.', 'email.email' => 'Informe um e-mail válido para a empresa.', 'site.url' => 'O site deve ser uma URL válida.', 'cadastur.required' => 'O campo Cadastrur é obrigatório.', // 'cadastur.string' => 'É permitido apenas números para o campo Cadastrur.', 'cadastur.max' => 'O campo do Cadastrur tem limite máximo de 20 dígitos', 'cadasturVencimento.date' => __('A data de vencimento do CADASTUR é inválida.'), // Responsável 'fullNameResponsavelEmpresa.required' => 'O nome completo do responsável é obrigatório.', 'fullNameResponsavelEmpresa.regex' => 'O nome do responsável deve conter apenas letras e espaços.', 'fullNameResponsavelEmpresa.string' => 'O nome completo do responsável é obrigatório.', 'cpfResponsavelEmpresa.required' => 'O CPF do responsável é obrigatório.', 'cpfResponsavelEmpresa.regex' => 'O CPF do responsável deve estar no formato 000.000.000-00.', 'cpfResponsavelEmpresa.string' => 'O CPF do responsável deve estar no formato 000.000.000-00.', 'emailResponsavelEmpresa.required' => 'O e-mail do responsável é obrigatório.', 'emailResponsavelEmpresa.email' => 'Informe um e-mail válido para o responsável.', 'phoneNumberResponsavelEmpresa.required' => 'O telefone do responsável é obrigatório.', 'photoResponsavelEmpresa.image' => 'A foto do responsável deve ser uma imagem válida.', // Preposto 'fullNamePrepostoEmpresa.required' => 'O nome completo do preposto é obrigatório quando autorizado.', 'fullNamePrepostoEmpresa.regex' => 'O nome do preposto deve conter apenas letras e espaços.', 'fullNamePrepostoEmpresa.string' => 'O nome do preposto deve ser preenchido.', 'cpfPrepostoEmpresa.required' => 'O CPF do preposto é obrigatório quando autorizado.', 'cpfPrepostoEmpresa.regex' => 'O CPF do preposto deve estar no formato 000.000.000-00.', 'cpfPrepostoEmpresa.string' => 'O CPF do preposto deve estar no formato 000.000.000-00.', 'emailPrepostoEmpresa.required' => 'O e-mail do preposto é obrigatório quando autorizado.', 'emailPrepostoEmpresa.email' => 'Informe um e-mail válido para o preposto.', 'phoneNumberPrepostoEmpresa.required' => 'O telefone do preposto é obrigatório quando autorizado.', 'phoneNumberPrepostoEmpresa.string' => 'O telefone do preposto é obrigatório.', 'photoPrepostoEmpresa.image' => 'A foto do preposto deve ser uma imagem válida.', // Endereço 'cep.required' => 'O CEP é obrigatório.', 'logradouro.required' => 'O logradouro é obrigatório.', 'bairro.required' => 'O bairro é obrigatório.', 'cidade.required' => 'A cidade é obrigatória.', 'uf.required' => 'O estado (UF) é obrigatório.', 'uf.size' => 'A UF deve conter exatamente 2 letras (por exemplo, RJ, SP, MG).', 'latitude.numeric' => 'A latitude deve ser um número válido (use ponto como separador decimal).', 'latitude.between' => 'A latitude deve estar entre -90 e 90 graus.', 'longitude.numeric' => 'A longitude deve ser um número válido (use ponto como separador decimal).', 'longitude.between' => 'A longitude deve estar entre -180 e 180 graus.', // Documentos 'comprovante.mimes' => 'O comprovante deve ser nos formatos: jpeg, jpg, png, gif ou pdf.', 'comprovante.mimetypes' => 'O comprovante deve ser nos formatos: jpeg, jpg, png, gif ou pdf.', 'contratoSocial.mimes' => 'O contrato social deve ser PDF ou imagem.', 'contratoSocial.mimetypes' => 'O contrato social deve ser PDF ou imagem.', 'cartaoCNPJ.mimes' => 'O cartão do CNPJ deve ser PDF ou imagem.', 'cartaoCNPJ.mimetypes' => 'O cartão do CNPJ deve ser PDF ou imagem.', 'registroJuntaComercial.mimes' => 'O registro da junta comercial deve ser PDF ou imagem.', 'registroJuntaComercial.mimetypes' => 'O registro da junta comercial deve ser PDF ou imagem.', 'alvaraDeFuncionamento.mimes' => 'O alvará deve ser PDF ou imagem.', 'alvaraDeFuncionamento.mimetypes' => 'O alvará deve ser PDF ou imagem.', 'inscricaoEstadual.mimes' => 'A inscrição estadual deve ser PDF ou imagem.', 'inscricaoEstadual.mimetypes' => 'A inscrição estadual deve ser PDF ou imagem.', 'inscricaoMunicipal.mimes' => 'A inscrição municipal deve ser PDF ou imagem.', 'inscricaoMunicipal.mimetypes' => 'A inscrição municipal deve ser PDF ou imagem.', // Status 'status.required' => 'O status da empresa é obrigatório.', 'status.in' => 'O status deve ser ATIVADO ou DESATIVADO.', ]; return array_merge($messages, EmpresaTurismoFileHelper::documentLinkValidationMessages()); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings