Server+Client: REST-API für Kontaktadresse und CallLog, In-Memory vollständig entfernt, CLI-Musterdaten, Route-Param-Fix
- Server: ORM-Modelle Kontaktadresse (kontaktadressen) und CallLog (call_logs) mit FK projekt_id - Server: Geschäftslogik kontaktadresse.py und call_log.py (get/create/update/delete) - Server: DB-Migration V01_03 (kontaktadressen + call_logs Tabellen) - Server: REST-Endpunkte /xhr/kontaktadresse/* und /xhr/calllog/* mit Autorisierung - Server: CLI init-db legt Muster-Kontaktadressen (1-3/Projekt) und Muster-Gesprächsnotizen (2-5/Projekt) an - Client: kontaktadresse.ts auf REST umgestellt, snake_case, In-Memory entfernt - Client: call_log.ts auf REST umgestellt, snake_case, In-Memory entfernt, Submit-Handler implementiert - Client: projekt.ts In-Memory vollständig entfernt (keine weiteren Verbraucher) - Client: Route-Params projektId → projekt_id korrigiert (3 Stellen in projekt.ts) - Client: addCallLog in projekt.ts Route-Params auf snake_case angepasst - AGENTS.md: Erinnerung client-build-Skill nach .ts-Änderungen hinzugefügt Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
1 parent
e04a52857a
commit
b510c50497
13 files changed
+821
-503
No files matched your search
@@ -16,70 +16,6 @@ export interface iProjekt {
|
||||
startdatum: string
|
||||
}
|
||||
|
||||
/**
|
||||
* In-Memory-Datenspeicher für Projekte. Wird noch von call_log.ts und
|
||||
* kontaktadresse.ts verwendet, bis diese Entitäten ebenfalls auf REST
|
||||
* umgestellt sind.
|
||||
*/
|
||||
export const projektDaten: iProjekt[] = [
|
||||
{id: 1, kunden_id: 1, kunden_name: "Musterfirma GmbH", projektname: "Website-Relaunch", zweck: "Neugestaltung der Unternehmenswebsite", verantwortlicher: "Max Mustermann", startdatum: "2024-01-15"},
|
||||
{id: 2, kunden_id: 1, kunden_name: "Musterfirma GmbH", projektname: "E-Commerce Plattform", zweck: "Online-Shop Entwicklung", verantwortlicher: "Anna Schmidt", startdatum: "2024-03-01"},
|
||||
{id: 3, kunden_id: 2, kunden_name: "Beispiel AG", projektname: "CRM-System", zweck: "Kundenbeziehungsmanagement", verantwortlicher: "Peter Müller", startdatum: "2024-02-20"},
|
||||
{id: 4, kunden_id: 3, kunden_name: "Test Unternehmen", projektname: "Mobile App", zweck: "iOS und Android Entwicklung", verantwortlicher: "Lisa Bauer", startdatum: "2024-04-10"}
|
||||
]
|
||||
|
||||
/**
|
||||
* Liefert die nächste freie Projekt-ID auf Basis des In-Memory-Speichers.
|
||||
* Sobald die serverseitige ID-Vergabe verfügbar ist, entfällt diese Funktion.
|
||||
*/
|
||||
export function getNewProjektId(): number {
|
||||
if (projektDaten.length === 0) {
|
||||
return 1
|
||||
}
|
||||
return Math.max(...projektDaten.map((projekt: iProjekt) => projekt.id)) + 1
|
||||
}
|
||||
|
||||
/**
|
||||
* Fügt ein neues Projekt dem In-Memory-Speicher hinzu.
|
||||
*/
|
||||
export function addProjekt(projekt: iProjekt): void {
|
||||
projektDaten.push(projekt)
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualisiert ein bestehendes Projekt im In-Memory-Speicher.
|
||||
*/
|
||||
export function updateProjekt(projekt: iProjekt): void {
|
||||
const index = projektDaten.findIndex((p: iProjekt) => p.id === projekt.id)
|
||||
if (index !== -1) {
|
||||
projektDaten[index] = projekt
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert eine Kopie aller Projekte aus dem In-Memory-Speicher.
|
||||
*/
|
||||
export function getProjekte(): iProjekt[] {
|
||||
return [...projektDaten]
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Projekte eines bestimmten Kunden. Ist kunden_id null, werden
|
||||
* alle Projekte zurückgegeben.
|
||||
*/
|
||||
export function getProjekteByKundenId(kunden_id: number | null): iProjekt[] {
|
||||
return kunden_id
|
||||
? projektDaten.filter((p: iProjekt) => p.kunden_id === kunden_id)
|
||||
: [...projektDaten]
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert ein einzelnes Projekt anhand seiner ID oder undefined.
|
||||
*/
|
||||
export function getProjektById(id: number): iProjekt | undefined {
|
||||
return projektDaten.find((p: iProjekt) => p.id === id)
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* REST-API-Aufrufe (Client-Seite) */
|
||||
/* ------------------------------------------------------------------ */
|
||||
|
||||
Reference in new issue
Block a user