import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { Info, AlertTriangle } from 'lucide-react';
import { cn } from '@/lib/utils';
import { useState } from 'react';

interface TermsOfUseDialogProps {
  isCollapsed?: boolean;
  trigger?: React.ReactNode;
}

export function TermsOfUseDialog({ isCollapsed = false, trigger }: TermsOfUseDialogProps) {
  const [open, setOpen] = useState(false);

  return (
    <Dialog open={open} onOpenChange={setOpen}>
      <DialogTrigger asChild>
        {trigger ? trigger : (
          <button
            className={cn(
              'flex items-center gap-3 px-3 py-2.5 rounded-md transition-colors text-sm w-full cursor-pointer text-muted-foreground hover:bg-secondary/50 hover:text-secondary-foreground',
              isCollapsed && 'justify-center px-0'
            )}
            title={isCollapsed ? 'Termos de Uso e Responsabilidade' : undefined}
          >
            <Info className="w-5 h-5 shrink-0" />
            {!isCollapsed && <span>Termos de Uso</span>}
          </button>
        )}
      </DialogTrigger>
      
      <DialogContent className="max-w-2xl max-h-[85vh] p-0 flex flex-col">
        <DialogHeader className="px-6 py-4 border-b">
          <DialogTitle className="text-xl flex items-center gap-2">
            <Info className="w-5 h-5 text-primary" />
            Termos de Uso e Responsabilidade
          </DialogTitle>
        </DialogHeader>
        
        <div className="flex-1 px-6 py-4 overflow-y-auto">
          <div className="space-y-6 text-sm leading-relaxed text-muted-foreground pb-6">
            
            <div className="bg-primary/5 p-4 rounded-lg border border-primary/10">
              <p className="font-medium text-foreground mb-1">Norma de Referência</p>
              <p>
                Os cálculos estruturais e parâmetros de vento gerados pelo BrainWind seguem as 
                diretrizes estabelecidas pela <strong>ABNT NBR 6123:2023</strong> — 
                <em>Forças devidas ao vento em edificações</em>.
              </p>
            </div>

            <p>
              O <strong>BrainWind</strong> é uma ferramenta computacional projetada para auxiliar projetistas 
              no cálculo e na análise dos efeitos do vento em edificações. Por ser um aplicativo 
              de suporte técnico, sua utilização está estritamente sujeita às seguintes condições:
            </p>

            <div className="bg-destructive/10 p-4 rounded-lg border border-destructive/20 text-destructive-foreground">
              <div className="flex gap-2 items-center font-bold mb-2 text-destructive">
                <AlertTriangle className="w-5 h-5" />
                Aviso de Responsabilidade Técnica
              </div>
              <p className="text-sm">
                A checagem, validação e verificação de todos os resultados, relatórios, dados de 
                entrada e parâmetros gerados pelo BrainWind são de <strong>responsabilidade exclusiva 
                e integral do usuário (Engenheiro Responsável)</strong>. 
                <br /><br />
                O aplicativo é estritamente uma ferramenta de auxílio e não substitui, sob 
                nenhuma circunstância, o julgamento técnico, a análise detalhada das normas e o 
                dimensionamento final da estrutura por parte de um profissional de engenharia 
                legalmente habilitado (com registro ativo no CREA/CAU).
              </p>
            </div>

            <ul className="space-y-4 list-disc pl-5">
              <li>
                <strong className="text-foreground">Licenciamento e Uso Autorizado:</strong> O uso do 
                BrainWind é restrito aos detentores de licença válida e ativa, emitida diretamente 
                pelos desenvolvedores ou por seus distribuidores autorizados. É terminantemente 
                proibida a distribuição, reprodução, engenharia reversa, compartilhamento de credenciais 
                ou qualquer forma de redistribuição não autorizada do software ou de suas licenças.
              </li>
              
              <li>
                <strong className="text-foreground">Privacidade de Dados (LGPD):</strong> Os dados pessoais, 
                credenciais de acesso e projetos informados ao BrainWind são armazenados em servidores 
                seguros e tratados em rigorosa conformidade com a Lei Geral de Proteção de Dados 
                (Lei nº 13.709/2018). Detalhes adicionais sobre coleta, retenção e direitos do titular 
                estão disponíveis em nossa Política de Privacidade integral.
              </li>
              
              <li>
                <strong className="text-foreground">Isenção de Responsabilidade e Danos:</strong> Os 
                desenvolvedores, distribuidores e afiliados do BrainWind não se responsabilizam por 
                quaisquer danos materiais, morais, perdas financeiras, interrupção de negócios ou 
                falhas estruturais decorrentes de decisões de projeto tomadas com base nas 
                informações ou cálculos fornecidos pelo aplicativo.
              </li>
              
              <li>
                <strong className="text-foreground">Suporte e Aprimoramento Contínuo:</strong> Como o 
                sistema passa por atualizações e revisões constantes para melhor alinhamento 
                normativo, solicitamos que dúvidas, sugestões de melhoria e eventuais reportes 
                de inconsistências algorítmicas sejam enviados diretamente para nossa equipe 
                técnica através do canal: <strong>suporte@brainwind.com.br</strong>.
              </li>
            </ul>

            <div className="pt-4 mt-6 border-t text-xs text-muted-foreground/70">
              <p>Última atualização: julho de 2026. Esta versão substitui todas as anteriores.</p>
            </div>
          </div>
        </div>

        <div className="p-4 border-t bg-muted/20 flex justify-end">
          <Button onClick={() => setOpen(false)}>
            Ciente e de Acordo
          </Button>
        </div>
      </DialogContent>
    </Dialog>
  );
}
