109 lines
1.8 KiB
Markdown
109 lines
1.8 KiB
Markdown
# 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
|