"""
Legal Corpus Registry — Regulation metadata and definitions.

Pure data module: contains the Regulation dataclass and the REGULATIONS list
with all EU regulations, DACH national laws, and EDPB guidelines.
"""

from dataclasses import dataclass
from typing import List, Optional


@dataclass
class Regulation:
    """Regulation metadata."""
    code: str
    name: str
    full_name: str
    regulation_type: str
    source_url: str
    description: str
    celex: Optional[str] = None  # CELEX number for EUR-Lex direct access
    local_path: Optional[str] = None
    language: str = "de"
    requirement_count: int = 0


# All regulations from Compliance Hub (EU + DACH national laws + guidelines)
REGULATIONS: List[Regulation] = [
    Regulation(
        code="GDPR",
        name="DSGVO",
        full_name="Verordnung (EU) 2016/679 - Datenschutz-Grundverordnung",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2016/679/oj/deu",
        description="Grundverordnung zum Schutz natuerlicher Personen bei der Verarbeitung personenbezogener Daten.",
        celex="32016R0679",
        requirement_count=99,
    ),
    Regulation(
        code="EPRIVACY",
        name="ePrivacy-Richtlinie",
        full_name="Richtlinie 2002/58/EG",
        regulation_type="eu_directive",
        source_url="https://eur-lex.europa.eu/eli/dir/2002/58/oj/deu",
        description="Datenschutz in der elektronischen Kommunikation, Cookies und Tracking.",
        celex="32002L0058",
        requirement_count=25,
    ),
    Regulation(
        code="TDDDG",
        name="TDDDG",
        full_name="Telekommunikation-Digitale-Dienste-Datenschutz-Gesetz",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/ttdsg/TDDDG.pdf",
        description="Deutsche Umsetzung der ePrivacy-Richtlinie (30 Paragraphen).",
        requirement_count=30,
    ),
    Regulation(
        code="SCC",
        name="Standardvertragsklauseln",
        full_name="Durchfuehrungsbeschluss (EU) 2021/914",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/dec_impl/2021/914/oj/deu",
        description="Standardvertragsklauseln fuer Drittlandtransfers.",
        celex="32021D0914",
        requirement_count=18,
    ),
    Regulation(
        code="DPF",
        name="EU-US Data Privacy Framework",
        full_name="Durchfuehrungsbeschluss (EU) 2023/1795",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/dec_impl/2023/1795/oj",
        description="Angemessenheitsbeschluss fuer USA-Transfers.",
        celex="32023D1795",
        requirement_count=12,
    ),
    Regulation(
        code="AIACT",
        name="EU AI Act",
        full_name="Verordnung (EU) 2024/1689 - KI-Verordnung",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2024/1689/oj/deu",
        description="EU-Verordnung zur Regulierung von KI-Systemen nach Risikostufen.",
        celex="32024R1689",
        requirement_count=85,
    ),
    Regulation(
        code="CRA",
        name="Cyber Resilience Act",
        full_name="Verordnung (EU) 2024/2847",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2024/2847/oj/deu",
        description="Cybersicherheitsanforderungen, SBOM-Pflicht.",
        celex="32024R2847",
        requirement_count=45,
    ),
    Regulation(
        code="NIS2",
        name="NIS2-Richtlinie",
        full_name="Richtlinie (EU) 2022/2555",
        regulation_type="eu_directive",
        source_url="https://eur-lex.europa.eu/eli/dir/2022/2555/oj/deu",
        description="Cybersicherheit fuer wesentliche Einrichtungen.",
        celex="32022L2555",
        requirement_count=46,
    ),
    Regulation(
        code="EUCSA",
        name="EU Cybersecurity Act",
        full_name="Verordnung (EU) 2019/881",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2019/881/oj/deu",
        description="ENISA und Cybersicherheitszertifizierung.",
        celex="32019R0881",
        requirement_count=35,
    ),
    Regulation(
        code="DATAACT",
        name="Data Act",
        full_name="Verordnung (EU) 2023/2854",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2023/2854/oj/deu",
        description="Fairer Datenzugang, IoT-Daten, Cloud-Wechsel.",
        celex="32023R2854",
        requirement_count=42,
    ),
    Regulation(
        code="DGA",
        name="Data Governance Act",
        full_name="Verordnung (EU) 2022/868",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2022/868/oj/deu",
        description="Weiterverwendung oeffentlicher Daten.",
        celex="32022R0868",
        requirement_count=35,
    ),
    Regulation(
        code="DSA",
        name="Digital Services Act",
        full_name="Verordnung (EU) 2022/2065",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2022/2065/oj/deu",
        description="Digitale Dienste, Transparenzpflichten.",
        celex="32022R2065",
        requirement_count=93,
    ),
    Regulation(
        code="EAA",
        name="European Accessibility Act",
        full_name="Richtlinie (EU) 2019/882",
        regulation_type="eu_directive",
        source_url="https://eur-lex.europa.eu/eli/dir/2019/882/oj/deu",
        description="Barrierefreiheit digitaler Produkte.",
        celex="32019L0882",
        requirement_count=25,
    ),
    Regulation(
        code="DSM",
        name="DSM-Urheberrechtsrichtlinie",
        full_name="Richtlinie (EU) 2019/790",
        regulation_type="eu_directive",
        source_url="https://eur-lex.europa.eu/eli/dir/2019/790/oj/deu",
        description="Urheberrecht, Text- und Data-Mining.",
        celex="32019L0790",
        requirement_count=22,
    ),
    Regulation(
        code="PLD",
        name="Produkthaftungsrichtlinie",
        full_name="Richtlinie (EU) 2024/2853",
        regulation_type="eu_directive",
        source_url="https://eur-lex.europa.eu/eli/dir/2024/2853/oj/deu",
        description="Produkthaftung inkl. Software und KI.",
        celex="32024L2853",
        requirement_count=18,
    ),
    Regulation(
        code="GPSR",
        name="General Product Safety",
        full_name="Verordnung (EU) 2023/988",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2023/988/oj/deu",
        description="Allgemeine Produktsicherheit.",
        celex="32023R0988",
        requirement_count=30,
    ),
    Regulation(
        code="BSI-TR-03161-1",
        name="BSI-TR-03161 Teil 1",
        full_name="BSI Technische Richtlinie - Allgemeine Anforderungen",
        regulation_type="bsi_standard",
        source_url="https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-1.pdf?__blob=publicationFile&v=6",
        description="Allgemeine Sicherheitsanforderungen (45 Pruefaspekte).",
        requirement_count=45,
    ),
    Regulation(
        code="BSI-TR-03161-2",
        name="BSI-TR-03161 Teil 2",
        full_name="BSI Technische Richtlinie - Web-Anwendungen",
        regulation_type="bsi_standard",
        source_url="https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-2.pdf?__blob=publicationFile&v=5",
        description="Web-Sicherheit (40 Pruefaspekte).",
        requirement_count=40,
    ),
    Regulation(
        code="BSI-TR-03161-3",
        name="BSI-TR-03161 Teil 3",
        full_name="BSI Technische Richtlinie - Hintergrundsysteme",
        regulation_type="bsi_standard",
        source_url="https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-3.pdf?__blob=publicationFile&v=5",
        description="Backend-Sicherheit (35 Pruefaspekte).",
        requirement_count=35,
    ),
    # Additional regulations for financial sector and health
    Regulation(
        code="DORA",
        name="DORA",
        full_name="Verordnung (EU) 2022/2554 - Digital Operational Resilience Act",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2022/2554/oj/deu",
        description="Digitale operationale Resilienz fuer den Finanzsektor. IKT-Risikomanagement, Vorfallmeldung, Resilienz-Tests.",
        celex="32022R2554",
        requirement_count=64,
    ),
    Regulation(
        code="PSD2",
        name="PSD2",
        full_name="Richtlinie (EU) 2015/2366 - Zahlungsdiensterichtlinie",
        regulation_type="eu_directive",
        source_url="https://eur-lex.europa.eu/eli/dir/2015/2366/oj/deu",
        description="Zahlungsdienste im Binnenmarkt. Starke Kundenauthentifizierung, Open Banking APIs.",
        celex="32015L2366",
        requirement_count=117,
    ),
    Regulation(
        code="AMLR",
        name="AML-Verordnung",
        full_name="Verordnung (EU) 2024/1624 - Geldwaeschebekaempfung",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2024/1624/oj/deu",
        description="Verhinderung der Nutzung des Finanzsystems zur Geldwaesche und Terrorismusfinanzierung.",
        celex="32024R1624",
        requirement_count=89,
    ),
    Regulation(
        code="EHDS",
        name="EHDS",
        full_name="Verordnung (EU) 2025/327 - Europaeischer Gesundheitsdatenraum",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2025/327/oj/deu",
        description="Europaeischer Raum fuer Gesundheitsdaten. Primaer- und Sekundaernutzung von Gesundheitsdaten.",
        celex="32025R0327",
        requirement_count=95,
    ),
    Regulation(
        code="MiCA",
        name="MiCA",
        full_name="Verordnung (EU) 2023/1114 - Markets in Crypto-Assets",
        regulation_type="eu_regulation",
        source_url="https://eur-lex.europa.eu/eli/reg/2023/1114/oj/deu",
        description="Regulierung von Kryptowerten, Stablecoins und Crypto-Asset-Dienstleistern.",
        celex="32023R1114",
        requirement_count=149,
    ),
    # =====================================================================
    # DACH National Laws — Deutschland (P1)
    # =====================================================================
    Regulation(
        code="DE_DDG",
        name="Digitale-Dienste-Gesetz",
        full_name="Digitale-Dienste-Gesetz (DDG)",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/ddg/",
        description="Deutsches Umsetzungsgesetz zum DSA. Regelt Impressumspflicht (§5), Informationspflichten fuer digitale Dienste und Cookies.",
        requirement_count=30,
    ),
    Regulation(
        code="DE_BGB_AGB",
        name="BGB AGB-Recht",
        full_name="BGB §§305-310, 312-312k — AGB und Fernabsatz",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/bgb/",
        description="Deutsches AGB-Recht (§§305-310 BGB) und Fernabsatzrecht (§§312-312k BGB). Klauselverbote, Inhaltskontrolle, Widerrufsrecht, Button-Loesung.",
        local_path="DE_BGB_AGB.txt",
        requirement_count=40,
    ),
    Regulation(
        code="DE_EGBGB",
        name="EGBGB Art. 246-248",
        full_name="Einfuehrungsgesetz zum BGB — Informationspflichten",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/bgbeg/",
        description="Informationspflichten bei Verbrauchervertraegen (Art. 246), Fernabsatz (Art. 246a), E-Commerce (Art. 246c).",
        local_path="DE_EGBGB.txt",
        requirement_count=20,
    ),
    Regulation(
        code="DE_UWG",
        name="UWG Deutschland",
        full_name="Gesetz gegen den unlauteren Wettbewerb (UWG)",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/uwg_2004/",
        description="Unlauterer Wettbewerb: irrefuehrende Werbung, Spam-Verbot, Preisangaben, Online-Marketing-Regeln.",
        requirement_count=25,
    ),
    Regulation(
        code="DE_HGB_RET",
        name="HGB Aufbewahrung",
        full_name="HGB §§238-261, 257 — Handelsbuecher und Aufbewahrungsfristen",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/hgb/",
        description="Buchfuehrungspflicht, Aufbewahrungsfristen 6/10 Jahre, Anforderungen an elektronische Aufbewahrung.",
        local_path="DE_HGB_RET.txt",
        requirement_count=15,
    ),
    Regulation(
        code="DE_AO_RET",
        name="AO Aufbewahrung",
        full_name="Abgabenordnung §§140-148 — Steuerliche Aufbewahrungspflichten",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/ao_1977/",
        description="Steuerliche Buchfuehrungs- und Aufbewahrungspflichten. 6/10 Jahre Fristen, Datenzugriff durch Finanzbehoerden.",
        local_path="DE_AO_RET.txt",
        requirement_count=12,
    ),
    Regulation(
        code="DE_TKG",
        name="TKG 2021",
        full_name="Telekommunikationsgesetz 2021",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/tkg_2021/",
        description="Telekommunikationsregulierung: Kundenschutz, Datenschutz, Vertragslaufzeiten, Netzinfrastruktur.",
        requirement_count=45,
    ),
    # =====================================================================
    # DACH National Laws — Oesterreich (P1)
    # =====================================================================
    Regulation(
        code="AT_ECG",
        name="E-Commerce-Gesetz AT",
        full_name="E-Commerce-Gesetz (ECG) Oesterreich",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20001703",
        description="Oesterreichisches E-Commerce-Gesetz: Impressum/Offenlegungspflicht (§5), Informationspflichten, Haftung von Diensteanbietern.",
        language="de",
        requirement_count=30,
    ),
    Regulation(
        code="AT_TKG",
        name="TKG 2021 AT",
        full_name="Telekommunikationsgesetz 2021 Oesterreich",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20011678",
        description="Oesterreichisches TKG: Cookie-Bestimmungen (§165), Kommunikationsgeheimnis, Endgeraetezugriff.",
        language="de",
        requirement_count=40,
    ),
    Regulation(
        code="AT_KSCHG",
        name="KSchG Oesterreich",
        full_name="Konsumentenschutzgesetz (KSchG) Oesterreich",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10002462",
        description="Konsumentenschutz: AGB-Kontrolle (§6 Klauselverbote, §9 Verbandsklage), Ruecktrittsrecht, Informationspflichten.",
        language="de",
        requirement_count=35,
    ),
    Regulation(
        code="AT_FAGG",
        name="FAGG Oesterreich",
        full_name="Fern- und Auswaertsgeschaefte-Gesetz (FAGG) Oesterreich",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20008847",
        description="Fernabsatzrecht: Informationspflichten, Widerrufsrecht 14 Tage, Button-Loesung, Ausnahmen.",
        language="de",
        requirement_count=20,
    ),
    Regulation(
        code="AT_UGB_RET",
        name="UGB Aufbewahrung AT",
        full_name="UGB §§189-216, 212 — Rechnungslegung und Aufbewahrung Oesterreich",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10001702",
        description="Oesterreichische Rechnungslegungspflicht und Aufbewahrungsfristen (7 Jahre). Buchfuehrung, Jahresabschluss.",
        local_path="AT_UGB_RET.txt",
        language="de",
        requirement_count=15,
    ),
    Regulation(
        code="AT_BAO_RET",
        name="BAO §132 AT",
        full_name="Bundesabgabenordnung §132 — Aufbewahrung Oesterreich",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10003940",
        description="Steuerliche Aufbewahrungspflicht 7 Jahre fuer Buecher, Aufzeichnungen und Belege. Grundstuecke 22 Jahre.",
        language="de",
        requirement_count=5,
    ),
    Regulation(
        code="AT_MEDIENG",
        name="MedienG §§24-25 AT",
        full_name="Mediengesetz §§24-25 Oesterreich — Impressum und Offenlegung",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10000719",
        description="Impressum/Offenlegungspflicht fuer periodische Medien und Websites in Oesterreich.",
        language="de",
        requirement_count=10,
    ),
    # =====================================================================
    # DACH National Laws — Schweiz (P1)
    # =====================================================================
    Regulation(
        code="CH_DSV",
        name="DSV Schweiz",
        full_name="Datenschutzverordnung (DSV) Schweiz — SR 235.11",
        regulation_type="ch_law",
        source_url="https://www.fedlex.admin.ch/eli/cc/2022/568/de",
        description="Ausfuehrungsverordnung zum revDSG: Meldepflichten, DSFA-Verfahren, Auslandtransfers, technische Massnahmen.",
        language="de",
        requirement_count=30,
    ),
    Regulation(
        code="CH_OR_AGB",
        name="OR AGB/Aufbewahrung CH",
        full_name="Obligationenrecht — AGB-Kontrolle und Aufbewahrung Schweiz (SR 220)",
        regulation_type="ch_law",
        source_url="https://www.fedlex.admin.ch/eli/cc/27/317_321_377/de",
        description="Art. 8 OR (AGB-Inhaltskontrolle), Art. 19/20 (Vertragsfreiheit), Art. 957-958f (Buchfuehrung, 10 Jahre Aufbewahrung).",
        local_path="CH_OR_AGB.txt",
        language="de",
        requirement_count=20,
    ),
    Regulation(
        code="CH_UWG",
        name="UWG Schweiz",
        full_name="Bundesgesetz gegen den unlauteren Wettbewerb Schweiz (SR 241)",
        regulation_type="ch_law",
        source_url="https://www.fedlex.admin.ch/eli/cc/1988/223_223_223/de",
        description="Lauterkeitsrecht: Impressumspflicht, irrefuehrende Werbung, aggressive Verkaufsmethoden, AGB-Transparenz.",
        language="de",
        requirement_count=20,
    ),
    Regulation(
        code="CH_FMG",
        name="FMG Schweiz",
        full_name="Fernmeldegesetz Schweiz (SR 784.10)",
        regulation_type="ch_law",
        source_url="https://www.fedlex.admin.ch/eli/cc/1997/2187_2187_2187/de",
        description="Telekommunikationsregulierung: Fernmeldegeheimnis, Cookies/Tracking (Art. 45c), Spam-Verbot, Datenschutz.",
        language="de",
        requirement_count=25,
    ),
    # =====================================================================
    # Deutschland P2
    # =====================================================================
    Regulation(
        code="DE_PANGV",
        name="PAngV",
        full_name="Preisangabenverordnung (PAngV 2022)",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/pangv_2022/",
        description="Preisangaben: Gesamtpreis, Grundpreis, Streichpreise (§11), Online-Preisauszeichnung.",
        requirement_count=15,
    ),
    Regulation(
        code="DE_DLINFOV",
        name="DL-InfoV",
        full_name="Dienstleistungs-Informationspflichten-Verordnung",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/dlinfov/",
        description="Informationspflichten fuer Dienstleister: Identitaet, Kontakt, Berufshaftpflicht, AGB-Zugang.",
        requirement_count=10,
    ),
    Regulation(
        code="DE_BETRVG",
        name="BetrVG §87",
        full_name="Betriebsverfassungsgesetz §87 Abs.1 Nr.6",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/betrvg/",
        description="Mitbestimmung bei technischer Ueberwachung: Betriebsrat-Beteiligung bei IT-Systemen, die Arbeitnehmerverhalten ueberwachen koennen.",
        requirement_count=5,
    ),
    # =====================================================================
    # Oesterreich P2
    # =====================================================================
    Regulation(
        code="AT_ABGB_AGB",
        name="ABGB AGB-Recht AT",
        full_name="ABGB §§861-879, 864a — AGB-Kontrolle Oesterreich",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10001622",
        description="Geltungskontrolle (§864a), Sittenwidrigkeitskontrolle (§879 Abs.3), allgemeine Vertragsregeln.",
        local_path="AT_ABGB_AGB.txt",
        language="de",
        requirement_count=10,
    ),
    Regulation(
        code="AT_UWG",
        name="UWG Oesterreich",
        full_name="Bundesgesetz gegen den unlauteren Wettbewerb Oesterreich",
        regulation_type="at_law",
        source_url="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10002665",
        description="Lauterkeitsrecht AT: irrefuehrende Geschaeftspraktiken, aggressive Praktiken, Preisauszeichnung.",
        language="de",
        requirement_count=15,
    ),
    # =====================================================================
    # Schweiz P2
    # =====================================================================
    Regulation(
        code="CH_GEBUV",
        name="GeBuV Schweiz",
        full_name="Geschaeftsbuecher-Verordnung Schweiz (SR 221.431)",
        regulation_type="ch_law",
        source_url="https://www.fedlex.admin.ch/eli/cc/2002/468_468_468/de",
        description="Ausfuehrungsvorschriften zur Buchfuehrung: elektronische Aufbewahrung, Integritaet, Datentraeger.",
        language="de",
        requirement_count=10,
    ),
    Regulation(
        code="CH_ZERTES",
        name="ZertES Schweiz",
        full_name="Bundesgesetz ueber die elektronische Signatur (SR 943.03)",
        regulation_type="ch_law",
        source_url="https://www.fedlex.admin.ch/eli/cc/2016/752/de",
        description="Elektronische Signatur und Zertifizierung: Qualifizierte Signaturen, Zertifizierungsdiensteanbieter.",
        language="de",
        requirement_count=10,
    ),
    # =====================================================================
    # Deutschland P3
    # =====================================================================
    Regulation(
        code="DE_GESCHGEHG",
        name="GeschGehG",
        full_name="Gesetz zum Schutz von Geschaeftsgeheimnissen",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/geschgehg/",
        description="Schutz von Geschaeftsgeheimnissen: Definition, angemessene Geheimhaltungsmassnahmen, Reverse Engineering.",
        requirement_count=10,
    ),
    Regulation(
        code="DE_BSIG",
        name="BSI-Gesetz",
        full_name="Gesetz ueber das Bundesamt fuer Sicherheit in der Informationstechnik (BSIG)",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/bsig_2009/",
        description="BSI-Aufgaben, KRITIS-Meldepflichten, IT-Sicherheitsstandards, Zertifizierung.",
        requirement_count=20,
    ),
    Regulation(
        code="DE_USTG_RET",
        name="UStG §14b",
        full_name="Umsatzsteuergesetz §14b — Aufbewahrung von Rechnungen",
        regulation_type="de_law",
        source_url="https://www.gesetze-im-internet.de/ustg_1980/",
        description="Aufbewahrungspflicht fuer Rechnungen: 10 Jahre, Grundstuecke 20 Jahre, elektronische Aufbewahrung.",
        local_path="DE_USTG_RET.txt",
        requirement_count=5,
    ),
    # =====================================================================
    # Schweiz P3
    # =====================================================================
    Regulation(
        code="CH_ZGB_PERS",
        name="ZGB Persoenlichkeitsschutz CH",
        full_name="Zivilgesetzbuch Art. 28-28l — Persoenlichkeitsschutz Schweiz (SR 210)",
        regulation_type="ch_law",
        source_url="https://www.fedlex.admin.ch/eli/cc/24/233_245_233/de",
        description="Persoenlichkeitsschutz: Recht am eigenen Bild, Schutz der Privatsphaere, Gegendarstellungsrecht.",
        language="de",
        requirement_count=8,
    ),
    # =====================================================================
    # 3 fehlgeschlagene Quellen mit alternativen URLs nachholen
    # =====================================================================
    Regulation(
        code="LU_DPA_LAW",
        name="Datenschutzgesetz Luxemburg",
        full_name="Loi du 1er aout 2018 — Datenschutzgesetz Luxemburg",
        regulation_type="national_law",
        source_url="https://legilux.public.lu/eli/etat/leg/loi/2018/08/01/a686/jo",
        description="Luxemburgisches Datenschutzgesetz: Organisation der CNPD, nationale DSGVO-Ergaenzung.",
        language="fr",
        requirement_count=40,
    ),
    Regulation(
        code="DK_DATABESKYTTELSESLOVEN",
        name="Databeskyttelsesloven DK",
        full_name="Databeskyttelsesloven — Datenschutzgesetz Daenemark",
        regulation_type="national_law",
        source_url="https://www.retsinformation.dk/eli/lta/2018/502",
        description="Daenisches Datenschutzgesetz als ergaenzende Bestimmungen zur DSGVO. Reguliert durch Datatilsynet.",
        language="da",
        requirement_count=30,
    ),
    Regulation(
        code="EDPB_GUIDELINES_1_2022",
        name="EDPB GL Bussgelder",
        full_name="EDPB Leitlinien 04/2022 zur Berechnung von Bussgeldern nach der DSGVO",
        regulation_type="eu_guideline",
        source_url="https://www.edpb.europa.eu/system/files/2023-05/edpb_guidelines_042022_calculationofadministrativefines_en.pdf",
        description="EDPB-Leitlinien zur Berechnung von Verwaltungsbussgeldern unter der DSGVO.",
        language="en",
        requirement_count=15,
    ),
]
