Skip to content

ADR-0005 – customerskontakte mit Person/Organisation-Modell

Status

Accepted (Migration 035).

Kontext

Das ursprüngliche customers-Modell mischte Firmen und Einzelpersonen und kodierte den Ansprechpartner als Freitextfeld (contact_person, position). Für Handwerksbetriebe sind sowohl Organisationen (Auftraggeber-Firmen) als auch konkrete Personen (Ansprechpartner, Privatkunden) relevant – mit echten Beziehungen.

Entscheidung

  • Tabelle customerskontakte umbenannt.
  • Typdiskriminator kind ∈ {person, organisation} (abgeleitet aus altem type).
  • Person-Felder (salutation, title, first_name, last_name, name_suffix) und Organisations-/Zahlungsfelder (legal_form, commercial_register, default_vat_rate, payment_term_days, skonto_*) ergänzt.
  • n:m-Verknüpfung organisation_personen (mit Rolle/Position) ersetzt die Freitextfelder contact_person/position.
  • FK-Spalten in referenzierenden Tabellen customer_idkontakt_id; invoice_summary-View umgestellt.

Konsequenzen

  • ➕ Sauberes CRM-Modell, echte Ansprechpartner-Beziehungen, steuer-/zahlungsrelevante Felder am richtigen Objekt.
  • ➖ Begriffs-Mix im Code (Domain-Funktionen heißen weiter *Customer*, DB heißt kontakte); Migrations-/FK-Umstellung war invasiv.

Verwandte Notes

Work7 · Software für Handwerksbetriebe