-- Migration 018: Legal Templates
-- Self-authored templates (MIT License) for the Document Generator.
-- Stores DSE, Impressum, and AGB as Markdown with {{PLACEHOLDER}} syntax.

CREATE TABLE IF NOT EXISTS compliance_legal_templates (
    id                   UUID        PRIMARY KEY DEFAULT gen_random_uuid(),
    tenant_id            UUID        NOT NULL DEFAULT '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e',
    document_type        TEXT        NOT NULL,   -- privacy_policy | terms_of_service | impressum
    title                TEXT        NOT NULL,
    description          TEXT,
    content              TEXT        NOT NULL,   -- Markdown with {{PLACEHOLDER}} syntax
    placeholders         JSONB       NOT NULL DEFAULT '[]'::jsonb,
    language             TEXT        NOT NULL DEFAULT 'de',
    jurisdiction         TEXT        NOT NULL DEFAULT 'DE',
    license_id           TEXT        NOT NULL DEFAULT 'mit',
    license_name         TEXT        NOT NULL DEFAULT 'MIT License',
    source_name          TEXT        NOT NULL DEFAULT 'BreakPilot Compliance',
    attribution_required BOOLEAN     NOT NULL DEFAULT FALSE,
    is_complete_document BOOLEAN     NOT NULL DEFAULT TRUE,
    version              TEXT        NOT NULL DEFAULT '1.0.0',
    status               TEXT        NOT NULL DEFAULT 'published',
    created_at           TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at           TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS idx_legal_templates_tenant   ON compliance_legal_templates(tenant_id);
CREATE INDEX IF NOT EXISTS idx_legal_templates_type     ON compliance_legal_templates(document_type);
CREATE INDEX IF NOT EXISTS idx_legal_templates_status   ON compliance_legal_templates(status);
CREATE INDEX IF NOT EXISTS idx_legal_templates_language ON compliance_legal_templates(language);

-- =============================================================================
-- Seed: Template 1 — Datenschutzerklärung (DSE)
-- Basiert auf DSGVO Art. 13/14 (Informationspflichten)
-- =============================================================================
INSERT INTO compliance_legal_templates (
    document_type, title, description, language, jurisdiction,
    placeholders, content
) VALUES (
    'privacy_policy',
    'Datenschutzerklärung (DSGVO-konform)',
    'Vollständige Datenschutzerklärung gemäß DSGVO Art. 13/14 mit Pflichtangaben für Websites und Online-Dienste.',
    'de', 'DE',
    '["{{COMPANY_NAME}}", "{{COMPANY_ADDRESS}}", "{{COMPANY_CITY}}", "{{CONTACT_EMAIL}}", "{{DPO_NAME}}", "{{DPO_EMAIL}}", "{{SUPERVISORY_AUTHORITY}}", "{{VERSION_DATE}}"]'::jsonb,
    $template$# Datenschutzerklärung

*Stand: {{VERSION_DATE}}*

## 1. Verantwortlicher

Verantwortlicher im Sinne der Datenschutz-Grundverordnung (DSGVO) ist:

**{{COMPANY_NAME}}**
{{COMPANY_ADDRESS}}
{{COMPANY_CITY}}

E-Mail: {{CONTACT_EMAIL}}

## 2. Datenschutzbeauftragter

Unser Datenschutzbeauftragter ist erreichbar unter:

Name: {{DPO_NAME}}
E-Mail: {{DPO_EMAIL}}

## 3. Erhebung und Verarbeitung personenbezogener Daten

### 3.1 Server-Logfiles

Beim Aufruf unserer Website werden durch den Webserver automatisch folgende Daten protokolliert:

- IP-Adresse (anonymisiert)
- Datum und Uhrzeit des Abrufs
- Aufgerufene URL
- Referrer-URL
- Verwendeter Browser und Betriebssystem

**Rechtsgrundlage:** Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an der sicheren und stabilen Bereitstellung des Dienstes)

**Speicherdauer:** 7 Tage, danach automatische Löschung.

### 3.2 Kontaktaufnahme

Wenn Sie uns per E-Mail oder Kontaktformular kontaktieren, verarbeiten wir Ihre E-Mail-Adresse sowie alle weiteren von Ihnen mitgeteilten Daten, um Ihre Anfrage zu beantworten.

**Rechtsgrundlage:** Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung oder vorvertragliche Maßnahmen) bzw. Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an der Bearbeitung von Anfragen)

