opencrm/backend/scripts/seed-privacy-policy.ts

224 lines
14 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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());