import { getCurrentLanguage, i18n } from '../../i18n.js'

class PagePrivacy extends HTMLElement {
    connectedCallback() {
        this.render()
        this.unsubscribe = i18n.subscribe(() => this.render())
    }

    disconnectedCallback() {
        if (this.unsubscribe) this.unsubscribe()
    }

    getContent(lang) {
        const content = {
            de: /* html */`
                <h1>Datenschutzerklärung</h1>
                <p class="legal-meta">dgray.io — Anonymer Marktplatz | Stand: Februar 2026</p>

                <h2>1. Verantwortlicher</h2>
                <p>Verantwortlich für die Datenbearbeitung ist der Betreiber der Plattform dgray.io mit Sitz in der Schweiz.</p>

                <h2>2. Grundsatz</h2>
                <p>Die Plattform wurde nach dem Prinzip der Datensparsamkeit konzipiert.</p>

                <h2>3. Welche Daten werden erhoben?</h2>
                <p><strong>3.1 Daten, die wir NICHT erheben:</strong> Keine E-Mail-Adressen, keine Namen, keine Telefonnummern, keine Standortdaten der Nutzer, keine Zahlungsdaten.</p>
                <p><strong>3.2 Registrierung:</strong> Ein kryptografischer Hash (SHA-256) der UUID wird als Benutzerkennung gespeichert. Die UUID selbst wird nicht gespeichert.</p>
                <p><strong>3.3 Nutzung:</strong> Anzeigen (Titel, Beschreibung, Preis, Kategorie, Standort, Bilder), Nachrichten (Ende-zu-Ende verschlüsselt, nur Ciphertext gespeichert), Favoriten (lokal im Browser).</p>
                <p><strong>3.4 Technische Daten:</strong> Server-Logs können temporär IP-Adressen und Zugriffszeiten enthalten.</p>

                <h2>4. Cookies und lokale Speicherung</h2>
                <p><strong>4.1</strong> Keine Cookies für Tracking oder Analyse.</p>
                <p><strong>4.2</strong> localStorage: Spracheinstellung, Theme, Währung, Auth-Token, Favoriten, Kategorie-Cache.</p>
                <p><strong>4.3</strong> Diese Daten verlassen den Browser nicht.</p>

                <h2>5. Drittdienste</h2>
                <p><strong>5.1 Directus (Backend):</strong> Selbst gehostet, keine Datenübertragung an Dritte.</p>
                <p><strong>5.2 BTCPay Server (Zahlungen):</strong> Keine personenbezogenen Daten übertragen.</p>
                <p><strong>5.3 CoinGecko API (Wechselkurse):</strong> Keine personenbezogenen Daten übertragen.</p>

                <h2>6. Verschlüsselung</h2>
                <p><strong>6.1</strong> Kommunikation ist Ende-zu-Ende verschlüsselt (NaCl/TweetNaCl).</p>
                <p><strong>6.2</strong> Schlüssel werden im Browser generiert und gespeichert.</p>
                <p><strong>6.3</strong> Server speichert nur verschlüsselten Ciphertext.</p>

                <h2>7. Datenweitergabe</h2>
                <p><strong>7.1</strong> Keine Weitergabe an Dritte zu Werbe- oder Marketingzwecken.</p>
                <p><strong>7.2</strong> Herausgabe nur bei rechtlicher Verpflichtung durch Schweizer Behörden.</p>

                <h2>8. Rechte der Nutzer</h2>
                <p><strong>8.1</strong> Auskunft über gespeicherte Daten möglich.</p>
                <p><strong>8.2</strong> Löschung durch Account-Löschung.</p>
                <p><strong>8.3</strong> Datenportabilität auf Anfrage.</p>

                <h2>9. Aufbewahrungsdauer</h2>
                <p>Anzeigen: 30 Tage, Nachrichten: bis Löschung, Server-Logs: max. 7 Tage.</p>

                <h2>10. Anwendbares Recht</h2>
                <p>Schweizer Bundesgesetz über den Datenschutz (DSG).</p>

                <h2>11. Änderungen</h2>
                <p>Der Betreiber kann diese Datenschutzerklärung jederzeit anpassen.</p>

                <p class="legal-meta">Letzte Aktualisierung: Februar 2026</p>
            `,
            en: /* html */`
                <h1>Privacy Policy</h1>
                <p class="legal-meta">dgray.io — Anonymous Marketplace | Last updated: February 2026</p>

                <h2>1. Controller</h2>
                <p>The controller for data processing is the operator of dgray.io, based in Switzerland.</p>

                <h2>2. Principle</h2>
                <p>The platform was designed following the principle of data minimization.</p>

                <h2>3. What data is collected?</h2>
                <p><strong>3.1 Data we do NOT collect:</strong> No email addresses, no names, no phone numbers, no user location data, no payment data.</p>
                <p><strong>3.2 Registration:</strong> A cryptographic hash (SHA-256) of the UUID is stored as user identifier. The UUID itself is not stored.</p>
                <p><strong>3.3 Usage:</strong> Listings (title, description, price, category, location, images), Messages (end-to-end encrypted, only ciphertext stored), Favorites (stored locally in browser).</p>
                <p><strong>3.4 Technical data:</strong> Server logs may temporarily contain IP addresses and access times.</p>

                <h2>4. Cookies and local storage</h2>
                <p><strong>4.1</strong> No cookies for tracking or analytics.</p>
                <p><strong>4.2</strong> localStorage: Language setting, theme, currency, auth token, favorites, category cache.</p>
                <p><strong>4.3</strong> This data does not leave the browser.</p>

                <h2>5. Third-party services</h2>
                <p><strong>5.1 Directus (Backend):</strong> Self-hosted, no data transfer to third parties.</p>
                <p><strong>5.2 BTCPay Server (Payments):</strong> No personal data transferred.</p>
                <p><strong>5.3 CoinGecko API (Exchange rates):</strong> No personal data transferred.</p>

                <h2>6. Encryption</h2>
                <p><strong>6.1</strong> Communication is end-to-end encrypted (NaCl/TweetNaCl).</p>
                <p><strong>6.2</strong> Keys are generated and stored in the browser.</p>
                <p><strong>6.3</strong> Server stores only encrypted ciphertext.</p>

                <h2>7. Data sharing</h2>
                <p><strong>7.1</strong> No data shared with third parties for advertising or marketing purposes.</p>
                <p><strong>7.2</strong> Disclosure only when legally required by Swiss authorities.</p>

                <h2>8. User rights</h2>
                <p><strong>8.1</strong> Right to information about stored data.</p>
                <p><strong>8.2</strong> Deletion by deleting the account.</p>
                <p><strong>8.3</strong> Data portability upon request.</p>

                <h2>9. Retention period</h2>
                <p>Listings: 30 days, Messages: until deletion, Server logs: max. 7 days.</p>

                <h2>10. Governing law</h2>
                <p>Swiss Federal Act on Data Protection (FADP).</p>

                <h2>11. Changes</h2>
                <p>The operator may update this privacy policy at any time.</p>

                <p class="legal-meta">Last updated: February 2026</p>
            `,
            fr: /* html */`
                <h1>Politique de confidentialité</h1>
                <p class="legal-meta">dgray.io — Marché anonyme | Mise à jour : février 2026</p>

                <h2>1. Responsable</h2>
                <p>Le responsable du traitement des données est l'exploitant de dgray.io, domicilié en Suisse.</p>

                <h2>2. Principe</h2>
                <p>La plateforme a été conçue selon le principe de minimisation des données.</p>

                <h2>3. Quelles données sont collectées ?</h2>
                <p><strong>3.1 Données que nous ne collectons PAS :</strong> Aucune adresse e-mail, aucun nom, aucun numéro de téléphone, aucune donnée de localisation, aucune donnée de paiement.</p>
                <p><strong>3.2 Inscription :</strong> Un hash cryptographique (SHA-256) de l'UUID est stocké comme identifiant. L'UUID lui-même n'est pas stocké.</p>
                <p><strong>3.3 Utilisation :</strong> Annonces (titre, description, prix, catégorie, lieu, images), Messages (chiffrés de bout en bout, seul le texte chiffré est stocké), Favoris (stockés localement dans le navigateur).</p>
                <p><strong>3.4 Données techniques :</strong> Les journaux serveur peuvent temporairement contenir des adresses IP et des heures d'accès.</p>

                <h2>4. Cookies et stockage local</h2>
                <p><strong>4.1</strong> Aucun cookie de suivi ou d'analyse.</p>
                <p><strong>4.2</strong> localStorage : Langue, thème, devise, jeton d'authentification, favoris, cache des catégories.</p>
                <p><strong>4.3</strong> Ces données ne quittent pas le navigateur.</p>

                <h2>5. Services tiers</h2>
                <p><strong>5.1 Directus (Backend) :</strong> Auto-hébergé, aucun transfert de données à des tiers.</p>
                <p><strong>5.2 BTCPay Server (Paiements) :</strong> Aucune donnée personnelle transférée.</p>
                <p><strong>5.3 CoinGecko API (Taux de change) :</strong> Aucune donnée personnelle transférée.</p>

                <h2>6. Chiffrement</h2>
                <p><strong>6.1</strong> La communication est chiffrée de bout en bout (NaCl/TweetNaCl).</p>
                <p><strong>6.2</strong> Les clés sont générées et stockées dans le navigateur.</p>
                <p><strong>6.3</strong> Le serveur ne stocke que du texte chiffré.</p>

                <h2>7. Partage de données</h2>
                <p><strong>7.1</strong> Aucune donnée partagée avec des tiers à des fins publicitaires ou marketing.</p>
                <p><strong>7.2</strong> Divulgation uniquement sur obligation légale des autorités suisses.</p>

                <h2>8. Droits des utilisateurs</h2>
                <p><strong>8.1</strong> Droit d'accès aux données stockées.</p>
                <p><strong>8.2</strong> Suppression par suppression du compte.</p>
                <p><strong>8.3</strong> Portabilité des données sur demande.</p>

                <h2>9. Durée de conservation</h2>
                <p>Annonces : 30 jours, Messages : jusqu'à suppression, Journaux serveur : max. 7 jours.</p>

                <h2>10. Droit applicable</h2>
                <p>Loi fédérale suisse sur la protection des données (LPD).</p>

                <h2>11. Modifications</h2>
                <p>L'exploitant peut adapter cette politique de confidentialité à tout moment.</p>

                <p class="legal-meta">Dernière mise à jour : février 2026</p>
            `
        }
        return content[lang] || content.de
    }

