using Microsoft.AspNetCore.Mvc.RazorPages; namespace Nalu.Web.Pages.Validadores; public class IndexModel : PageModel { public record ComingSoonItem(string Icon, string Slug, string Description); public IReadOnlyList Brazilian { get; } = [ new("🆔", "validate_cpf", "Valida CPF com mod 11. Formata XXX.XXX.XXX-XX.", 3), new("📮", "validate_cep", "Extrai CEP e retorna endereço enriquecido.", 3), new("📱", "validate_phone_br", "Extrai telefone com DDD. Valida DDDs ANATEL.", 3), new("🏢", "validate_cnpj", "Valida CNPJ com mod 11. Formata XX.XXX.XXX/XXXX-XX.", 3), new("🚗", "validate_plate_br", "Placa Mercosul e formato antigo. Aceita por extenso.", 3), ]; public IReadOnlyList Universal { get; } = [ new("✉️", "validate_email", "Extrai email e corrige typos de domínio (gmail→gmail.com).", 3), new("🌍", "validate_postal_code", "Código postal internacional (não CEP).", 3), new("🔤", "validate_full_name", "Extrai nome completo, ignora saudações e títulos.", 3), new("☑️", "validate_yes_no", "Detecta sim/não em qualquer idioma e forma indireta.", 3), new("🎂", "validate_birthdate", "Data de nascimento em qualquer formato. Detecta menores.", 3), new("🤝", "validate_handoff", "Detecta intenção de falar com humano. Classifica urgência.", 3), new("🚫", "validate_cancel_intent", "Diferencia cancelamento de serviço vs operação atual.", 3), new("🏢", "validate_company_name", "Extrai nome de empresa. Detecta sufixos legais.", 3), new("🧠", "validate_reply", "Analisa contexto conversacional. Detecta contrapropostas, handoffs, cancelamentos.", 5, IsNew: true), ]; public IReadOnlyList ComingSoonUniversal { get; } = [ new("📅", "date-relative", "\"amanhã\", \"semana que vem\", \"dia 15\""), new("🕐", "time", "\"de tardezinha\", \"lá pelas 3\", \"after lunch\""), new("📍", "address-full", "Endereço completo extraído e estruturado"), new("💰", "currency-amount", "Valores monetários em qualquer moeda"), new("🔢", "number-in-context", "Números que mudam de sentido pelo contexto"), new("👥", "count-people", "\"eu e minha esposa\" → 2 pessoas"), new("⭐", "rating", "\"uns 7 eu acho\" → nota 7"), new("😤", "sentiment", "Detecta insatisfação antes do handoff"), new("🎯", "preference", "\"o do meio\" → extrai opção B"), new("✅", "confirmation-with-changes", "\"sim mas é 200\" → confirma parcial"), ]; public IReadOnlyList ComingSoonBrazilian { get; } = [ new("💰", "amount-brl", "Valores em R$ com contexto"), new("🔑", "pix-key", "Chave Pix (CPF, email, telefone, aleatória)"), new("📋", "renavam", "RENAVAM de veículo"), new("📋", "ie-by-state", "Inscrição Estadual com validação por UF"), new("📋", "pis-nis", "PIS/NIS/PASEP"), ]; public void OnGet() { } }