create_estimate
ChatGPTLegt eine Schätzung an. IDs stammen aus get_cost_structure. no_offer_expected=true erzeugt beziehungsweise synchronisiert das bestehende Dummy-Angebot nach vorhandener Fachlogik.
create_offer
ChatGPTLegt ein normales Angebot ohne Dokument-Upload an. Status-ID muss aus dem aktiven passenden Katalog derselben get_cost_structure-Projektantwort stammen: nicht-leeren slug verwenden, bei leerem slug exakt das label im passenden Katalog abgleichen, bei Mehrdeutigkeit nicht raten; IDs nie projektübergreifend oder zwischen Angebots- und Zahlungsstatus wiederverwenden. Vergleichsangebot-Regeln und Zahlungsregeln werden zentral geprüft.
create_payment
ChatGPTLegt eine Zahlung ohne Dokument-Upload an und kann ein verknüpftes bestehendes Angebot als vollständig bezahlt markieren. Status-ID muss aus dem aktiven passenden Katalog derselben get_cost_structure-Projektantwort stammen: nicht-leeren slug verwenden, bei leerem slug exakt das label im passenden Katalog abgleichen, bei Mehrdeutigkeit nicht raten; IDs nie projektübergreifend oder zwischen Angebots- und Zahlungsstatus wiederverwenden.
delete_document
ChatGPTLöscht ein Dokument nach Bestätigung.
delete_estimate
ChatGPTLöscht eine Schätzung und ihre Dokumente sowie erzeugte Dummy-Angebote und deren Dokumente; IDs stammen aus get_cost_structure. Das Tool ist destruktiv und benötigt Bestätigung.
delete_offer
ChatGPTLöscht ein normales Angebot und seine Dokumente nach Bestätigung und löst verknüpfte Zahlungen vom Angebot, wobei deren Kategoriezuordnung erhalten bleibt. Angebote mit Dokumenten erfordern zusätzlich project.documents.delete.
delete_payment
ChatGPTLöscht eine Zahlung und ihre Dokumente nach Bestätigung. Der vollständig-bezahlt-Status des verknüpften Angebots kann zurückgesetzt werden; bei Beibehaltung kann die bestehende Warnung zurückgegeben werden. Zahlungen mit Dokumenten erfordern zusätzlich project.documents.delete.
download_document
ChatGPTLiefert Metadaten und einen autorisierten MCP resource_link.
get_cost_overview
ChatGPTLiefert die aggregierte aktuelle Kostenübersicht und Kostenprognose eines einzelnen Bauprojekts. Verwende dieses Tool bei Fragen wie: Was kostet das Projekt insgesamt? Wie teuer wird mein Hausbau? Wie hoch ist die Prognose? Wie ist der aktuelle Kostenstand? Wie viel wurde geschätzt, über Angebote berücksichtigt, bereits bezahlt, noch nicht bezahlt oder ist laut Prognose noch offen? Das Tool liefert Gesamtsummen, keine einzelnen Schätzungen, Angebote oder Rechnungen. Ist die project_id noch unbekannt, verwende zuerst list_projects.
get_cost_structure
ChatGPTLiefert die hierarchische Kostenstruktur eines einzelnen Bauprojekts mit Kategorien, Unterkategorien, gespeicherten Schätzungen, Angeboten und Zahlungen sowie aktiven projektspezifischen offer_statuses- und payment_statuses-Katalogen. Verschachtelte Datensatzstatus können historisch inaktiv sein: Sie sind nicht allgemein auswählbar und dürfen nur beim Update desselben Datensatzes mit exakt derselben numerischen ID unverändert erhalten bleiben. Für aktive Kataloge per nicht-leerem slug oder sonst exaktem label wählen, bei Mehrdeutigkeit nicht raten und Angebots-/Zahlungsstatus nie mischen. Verwende dieses Tool bei Fragen nach einzelnen Gewerken oder Kostenpositionen, Schätzungen, Angeboten, Vergleichsangeboten, vollständig bezahlten oder automatisch erzeugten Dummy-Angeboten, Rechnungen beziehungsweise Zahlungen und den Kommentaren dieser Datensätze. Verwende für aggregierte Gesamtsummen und die Kostenprognose stattdessen get_cost_overview. Ist die project_id unbekannt, verwende zuerst list_projects.
get_project
ChatGPTLiefert die gespeicherten Stammdaten eines einzelnen zugänglichen Bauprojekts, darunter Name, Status, Beschreibung, Adresse, Ort und Wohnfläche. Verwende dieses Tool bei Fragen zum Projekt selbst. Verwende für zusammengefasste Kosten, Gesamtkosten, Prognose, bezahlte Beträge oder offene Kosten stattdessen get_cost_overview. Ist die project_id noch unbekannt, verwende zuerst list_projects.
list_documents
ChatGPTLiefert Dokumente zu Schätzung, Angebot oder Zahlung als kanonische DTO-Liste.
list_projects
ChatGPTLiefert alle aktiven Bauprojekte, auf die der angemeldete Benutzer Leserechte hat. Verwende dieses Tool, wenn der Nutzer seine Projekte oder Bauvorhaben sehen möchte oder ein Projekt nur über seinen Namen oder Ort nennt und für eine weitere projektbezogene Abfrage zuerst die project_id ermittelt werden muss. Bei mehreren passenden Projekten nicht raten, sondern anhand der Ergebnisse nachfragen.
replace_document
ChatGPTErsetzt ein vorhandenes Dokument anhand seiner document_id nach Bestätigung.
update_estimate
ChatGPTErsetzt alle Felder einer Schätzung vollständig. IDs stammen aus get_cost_structure. no_offer_expected=true erzeugt beziehungsweise synchronisiert das bestehende Dummy-Angebot nach vorhandener Fachlogik; wird danach wieder ein Angebot erwartet, werden das erzeugte Dummy-Angebot und seine Dokumente vorbehaltlich der bestehenden Berechtigungsprüfung entfernt.
update_offer
ChatGPTErsetzt alle veränderbaren Angebotsfelder vollständig. Für neue oder geänderte Status die aktiven passenden Kataloge derselben get_cost_structure-Projektantwort verwenden. Hat dieser Datensatz aktuell einen inaktiven verschachtelten Status, darf genau diese numerische ID unverändert erneut gesendet werden; keine anderen inaktiven IDs aus anderen Datensätzen wählen und IDs nie raten, hartcodieren oder zwischen Projekten beziehungsweise Statusarten wiederverwenden. Nullable Werte müssen explizit als null übergeben werden.
update_payment
ChatGPTErsetzt alle Zahlungsfelder vollständig, kann das verknüpfte Angebot als vollständig bezahlt markieren und kann den vollständig-bezahlt-Status eines betroffenen Angebots gemäß fully_paid_offer_action zurücksetzen. Für neue oder geänderte Status die aktiven passenden Kataloge derselben get_cost_structure-Projektantwort verwenden. Hat dieser Datensatz aktuell einen inaktiven verschachtelten Status, darf genau diese numerische ID unverändert erneut gesendet werden; keine anderen inaktiven IDs aus anderen Datensätzen wählen und IDs nie raten, hartcodieren oder zwischen Projekten beziehungsweise Statusarten wiederverwenden. Nullable Werte müssen explizit als null übergeben werden.
upload_document
ChatGPTLegt ein Dokument zu Schätzung, Angebot oder Zahlung an; bestehende Dokumente werden nicht überschrieben.