**Speicherdauer:** Bis zur abschließenden Bearbeitung Ihrer Anfrage; bei gesetzlichen Aufbewahrungspflichten entsprechend länger.

## 4. Empfänger von Daten / Auftragsverarbeiter

Wir setzen Dienstleister ein, die in unserem Auftrag personenbezogene Daten verarbeiten (Auftragsverarbeiter gemäß Art. 28 DSGVO). Mit diesen Dienstleistern haben wir Auftragsverarbeitungsverträge (AVV) abgeschlossen. Eine Weitergabe an Dritte außerhalb dieser Verträge erfolgt nicht, es sei denn, wir sind dazu gesetzlich verpflichtet.

## 5. Drittlandsübermittlungen

Eine Übermittlung Ihrer Daten in Länder außerhalb der EU/des EWR findet nur statt, soweit dies zur Vertragserfüllung erforderlich ist oder Sie ausdrücklich eingewilligt haben. In diesen Fällen stellen wir durch geeignete Garantien (z. B. EU-Standardvertragsklauseln) ein angemessenes Datenschutzniveau sicher.

## 6. Ihre Rechte als betroffene Person

Sie haben gegenüber uns folgende Rechte hinsichtlich Ihrer personenbezogenen Daten:

- **Auskunftsrecht** (Art. 15 DSGVO): Sie können Auskunft über die von uns verarbeiteten Daten verlangen.
- **Berichtigungsrecht** (Art. 16 DSGVO): Sie können die Berichtigung unrichtiger Daten verlangen.
- **Löschungsrecht** (Art. 17 DSGVO): Sie können unter bestimmten Voraussetzungen die Löschung Ihrer Daten verlangen.
- **Einschränkungsrecht** (Art. 18 DSGVO): Sie können die Einschränkung der Verarbeitung verlangen.
- **Datenportabilität** (Art. 20 DSGVO): Sie können Ihre Daten in einem maschinenlesbaren Format erhalten.
- **Widerspruchsrecht** (Art. 21 DSGVO): Sie können der Verarbeitung auf Basis berechtigter Interessen widersprechen.
- **Widerruf der Einwilligung** (Art. 7 Abs. 3 DSGVO): Soweit die Verarbeitung auf einer Einwilligung beruht, können Sie diese jederzeit widerrufen.

Zur Ausübung Ihrer Rechte wenden Sie sich bitte an: {{CONTACT_EMAIL}}

## 7. Beschwerderecht bei der Aufsichtsbehörde

Sie haben das Recht, sich bei der für uns zuständigen Datenschutz-Aufsichtsbehörde zu beschweren:

{{SUPERVISORY_AUTHORITY}}

## 8. Aktualität und Änderungen dieser Datenschutzerklärung

Diese Datenschutzerklärung ist aktuell gültig und hat den Stand {{VERSION_DATE}}. Durch die Weiterentwicklung unserer Website oder aufgrund geänderter gesetzlicher Vorgaben kann es notwendig werden, diese Datenschutzerklärung zu ändern. Die jeweils aktuelle Datenschutzerklärung kann jederzeit auf unserer Website abgerufen werden.
$template$
) ON CONFLICT DO NOTHING;

