import FerramentaLayout from '../../components/ferramentas/FerramentaLayout';
import SEO from '../../components/SEO';
import { createFAQSchema, createBreadcrumbSchema } from '../../config/schema';
import { Shield } from 'lucide-react';
import { checkSPF } from '../../components/ferramentas/dnsApi';

const faqData = [
  { q: 'O que e SPF?', a: 'SPF (Sender Policy Framework) e um registro DNS que define quais servidores de e-mail estao autorizados a enviar mensagens em nome do seu dominio. Ele ajuda a prevenir spoofing e phishing.' },
  { q: 'Por que o SPF e importante para empresas?', a: 'Sem SPF, qualquer pessoa pode enviar e-mails falsos usando o nome do seu dominio. Isso facilita ataques de phishing que usam sua marca para enganar clientes e funcionarios.' },
  { q: 'Como configurar SPF no Microsoft 365?', a: 'Adicione um registro TXT no DNS com: v=spf1 include:_spf.microsoft.com ~all. Depois de testar, mude ~all para -all para protecao total.' },
  { q: 'Qual a diferenca entre ~all e -all?', a: '~all (softfail) marca e-mails nao autorizados como suspeitos. -all (hardfail) instrui provedores a rejeitar e-mails de servidores nao listados.' },
  { q: 'Quantos includes posso ter no SPF?', a: 'O SPF permite no maximo 10 lookups DNS. Mais que isso gera erro e o SPF nao funciona. Use mecanismos ip4/ip6 quando possivel para reduzir lookups.' },
  { q: 'O SPF sozinho e suficiente?', a: 'Nao. SPF deve ser usado junto com DKIM e DMARC para protecao completa contra spoofing e phishing. Recomendamos usar nossa ferramenta Email Security Score para verificar tudo.' },
];

const faqSchema = createFAQSchema(faqData);
const breadcrumbSchema = createBreadcrumbSchema([
  { name: 'Home', url: 'https://avanzato.com.br/' },
  { name: 'Ferramentas', url: 'https://avanzato.com.br/ferramentas' },
  { name: 'SPF Checker', url: 'https://avanzato.com.br/ferramentas/spf-checker' },
]);
const softwareSchema = createSoftwareSchema('SPF Checker', 'Ferramenta gratuita para verificar configuracao SPF de dominios.', 'https://avanzato.com.br/ferramentas/spf-checker');
const combinedSchema = [faqSchema, breadcrumbSchema, softwareSchema];

const SpfChecker = () => (
  <div className="min-h-screen bg-[#0e0e0e] pt-16 pb-8">
    <SEO
      title="SPF Checker Gratuito | Avanzato Tools"
      description="Verifique se o SPF do seu dominio esta configurado corretamente. Proteja contra spoofing e phishing. Ferramenta gratuita da Avanzato."
      keywords="spf checker, verificar spf, configurar spf, sender policy framework, seguranca email"
      schema={combinedSchema}
    />
    <FerramentaLayout
      nome="SPF Checker Gratuito"
      descricao="Verifique se o dominio da sua empresa esta protegido contra falsificacao de e-mails."
      icone={<Shield />}
      placeholder="Digite seu dominio (ex: avanzato.com.br)"
      explicacao="O SPF (Sender Policy Framework) e um registro DNS que lista os servidores autorizados a enviar e-mails em nome do seu dominio. Quando um e-mail chega ao destinatario, o servidor dele consulta o SPF do seu dominio para verificar se o remetente e legitimo. Sem SPF, qualquer servidor pode enviar e-mails como se fosse voce, facilitando phishing e spoofing. Empresas que usam Microsoft 365, Google Workspace ou qualquer servico de e-mail devem ter SPF configurado corretamente."
      comoFunciona={[
        'Digite o dominio que deseja verificar no campo acima.',
        'Nossa ferramenta consulta os servidores DNS publicos em tempo real.',
        'Analisamos o registro SPF, mecanismos e politica de falha.',
        'Voce recebe um score de 0 a 100 com recomendacoes praticas.',
        'Cadastre-se gratuitamente para receber um relatorio completo por e-mail.',
      ]}
      perguntasUteis={faqData.slice(0, 4)}
      onConsultar={checkSPF}
    />
  </div>
);

export default SpfChecker;

// Schema helper
function createSoftwareSchema(name: string, description: string, url: string) {
  return {
    '@context': 'https://schema.org',
    '@type': 'SoftwareApplication',
    name,
    description,
    url,
    applicationCategory: 'SecurityApplication',
    operatingSystem: 'Web',
    offers: { '@type': 'Offer', price: '0', priceCurrency: 'BRL' },
    author: { '@type': 'Organization', name: 'Avanzato Tecnologia', url: 'https://avanzato.com.br' },
  };
}