    render() {
        const lang = getCurrentLanguage()
        const backLabel = { de: 'Zurück zur Startseite', en: 'Back to Home', fr: 'Retour à l\'accueil' }
        this.innerHTML = /* html */`
            <div class="legal-page">
                <a href="#/" class="back-link">← ${backLabel[lang] || backLabel.en}</a>
                <div class="legal-content">
                    ${this.getContent(lang)}
                </div>
            </div>
        `
    }
}

customElements.define('page-privacy', PagePrivacy)

const style = document.createElement('style')
style.textContent = /* css */`
    page-privacy .legal-page {
        padding: var(--space-lg) 0;
        max-width: 800px;
        margin: 0 auto;
    }

    page-privacy .back-link {
        display: inline-block;
        color: var(--color-text-muted);
        text-decoration: none;
        font-size: var(--font-size-sm);
        margin-bottom: var(--space-lg);
        transition: color 0.2s;
    }

    page-privacy .back-link:hover {
        color: var(--color-text);
    }

    page-privacy .legal-content h1 {
        font-size: var(--font-size-2xl);
        margin: 0 0 var(--space-xs);
    }

    page-privacy .legal-content h2 {
        font-size: var(--font-size-lg);
        margin: var(--space-xl) 0 var(--space-sm);
        padding-top: var(--space-md);
        border-top: 1px solid var(--color-border);
    }

    page-privacy .legal-content h2:first-of-type {
        border-top: none;
    }

    page-privacy .legal-content p {
        line-height: 1.7;
        margin: 0 0 var(--space-sm);
        color: var(--color-text-secondary);
    }

    page-privacy .legal-content ul {
        margin: 0 0 var(--space-sm);
        padding-left: var(--space-lg);
        color: var(--color-text-secondary);
    }

    page-privacy .legal-content ul li {
        line-height: 1.7;
        margin-bottom: var(--space-xs);
    }

    page-privacy .legal-meta {
        color: var(--color-text-muted);
        font-size: var(--font-size-sm);
    }

    @media (max-width: 768px) {
        page-privacy .legal-page {
            padding: var(--space-md) 0;
        }

        page-privacy .legal-content h1 {
            font-size: var(--font-size-xl);
        }

        page-privacy .legal-content h2 {
            font-size: var(--font-size-base);
        }
    }
`
document.head.appendChild(style)
