import 'models.dart'; /// Phase-0 fixture data for the five pilot norms. /// /// **THIS IS DEMO DATA.** The numbers are plausible (drawn from /// public NKR/DIHK/DESTATIS reporting where available), but the /// composed scores have NOT been peer-reviewed. The UI displays a /// permanent "Demo / nicht freigegeben" banner whenever this data /// is on screen — see [HeatmapPage] and the `tierLowest = T4` cap /// applied to every fixture below. /// /// Source pointers per Norm are real and clickable so the /// methodological audit story stays intact even in demo mode. class Fixtures { static final List evaluations = [ _gewo14, _kassenSichV, _dsgvoArt30, _berlinBauO60, _miLoG17, ]; static final _gewo14 = Evaluation( norm: Norm( eli: 'eli/bund/gewo/14', title: 'Anzeigepflicht', jurabk: 'GewO', paragraph: '§ 14', standDate: DateTime.utc(2025, 12, 1), sourceUrl: 'https://www.gesetze-im-internet.de/gewo/__14.html', sourceSha256: 'demo-${'a' * 60}', ), skmEurPerYear: 2_800_000, benefitScore: 2.5, affectedCount: 180_000, frustScore: 4.5, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Gewerbetreibende', action: 'Beginn, Wechsel, Aufgabe eines stehenden Gewerbes anzeigen', frequency: 'anlassbezogen', sourceNorm: 'GewO § 14', authority: 'zuständige Behörde am Niederlassungsort', ), ], sources: const [ Source( label: 'BMJ — gesetze-im-internet.de', url: 'https://www.gesetze-im-internet.de/gewo/__14.html', tier: EvidenceTier.t1, ), Source( label: 'NKR Bürokratiekosten-Datenbank', url: 'https://www.normenkontrollrat.bund.de/', tier: EvidenceTier.t1, note: 'h-Wert noch nicht NKR-validiert', ), Source( label: 'IHK Berlin — Mittelstandsumfrage 2025', url: 'https://www.ihk.de/berlin', tier: EvidenceTier.t2, ), ], auditEventId: 'demo-evt-gewo-14', notes: 'Demo-Schätzung. h aus IHK-Beispielwert, P aus DESTATIS Unternehmensregister Berlin.', ); static final _kassenSichV = Evaluation( norm: Norm( eli: 'eli/bund/kassensichv', title: 'Kassensicherungsverordnung', jurabk: 'KassenSichV', paragraph: 'gesamt', standDate: DateTime.utc(2025, 11, 15), sourceUrl: 'https://www.gesetze-im-internet.de/kassensichv/index.html', sourceSha256: 'demo-${'b' * 60}', ), skmEurPerYear: 25_000_000, benefitScore: 3.0, affectedCount: 500_000, frustScore: 7.5, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Betreiber elektronischer Kassen', action: 'TSE-Zertifizierte Sicherheitseinrichtung einsetzen', frequency: 'kontinuierlich', sourceNorm: 'KassenSichV § 1–4', authority: 'Finanzamt / BSI', consequence: 'Bußgeld bis 25.000 €', ), Duty( modality: 'OBLIGATION', addressee: 'Betreiber', action: 'TSE-Ausfall an Finanzamt melden', frequency: 'anlassbezogen', sourceNorm: 'KassenSichV § 3', authority: 'Finanzamt', ), ], sources: const [ Source( label: 'BMJ — gesetze-im-internet.de', url: 'https://www.gesetze-im-internet.de/kassensichv/index.html', tier: EvidenceTier.t1, ), Source( label: 'DIHK — Bürokratie-Index 2025', url: 'https://www.dihk.de/buerokratie', tier: EvidenceTier.t2, ), Source( label: 'DEHOGA Berlin Mittelstandsumfrage', url: 'https://www.dehoga-berlin.de/', tier: EvidenceTier.t2, note: 'h-Wert aus Gastronomie-Stichprobe', ), ], auditEventId: 'demo-evt-kassensichv', notes: 'Demo. Hoher Frust-Score wegen TSE-Ausfallmeldung + Hardware-Folgekosten.', ); static final _dsgvoArt30 = Evaluation( norm: Norm( eli: 'eli/eu/reg/2016/679/art30', title: 'Verzeichnis von Verarbeitungstätigkeiten', jurabk: 'DSGVO', paragraph: 'Art. 30', standDate: DateTime.utc(2025, 10, 1), sourceUrl: 'https://eur-lex.europa.eu/eli/reg/2016/679', sourceSha256: 'demo-${'c' * 60}', ), skmEurPerYear: 450_000_000, benefitScore: 3.8, affectedCount: 3_000_000, frustScore: 8.5, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Verantwortliche + Auftragsverarbeiter', action: 'Verzeichnis aller Verarbeitungstätigkeiten führen', frequency: 'jährlich überprüfen', sourceNorm: 'DSGVO Art. 30 Abs. 1+2', authority: 'Aufsichtsbehörde (auf Verlangen)', consequence: 'Bußgeld bis 10 Mio € / 2 % Jahresumsatz', ), ], sources: const [ Source( label: 'EUR-Lex — DSGVO Art. 30', url: 'https://eur-lex.europa.eu/eli/reg/2016/679', tier: EvidenceTier.t1, ), Source( label: 'DIHK — DSGVO-Belastung der Wirtschaft 2024', url: 'https://www.dihk.de/dsgvo', tier: EvidenceTier.t2, ), Source( label: 'BfDI — Tätigkeitsbericht', url: 'https://www.bfdi.bund.de/', tier: EvidenceTier.t1, ), ], auditEventId: 'demo-evt-dsgvo-30', notes: 'Demo. EU-determiniert → Reform-Vorschlag muss Brüssel adressieren, nicht DE-Streichung.', ); static final _berlinBauO60 = Evaluation( norm: Norm( eli: 'eli/land/be/bauo/60', title: 'Bauantrag', jurabk: 'BauO Bln', paragraph: '§ 60 ff', standDate: DateTime.utc(2025, 9, 1), sourceUrl: 'https://gesetze.berlin.de/bsbe/document/jlr-BauOBE2005V25P60', sourceSha256: 'demo-${'d' * 60}', ), skmEurPerYear: 72_000_000, benefitScore: 3.5, affectedCount: 15_000, frustScore: 9.0, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Bauherr', action: 'Bauantrag mit Bauvorlagen einreichen', frequency: 'pro Bauvorhaben', sourceNorm: 'BauO Bln § 60–69', authority: 'Bauaufsichtsbehörde Bezirk', ), ], sources: const [ Source( label: 'landesrecht-berlin.de', url: 'https://gesetze.berlin.de/bsbe/document/jlr-BauOBE2005V25P60', tier: EvidenceTier.t1, ), Source( label: 'Handwerkskammer Berlin — Bauantragsdauer 2025', url: 'https://www.hwk-berlin.de/', tier: EvidenceTier.t2, ), Source( label: 'mein.berlin.de — Bürgerbeteiligung Bauverfahren', url: 'https://mein.berlin.de/', tier: EvidenceTier.t4, ), ], auditEventId: 'demo-evt-berlinbauo-60', notes: 'Demo. Höchster Frust-Score (Verweistiefe + Behörden-Pluralität Bezirk×Senat).', ); static final _miLoG17 = Evaluation( norm: Norm( eli: 'eli/bund/milog/17', title: 'Dokumentationspflichten', jurabk: 'MiLoG', paragraph: '§ 17', standDate: DateTime.utc(2025, 11, 1), sourceUrl: 'https://www.gesetze-im-internet.de/milog/__17.html', sourceSha256: 'demo-${'e' * 60}', ), skmEurPerYear: 270_000_000, benefitScore: 3.2, affectedCount: 3_000_000, frustScore: 7.0, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Arbeitgeber in MiLoG-relevanten Branchen', action: 'Beginn, Ende, Dauer der täglichen Arbeitszeit aufzeichnen', frequency: 'arbeitstäglich', sourceNorm: 'MiLoG § 17 Abs. 1', authority: 'Zoll (FKS)', consequence: 'Bußgeld bis 30.000 €', ), ], sources: const [ Source( label: 'BMJ — gesetze-im-internet.de', url: 'https://www.gesetze-im-internet.de/milog/__17.html', tier: EvidenceTier.t1, ), Source( label: 'NKR — Stellungnahme Mindestlohngesetz', url: 'https://www.normenkontrollrat.bund.de/', tier: EvidenceTier.t1, ), Source( label: 'ZDH — Bürokratiekosten Handwerk', url: 'https://www.zdh.de/', tier: EvidenceTier.t2, ), ], auditEventId: 'demo-evt-milog-17', notes: 'Demo. P × F × T × h: 3 Mio Betroffene × 220 Arbeitstage × 0,1h × 30€/h.', ); }