import Head from 'next/head'
import Link from 'next/link'
import { PageHeader } from '@/components/PageHeader'

function LegalSection({ title, children }: { title: string; children: React.ReactNode }): React.ReactElement {
  return (
    <section>
      <h2 className="text-2xl font-semibold text-cyber-accent mb-3">{title}</h2>
      {children}
    </section>
  )
}

function EditorSection(): React.ReactElement {
  return (
    <LegalSection title="1. Éditeur du site">
      <p className="text-cyber-accent mb-2">
        Le site <strong className="text-neon-cyan">zapwall.fr</strong> est édité par :
      </p>
      <p className="text-cyber-accent/80 mb-2">
        Équipe 4NK<br />
        Contact : via le protocole Nostr
      </p>
      <p className="text-cyber-accent/80">
        <strong className="text-neon-cyan">Identité de la plateforme :</strong><br />
        npub : <code className="text-cyber-accent/70 font-mono text-sm">npub18s03s39fa80ce2n3cmm0zme3jqehc82h6ld9sxq03uejqm3d05gsae0fuu</code><br />
        Adresse Bitcoin : <code className="text-cyber-accent/70 font-mono text-sm">bc1qerauk5yhqytl6z93ckvwkylup8s0256uenzg9y</code>
      </p>
    </LegalSection>
  )
}

function HostingSection(): React.ReactElement {
  return (
    <LegalSection title="2. Hébergement">
      <p className="text-cyber-accent">
        Le site est hébergé sur des serveurs dédiés. Les données sont stockées de manière décentralisée via le protocole Nostr.
      </p>
    </LegalSection>
  )
}

function IntellectualPropertySection(): React.ReactElement {
  return (
    <LegalSection title="3. Propriété intellectuelle">
      <p className="text-cyber-accent mb-2">
        L&apos;ensemble du contenu du site (textes, images, vidéos, etc.) est la propriété de leurs auteurs respectifs.
      </p>
      <p className="text-cyber-accent">
        La plateforme zapwall.fr ne revendique aucun droit de propriété sur les contenus publiés par les utilisateurs.
      </p>
    </LegalSection>
  )
}

function DataProtectionSection(): React.ReactElement {
  return (
    <LegalSection title="4. Protection des données personnelles">
      <p className="text-cyber-accent mb-2">
        Conformément à la réglementation en vigueur, notamment le Règlement Général sur la Protection des Données (RGPD),
        les utilisateurs disposent d&apos;un droit d&apos;accès, de rectification, de suppression et d&apos;opposition aux données les concernant.
      </p>
      <p className="text-cyber-accent">
        Pour plus d&apos;informations, consultez notre{' '}
        <Link href="/privacy" className="text-neon-cyan hover:text-neon-green underline">
          politique de confidentialité
        </Link>
        .
      </p>
    </LegalSection>
  )
}

function ResponsibilitySection(): React.ReactElement {
  return (
    <LegalSection title="5. Responsabilité">
      <p className="text-cyber-accent mb-2">
        La plateforme zapwall.fr est un service de publication décentralisé. Les contenus publiés par les utilisateurs
        sont de leur seule responsabilité.
      </p>
      <p className="text-cyber-accent">
        La plateforme ne peut être tenue responsable des contenus publiés par les utilisateurs, ni des transactions
        effectuées via le protocole Lightning Network.
      </p>
    </LegalSection>
  )
}

function CookiesSection(): React.ReactElement {
  return (
    <LegalSection title="6. Cookies">
      <p className="text-cyber-accent">
        Le site utilise des cookies techniques nécessaires au fonctionnement de la plateforme. Aucun cookie de suivi
        ou de publicité n&apos;est utilisé.
      </p>
    </LegalSection>
  )
}

function ApplicableLawSection(): React.ReactElement {
  return (
    <LegalSection title="7. Loi applicable">
      <p className="text-cyber-accent">
        Les présentes mentions légales sont régies par le droit français. En cas de litige, les tribunaux français
        seront seuls compétents.
      </p>
    </LegalSection>
  )
}

export default function LegalPage(): React.ReactElement {
  return (
    <>
      <Head>
        <title>Mentions légales - zapwall.fr</title>
        <meta name="description" content="Mentions légales de zapwall.fr" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
      </Head>
      <main className="min-h-screen bg-cyber-darker">
        <PageHeader />
        <div className="w-full px-4 py-8">
          <div className="bg-cyber-dark border border-neon-cyan/30 rounded-lg shadow-glow-cyan p-8 space-y-6">
            <h1 className="text-3xl font-bold text-neon-cyan mb-6">Mentions légales</h1>
            <EditorSection />
            <HostingSection />
            <IntellectualPropertySection />
            <DataProtectionSection />
            <ResponsibilitySection />
            <CookiesSection />
            <ApplicableLawSection />
            <div className="mt-8 pt-6 border-t border-neon-cyan/30">
              <Link href="/" className="text-neon-cyan hover:text-neon-green underline">
                ← Retour à l&apos;accueil
              </Link>
            </div>
          </div>
        </div>
      </main>
    </>
  )
}
