# ADR 0013 — Kunden-/Adress-/Kontaktmodell ## Status Accepted ## Kurz erklärt Ein Kunde ist nicht einfach nur ein Datensatz mit Name, Adresse und E-Mail. Es gibt: - Privatpersonen - Firmen - Ansprechpartner - Rechnungsadressen - technische Kontakte - abweichende Postadressen ## Kontext Das Architekturreview hat kritisiert, dass das Objekt „Kunde“ zu monolithisch gedacht war. Ein zu einfaches Kundenmodell erschwert später: - DSGVO-Auskunft - DSGVO-Löschung - B2B/B2C-Unterscheidung - mehrere Ansprechpartner - getrennte Rechnungsadressen - spätere Mandantenfähigkeit ## Entscheidung Das fachliche Kundenmodell wird aufgeteilt in: - Customer - Party - Address - ContactPoint - CustomerContact ## Begriffe ### Customer Die Kundenbeziehung im System. ### Party Eine Person oder Organisation. ### Address Eine Adresse mit Verwendungszweck, z. B.: - Rechnungsadresse - Postadresse - Firmensitz ### ContactPoint Kontaktmöglichkeit, z. B.: - E-Mail - Telefon - Mobil - Website ### CustomerContact Verknüpfung zwischen Kunde und Ansprechpartner. ## Beispiel ```text Customer: Müller Webservice Party: Müller Webservice GmbH Address: Rechnungsadresse ContactPoint: buchhaltung@... ContactPoint: technik@... CustomerContact: Max Müller als technischer Ansprechpartner ``` ## B2B/B2C Das Modell muss unterscheiden können: - B2B - B2C - öffentliche Einrichtung - Verein/Organisation ## Begründung Das ist notwendig für: - korrekte Rechnungsdaten - DSGVO - Supportprozesse - Vertragsverwaltung - spätere Erweiterbarkeit ## Konsequenzen ### Positiv - saubereres Datenmodell - bessere DSGVO-Fähigkeit - bessere B2B/B2C-Unterstützung - bessere Kundenrealität ### Negativ - mehr Tabellen - mehr UI-Komplexität - Importlogik muss sauber mappen ## Verwandte ADRs - ADR 0021 — DSGVO-Löschung und Retention - ADR 0015 — Tax- und VAT-Strategie