* chore: add husky pre-commit and pre-push hooks * feat: frontend audit — formulário de contato, a11y, SEO, performance e conteúdo * test: regenerate visual baselines from CI environment
58 lines
2.5 KiB
PHP
58 lines
2.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Requests\PublicSite;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
final class ContactBriefingRequest extends FormRequest
|
|
{
|
|
/**
|
|
* @return array<string, array<int, string>>
|
|
*/
|
|
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<string, string>
|
|
*/
|
|
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.',
|
|
];
|
|
}
|
|
}
|