feat(calllog): kontaktadresse_id als Pflicht-FK + is_erledigt()-Methoden
- Migration V01_13: Spalte kontaktadresse_id auf call_logs mit Backfill über die erste Kontaktadresse des Projekts; Commit vor dem Systeminfo-Update (Muster wie V01_08) gegen 'database is locked'. - CallLog gehört zu genau einer Kontaktadresse (FK, Pflichtfeld); create/update validieren Existenz und Projekt-Zugehörigkeit. - is_erledigt() auf Kontaktadresse (mind. ein erledigend-Tag reicht) und Projekt (False ohne Kontakte, sonst alle erledigt); beide in to_dict() serialisiert. - Client: kontaktadresse_id in Notizmaske/Submit (required), Interfaces um is_erledigt erweitert. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
1 parent
24b492c5c1
commit
977b64292c
9 files changed
+174
-18
No files matched your search
@@ -5,7 +5,10 @@ import m from "mithril"
|
||||
* Jede Kontaktadresse ist genau einem Projekt zugeordnet (FK projekt_id).
|
||||
* Die Feldnamen entsprechen den serverseitigen ORM-Spalten (snake_case).
|
||||
* projekt_name ist keine ORM-Spalte, sondern wird serverseitig aus der
|
||||
* Projekt-Relationship abgeleitet und im JSON ergänzt.
|
||||
* Projekt-Relationship abgeleitet und im JSON ergänzt. is_erledigt ist
|
||||
* ebenfalls keine Spalte, sondern wird serverseitig dynamisch berechnet:
|
||||
* True, sobald mindestens eine Gesprächsnotiz des Kontakts einen Tag mit
|
||||
* is_erledigend=True hat.
|
||||
*/
|
||||
export interface iKontaktadresse {
|
||||
id: number
|
||||
@@ -22,6 +25,8 @@ export interface iKontaktadresse {
|
||||
ort: string
|
||||
land: string
|
||||
notiz: string
|
||||
/** Dynamisch berechneter Erledigt-Status (keine ORM-Spalte). */
|
||||
is_erledigt: boolean
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
|
||||
Reference in new issue
Block a user