input('email'); $telefone = $this->input('telefone'); $this->merge([ 'email' => is_string($email) ? mb_strtolower(trim($email)) : $email, 'telefone' => is_string($telefone) ? BrazilianPhoneNumber::normalize($telefone) : $telefone, ]); } /** * @return array> */ public function rules(): array { return [ 'nome' => ['required', 'string', 'max:120'], 'email' => ['required', 'email', 'max:254'], 'telefone' => ['required', 'string', 'max:40'], 'tipo_evento' => ['required', 'string', 'max:80'], 'data_periodo' => ['nullable', 'string', 'max:80'], 'cidade' => ['required', 'string', 'max:80'], 'convidados' => ['nullable', 'integer', 'min:1', 'max:100000'], 'servico_interesse' => ['nullable', 'string', 'max:120'], 'mensagem' => ['required', 'string', 'max:3000'], 'privacidade' => ['accepted'], ]; } /** * @return array */ public function messages(): array { return [ 'nome.required' => 'Informe seu nome completo.', 'nome.max' => 'O nome deve ter no máximo :max caracteres.', 'email.required' => 'Informe seu e-mail.', 'email.email' => 'Informe um e-mail válido.', 'email.max' => 'O e-mail deve ter no máximo :max caracteres.', 'telefone.required' => 'Informe um telefone ou WhatsApp.', 'telefone.max' => 'O telefone deve ter no máximo :max caracteres.', 'tipo_evento.required' => 'Selecione o tipo de evento.', 'tipo_evento.max' => 'O tipo de evento deve ter no máximo :max caracteres.', 'data_periodo.max' => 'A data ou período deve ter no máximo :max caracteres.', 'cidade.required' => 'Informe a cidade do evento.', 'cidade.max' => 'A cidade deve ter no máximo :max caracteres.', 'convidados.integer' => 'Informe um número de convidados válido.', 'convidados.min' => 'O número de convidados deve ser maior que zero.', 'convidados.max' => 'O número de convidados informado é inválido.', 'servico_interesse.max' => 'O serviço deve ter no máximo :max caracteres.', 'mensagem.required' => 'Conte brevemente o que você precisa.', 'mensagem.max' => 'A mensagem deve ter no máximo :max caracteres.', 'privacidade.accepted' => 'Você precisa aceitar a política de privacidade.', ]; } }