-- =============================================================================
-- Seed: Template 2 — Impressum
-- Basiert auf DDG § 5 (früher TMG § 5)
-- =============================================================================
INSERT INTO compliance_legal_templates (
    document_type, title, description, language, jurisdiction,
    placeholders, content
) VALUES (
    'impressum',
    'Impressum (DDG § 5)',
    'Vollständiges Impressum gemäß § 5 DDG (Digital-Dienste-Gesetz, früher TMG) für gewerbliche Online-Angebote in Deutschland.',
    'de', 'DE',
    '["{{COMPANY_NAME}}", "{{COMPANY_LEGAL_FORM}}", "{{COMPANY_ADDRESS}}", "{{COMPANY_CITY}}", "{{CEO_NAME}}", "{{COMPANY_PHONE}}", "{{CONTACT_EMAIL}}", "{{WEBSITE_URL}}", "{{REGISTER_SECTION}}", "{{VAT_SECTION}}"]'::jsonb,
    $template$# Impressum

## Angaben gemäß § 5 DDG

**{{COMPANY_NAME}}** ({{COMPANY_LEGAL_FORM}})

{{COMPANY_ADDRESS}}
{{COMPANY_CITY}}

Vertreten durch: {{CEO_NAME}}

**Kontakt:**
Telefon: {{COMPANY_PHONE}}
E-Mail: {{CONTACT_EMAIL}}
Website: {{WEBSITE_URL}}

{{REGISTER_SECTION}}

{{VAT_SECTION}}

## Haftungsausschluss

### Haftung für Inhalte

Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs. 1 DDG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 DDG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.

### Haftung für Links

Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.

## Urheberrecht

Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Beiträge Dritter sind als solche gekennzeichnet. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet.
$template$
) ON CONFLICT DO NOTHING;

