/**
 * Script: Datenschutzerklärung in die Datenbank einfügen
 * Ausführen: npx tsx scripts/seed-privacy-policy.ts
 */
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

const privacyPolicyHtml = `
<h1 style="text-align: center; margin-bottom: 0.25em;">Datenschutzerklärung</h1>
<p style="text-align: center; color: #6b7280; font-size: 0.9em; margin-top: 0;">gemäß EU-Datenschutz-Grundverordnung (DSGVO)</p>

<div style="background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: 16px 20px; margin: 24px 0;">
  <p style="margin: 0; font-weight: 600; color: #1e40af; font-size: 1.05em;">Hacker-Net Telekommunikation – Stefan Hacker</p>
  <p style="margin: 4px 0 0 0; color: #1e3a5f; font-size: 0.9em;">
    Am Wunderburgpark 5b, 26135 Oldenburg<br>
    Tel.: 01735837852 · E-Mail: info@hacker-net.de
  </p>
</div>

<p style="margin-top: 24px;">Sehr geehrte(r) {{anrede}} {{vorname}} {{nachname}},</p>

<p style="line-height: 1.7;">der Schutz Ihrer persönlichen Daten ist uns ein wichtiges Anliegen. Nachfolgend informieren wir Sie darüber, wie wir Ihre Daten erheben, verarbeiten und schützen.</p>

<hr style="border: none; border-top: 2px solid #e5e7eb; margin: 36px 0;">

<h2 style="margin-bottom: 16px;">1. Verantwortlicher</h2>

<p style="line-height: 1.7;">Verantwortlich für die Datenverarbeitung im Sinne der DSGVO ist:</p>

<p style="padding: 12px 16px; border-left: 3px solid #3b82f6; line-height: 1.8; margin: 20px 0;">
  <strong>Hacker-Net Telekommunikation – Stefan Hacker</strong><br>
  Am Wunderburgpark 5b, 26135 Oldenburg<br>
  Tel.: 01735837852<br>
  E-Mail: info@hacker-net.de
</p>

<hr style="border: none; border-top: 2px solid #e5e7eb; margin: 36px 0;">

<h2 style="margin-bottom: 16px;">2. Erhebung, Zweck und Speicherung Ihrer Daten</h2>

<h3 style="margin-top: 28px; margin-bottom: 12px;">Welche Daten wir erheben</h3>

<p style="line-height: 1.7;">Wenn Sie uns beauftragen, erheben wir folgende personenbezogene Daten:</p>

<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px; margin: 20px 0;">
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Anrede, Vorname, Nachname</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Geburtsdatum, Geburtsort</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Ausweisdaten</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Bankdaten (IBAN, BIC)</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> E-Mail-Adresse</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Anschrift / Lieferanschriften</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Telefonnummer(n)</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Vertragsdaten / Produkte</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Zählernummern (Strom, Gas)</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Fahrzeugschein- / Führerscheindaten</div>
  <div style="display: flex; align-items: baseline; gap: 8px; padding: 5px 0;"><span style="color: #3b82f6;">&#9679;</span> Domainnamen / E-Mail-Adressen</div>
</div>

<div style="background: #fefce8; border: 1px solid #fde68a; border-radius: 8px; padding: 16px 20px; margin: 28px 0;">
  <p style="margin: 0 0 8px 0; font-weight: 600; color: #92400e;">Personalisierte E-Mail-Adresse</p>
  <p style="margin: 0; font-size: 0.9em; color: #78350f; line-height: 1.7;">
    Im Rahmen unserer Dienstleistung erstellen wir für Sie eine personalisierte E-Mail-Adresse mit der Endung <strong>@stressfrei-wechseln.de</strong>.
  </p>
  <p style="margin: 10px 0 0 0; font-size: 0.9em; color: #78350f; line-height: 1.7;">
    Diese dient als Verteiler-Adresse zur Kommunikation mit Anbietern – sowohl Sie als auch wir erhalten darüber die relevante Korrespondenz.
  </p>
  <p style="margin: 10px 0 0 0; font-size: 0.9em; color: #78350f; line-height: 1.7;">
    Die Adresse wird ausschließlich für diesen Zweck verwendet und nach Beendigung des Vertragsverhältnisses deaktiviert.
  </p>
</div>

<h3 style="margin-top: 32px; margin-bottom: 12px;">Zweck der Datenerhebung</h3>

<p style="line-height: 1.7;">Die Erhebung dieser Daten erfolgt zu folgenden Zwecken:</p>

<ul style="line-height: 2; margin: 16px 0;">
  <li>Identifikation als unser Kunde</li>
  <li>Angemessene Beratung und Betreuung</li>
  <li>Korrespondenz mit Ihnen und mit Anbietern in Ihrem Auftrag</li>
  <li>Rechnungsstellung</li>
  <li>Kündigung von Altverträgen und Abschluss neuer Verträge</li>
</ul>

<h3 style="margin-top: 32px; margin-bottom: 12px;">Rechtsgrundlage</h3>

<p style="line-height: 1.7;">Die Datenverarbeitung erfolgt auf Grundlage von:</p>

<ul style="line-height: 2; margin: 16px 0;">
  <li><strong>Art. 6 Abs. 1 S. 1 lit. b DSGVO</strong> – Vertragserfüllung</li>
  <li><strong>Art. 6 Abs. 1 S. 1 lit. a DSGVO</strong> – Ihre Einwilligung, soweit erteilt</li>
</ul>

<h3 style="margin-top: 32px; margin-bottom: 12px;">Speicherdauer</h3>

<p style="line-height: 1.7;">Ihre Daten werden für die Dauer des Vertragsverhältnisses gespeichert.</p>

<p style="line-height: 1.7;">Nach Vertragsende bewahren wir Ihre Daten gemäß den gesetzlichen Aufbewahrungsfristen auf (<strong>10 Jahre</strong> gemäß §§ 147 AO, 257 HGB) und löschen sie anschließend, sofern keine darüber hinausgehende Einwilligung vorliegt.</p>

<hr style="border: none; border-top: 2px solid #e5e7eb; margin: 36px 0;">

<h2 style="margin-bottom: 16px;">3. Weitergabe von Daten an Dritte</h2>

<p style="line-height: 1.7;">Ihre personenbezogenen Daten werden nur weitergegeben, wenn dies für die Erfüllung unseres Vertrags mit Ihnen erforderlich ist (<strong>Art. 6 Abs. 1 S. 1 lit. b DSGVO</strong>).</p>

<p style="line-height: 1.7;">Hierzu gehört insbesondere die Weitergabe an <strong>Produkt- und Dienstleistungsanbieter</strong> (z. B. Telekommunikations-, Strom-, Gas- und Versicherungsanbieter), da ohne diese Weitergabe keine Verträge gekündigt und/oder neue Verträge abgeschlossen werden können.</p>

<p style="line-height: 1.7;">Die weitergegebenen Daten dürfen von den Empfängern ausschließlich zu den genannten Zwecken verwendet werden.</p>

<p style="line-height: 1.7;">Eine darüber hinausgehende Weitergabe findet ohne Ihre ausdrückliche Einwilligung nicht statt.</p>

<hr style="border: none; border-top: 2px solid #e5e7eb; margin: 36px 0;">

<h2 style="margin-bottom: 16px;">4. Sicherheit Ihrer Daten</h2>

<p style="line-height: 1.7;">Wir setzen technische und organisatorische Maßnahmen ein, um Ihre Daten gegen Verlust, Zerstörung, Manipulation und unberechtigten Zugriff zu schützen:</p>

<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 24px 0;">
  <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 14px 16px;">
    <p style="margin: 0; font-weight: 600; font-size: 0.9em; color: #166534;">Verschlüsselung</p>
    <p style="margin: 6px 0 0 0; font-size: 0.85em; color: #15803d; line-height: 1.5;">SSL/TLS-verschlüsselte Datenübertragung</p>
  </div>
  <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 14px 16px;">
    <p style="margin: 0; font-weight: 600; font-size: 0.9em; color: #166534;">Zugangskontrolle</p>
    <p style="margin: 6px 0 0 0; font-size: 0.85em; color: #15803d; line-height: 1.5;">Berechtigungssysteme und Passwortschutz</p>
  </div>
  <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 14px 16px;">
    <p style="margin: 0; font-weight: 600; font-size: 0.9em; color: #166534;">Updates</p>
    <p style="margin: 6px 0 0 0; font-size: 0.85em; color: #15803d; line-height: 1.5;">Regelmäßige Sicherheitsupdates unserer Systeme</p>
  </div>
  <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 14px 16px;">
    <p style="margin: 0; font-weight: 600; font-size: 0.9em; color: #166534;">Vertraulichkeit</p>
    <p style="margin: 6px 0 0 0; font-size: 0.85em; color: #15803d; line-height: 1.5;">Verpflichtung aller Mitarbeiter zur Verschwiegenheit</p>
  </div>
</div>

<hr style="border: none; border-top: 2px solid #e5e7eb; margin: 36px 0;">

<h2 style="margin-bottom: 16px;">5. Ihre Rechte</h2>

<p style="line-height: 1.7;">Als betroffene Person stehen Ihnen gemäß DSGVO folgende Rechte zu:</p>

<div style="margin: 24px 0;">
  <div style="border-left: 3px solid #8b5cf6; padding: 12px 16px; margin-bottom: 12px; background: #faf5ff;">
    <p style="margin: 0;"><strong>Widerruf der Einwilligung</strong> <span style="color: #6b7280; font-size: 0.85em;">(Art. 7 Abs. 3 DSGVO)</span></p>
    <p style="margin: 8px 0 0 0; font-size: 0.9em; color: #4b5563; line-height: 1.6;">Sie können eine erteilte Einwilligung jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt davon unberührt.</p>
  </div>

  <div style="border-left: 3px solid #8b5cf6; padding: 12px 16px; margin-bottom: 12px; background: #faf5ff;">
    <p style="margin: 0;"><strong>Auskunftsrecht</strong> <span style="color: #6b7280; font-size: 0.85em;">(Art. 15 DSGVO)</span></p>
    <p style="margin: 8px 0 0 0; font-size: 0.9em; color: #4b5563; line-height: 1.6;">Sie können Auskunft über Ihre von uns verarbeiteten Daten verlangen – einschließlich Verarbeitungszwecke, Kategorien, Empfänger, Speicherdauer und Herkunft.</p>
  </div>

  <div style="border-left: 3px solid #8b5cf6; padding: 12px 16px; margin-bottom: 12px; background: #faf5ff;">
    <p style="margin: 0;"><strong>Recht auf Berichtigung</strong> <span style="color: #6b7280; font-size: 0.85em;">(Art. 16 DSGVO)</span></p>
    <p style="margin: 8px 0 0 0; font-size: 0.9em; color: #4b5563; line-height: 1.6;">Sie können die Berichtigung unrichtiger oder die Vervollständigung unvollständiger Daten verlangen.</p>
  </div>

  <div style="border-left: 3px solid #8b5cf6; padding: 12px 16px; margin-bottom: 12px; background: #faf5ff;">
    <p style="margin: 0;"><strong>Recht auf Löschung</strong> <span style="color: #6b7280; font-size: 0.85em;">(Art. 17 DSGVO)</span></p>
    <p style="margin: 8px 0 0 0; font-size: 0.9em; color: #4b5563; line-height: 1.6;">Sie können die Löschung Ihrer Daten verlangen, sofern keine gesetzlichen Aufbewahrungspflichten entgegenstehen.</p>
  </div>

  <div style="border-left: 3px solid #8b5cf6; padding: 12px 16px; margin-bottom: 12px; background: #faf5ff;">
    <p style="margin: 0;"><strong>Recht auf Einschränkung</strong> <span style="color: #6b7280; font-size: 0.85em;">(Art. 18 DSGVO)</span></p>
    <p style="margin: 8px 0 0 0; font-size: 0.9em; color: #4b5563; line-height: 1.6;">Sie können unter bestimmten Voraussetzungen die Einschränkung der Verarbeitung verlangen.</p>
  </div>

  <div style="border-left: 3px solid #8b5cf6; padding: 12px 16px; margin-bottom: 12px; background: #faf5ff;">
    <p style="margin: 0;"><strong>Recht auf Datenübertragbarkeit</strong> <span style="color: #6b7280; font-size: 0.85em;">(Art. 20 DSGVO)</span></p>
    <p style="margin: 8px 0 0 0; font-size: 0.9em; color: #4b5563; line-height: 1.6;">Sie können Ihre Daten in einem strukturierten, gängigen und maschinenlesbaren Format erhalten oder an einen anderen Verantwortlichen übermitteln lassen.</p>
  </div>
</div>

<div style="background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 16px 20px; margin: 28px 0;">
  <p style="margin: 0 0 8px 0; font-weight: 600; color: #991b1b;">Beschwerderecht (Art. 77 DSGVO)</p>
  <p style="margin: 0; font-size: 0.9em; color: #7f1d1d; line-height: 1.6;">
    Sie haben das Recht, sich bei der zuständigen Aufsichtsbehörde zu beschweren:
  </p>
  <p style="margin: 12px 0 0 0; font-size: 0.9em; color: #7f1d1d; line-height: 1.8;">
    <strong>Die Landesbeauftragte für den Datenschutz Niedersachsen</strong><br>
    Prinzenstraße 5, 30159 Hannover<br>
    Tel.: 0511 120-4500<br>
    E-Mail: poststelle@lfd.niedersachsen.de
  </p>
</div>

<hr style="border: none; border-top: 2px solid #e5e7eb; margin: 36px 0;">

<h2 style="margin-bottom: 16px;">6. Widerspruchsrecht</h2>

<p style="line-height: 1.7;">Sofern Ihre Daten auf Grundlage von berechtigten Interessen gemäß <strong>Art. 6 Abs. 1 S. 1 lit. f DSGVO</strong> verarbeitet werden, haben Sie das Recht, gemäß <strong>Art. 21 DSGVO</strong> Widerspruch gegen die Verarbeitung einzulegen, soweit Gründe vorliegen, die sich aus Ihrer besonderen Situation ergeben.</p>

<div style="background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: 20px; margin: 28px 0; text-align: center;">
  <p style="margin: 0 0 8px 0; font-size: 0.95em; color: #1e40af; line-height: 1.6;">
    Möchten Sie eines Ihrer Rechte ausüben?
  </p>
  <p style="margin: 0; font-size: 0.95em; color: #1e40af;">
    Schreiben Sie uns einfach eine E-Mail an:
  </p>
  <p style="margin: 12px 0 0 0;">
    <strong style="font-size: 1.15em; color: #1e40af;">info@hacker-net.de</strong>
  </p>
</div>

<hr style="border: none; border-top: 1px solid #e5e7eb; margin: 36px 0 16px 0;">

<p style="text-align: center; color: #9ca3af; font-size: 0.85em;">Stand: {{datum}} · Kundennummer: {{kundennummer}}</p>
`;

async function main() {
  await prisma.appSetting.upsert({
    where: { key: 'privacyPolicyHtml' },
    update: { value: privacyPolicyHtml },
    create: { key: 'privacyPolicyHtml', value: privacyPolicyHtml },
  });

  console.log('Datenschutzerklärung erfolgreich gespeichert!');
}

main()
  .catch(console.error)
  .finally(() => prisma.$disconnect());