-- =============================================================================
-- Seed: Template 3 — Allgemeine Geschäftsbedingungen (AGB)
-- =============================================================================
INSERT INTO compliance_legal_templates (
    document_type, title, description, language, jurisdiction,
    placeholders, content
) VALUES (
    'terms_of_service',
    'Allgemeine Geschäftsbedingungen (AGB)',
    'AGB für Online-Dienste und SaaS-Angebote mit 8 Paragraphen: Geltungsbereich, Leistung, Vertragsschluss, Preise, Widerruf, Haftung, Datenschutz, Schlussbestimmungen.',
    'de', 'DE',
    '["{{COMPANY_NAME}}", "{{SERVICE_DESCRIPTION}}", "{{PRICING_SECTION}}", "{{PAYMENT_TERMS}}", "{{COMPANY_CITY}}", "{{PRIVACY_POLICY_URL}}", "{{VERSION_DATE}}"]'::jsonb,
    $template$# Allgemeine Geschäftsbedingungen

**{{COMPANY_NAME}}**
*Stand: {{VERSION_DATE}}*

---

## § 1 Geltungsbereich

(1) Diese Allgemeinen Geschäftsbedingungen (AGB) gelten für alle Verträge zwischen **{{COMPANY_NAME}}** (nachfolgend „Anbieter") und dem Kunden über die Nutzung der angebotenen Leistungen.

(2) Abweichende Bedingungen des Kunden werden nicht anerkannt, es sei denn, der Anbieter stimmt ihrer Geltung ausdrücklich schriftlich zu.

(3) Diese AGB gelten gegenüber Unternehmern (§ 14 BGB) und Verbrauchern (§ 13 BGB) gleichermaßen, sofern nicht ausdrücklich unterschieden wird.

## § 2 Leistungsangebot

(1) Der Anbieter erbringt folgende Leistungen: {{SERVICE_DESCRIPTION}}

(2) Der Anbieter ist berechtigt, die Leistungen durch Dritte (Subunternehmer) erbringen zu lassen.

(3) Art und Umfang der Leistungen ergeben sich aus der jeweiligen Produktbeschreibung oder dem individuellen Angebot.

## § 3 Vertragsschluss

(1) Die Darstellung der Leistungen auf der Website des Anbieters stellt kein bindendes Angebot dar, sondern eine Aufforderung zur Angebotsabgabe (invitatio ad offerendum).

(2) Der Kunde gibt ein verbindliches Angebot ab, indem er den Bestellvorgang abschließt oder ein schriftliches Angebot annimmt.

(3) Der Anbieter kann das Angebot innerhalb von 5 Werktagen annehmen. Die Annahme erfolgt durch eine ausdrückliche Auftragsbestätigung oder Bereitstellung der Leistung.

## § 4 Preise und Zahlung

{{PRICING_SECTION}}

**Zahlungsbedingungen:** {{PAYMENT_TERMS}}

Alle Preise verstehen sich zuzüglich der gesetzlichen Mehrwertsteuer, sofern nicht ausdrücklich als Bruttopreise ausgewiesen.

Bei Zahlungsverzug ist der Anbieter berechtigt, Verzugszinsen in Höhe von 9 Prozentpunkten über dem jeweiligen Basiszinssatz (§ 288 Abs. 2 BGB) zu berechnen. Die Geltendmachung weiterer Schäden bleibt vorbehalten.

## § 5 Widerrufsrecht für Verbraucher

Verbraucher haben das Recht, diesen Vertrag binnen 14 Tagen ohne Angabe von Gründen zu widerrufen. Die Widerrufsfrist beträgt 14 Tage ab dem Tag des Vertragsabschlusses.

Um das Widerrufsrecht auszuüben, müssen Sie uns ({{COMPANY_NAME}}) mittels einer eindeutigen Erklärung über Ihren Entschluss, diesen Vertrag zu widerrufen, informieren.

**Ausnahme:** Das Widerrufsrecht erlischt bei digitalen Inhalten, wenn der Anbieter mit der Ausführung des Vertrags begonnen hat und der Verbraucher ausdrücklich zugestimmt hat, dass der Anbieter mit der Ausführung des Vertrags vor Ablauf der Widerrufsfrist beginnt und seine Kenntnis davon bestätigt hat, dass er durch seine Zustimmung mit Beginn der Ausführung des Vertrags sein Widerrufsrecht verliert.

## § 6 Gewährleistung und Haftung

(1) Der Anbieter haftet unbeschränkt für Schäden aus der Verletzung des Lebens, des Körpers oder der Gesundheit sowie für Schäden, die durch Vorsatz oder grobe Fahrlässigkeit des Anbieters oder seiner Erfüllungsgehilfen entstehen.

(2) Im Übrigen haftet der Anbieter nur für die Verletzung wesentlicher Vertragspflichten (Kardinalpflichten). Bei leicht fahrlässiger Verletzung von Kardinalpflichten ist die Haftung auf den vertragstypisch vorhersehbaren Schaden begrenzt.

(3) Die vorstehenden Haftungsbeschränkungen gelten nicht, soweit der Anbieter eine Garantie übernommen hat oder Ansprüche nach dem Produkthaftungsgesetz bestehen.

(4) Für den Verlust von Daten haftet der Anbieter nur, soweit der Schaden auch bei ordnungsgemäßer und regelmäßiger Datensicherung durch den Kunden eingetreten wäre.

## § 7 Datenschutz

Die Verarbeitung personenbezogener Daten erfolgt gemäß unserer Datenschutzerklärung, die unter {{PRIVACY_POLICY_URL}} abrufbar ist. Die Datenschutzerklärung ist Bestandteil dieser AGB.

## § 8 Schlussbestimmungen

(1) Es gilt das Recht der Bundesrepublik Deutschland unter Ausschluss des UN-Kaufrechts (CISG). Gegenüber Verbrauchern gilt diese Rechtswahl nur, soweit der durch zwingende Bestimmungen des Rechts des Staates, in dem der Verbraucher seinen gewöhnlichen Aufenthalt hat, gewährte Schutz nicht entzogen wird.

(2) Gerichtsstand für alle Streitigkeiten aus diesem Vertrag ist, sofern der Kunde Kaufmann, eine juristische Person des öffentlichen Rechts oder ein öffentlich-rechtliches Sondervermögen ist, {{COMPANY_CITY}}.

(3) Sollten einzelne Bestimmungen dieser AGB unwirksam sein oder werden, so bleibt die Wirksamkeit der übrigen Bestimmungen davon unberührt. Die unwirksame Bestimmung wird durch eine wirksame ersetzt, die dem wirtschaftlichen Zweck der unwirksamen Bestimmung am nächsten kommt.

(4) Änderungen und Ergänzungen dieser AGB bedürfen der Schriftform. Dies gilt auch für die Aufhebung des Schriftformerfordernisses.
$template$
) ON CONFLICT DO NOTHING;
