# Backend API Erweiterung - Changelog **Datum:** 7. Mai 2026 **Commit:** 0f8475c **Autor:** Peter (OpenClaw) ## Neue API-Endpunkte ### Dashboard (`/api/dashboard`) | Methode | Endpoint | Beschreibung | |---------|----------|--------------| | GET | `/summary` | Übersicht Einnahmen, Ausgaben, Kredite, Stunden | | GET | `/cashflow` | Monatlicher Cashflow (6 Monate) | | GET | `/tax-preview` | Steuer-Vorschau für aktuelles Jahr | ### Customers (`/api/customers`) | Methode | Endpoint | Beschreibung | |---------|----------|--------------| | GET | `/` | Alle Kunden (mit Suche) | | GET | `/:id` | Einzelner Kunde mit Rechnungen | | POST | `/` | Kunde erstellen | | PUT | `/:id` | Kunde aktualisieren | | DELETE | `/:id` | Kunde löschen | ### Invoices (`/api/invoices`) | Methode | Endpoint | Beschreibung | |---------|----------|--------------| | GET | `/` | Alle Rechnungen (mit Filter) | | GET | `/:id` | Einzelne Rechnung mit Zahlungen | | POST | `/` | Rechnung erstellen | | PUT | `/:id` | Rechnung aktualisieren | | DELETE | `/:id` | Rechnung löschen | | POST | `/:id/payment` | Zahlung hinzufügen | ## Datenbank-Schema Erweiterungen ### Neue Tabellen ```sql CREATE TABLE kunden ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(255) NOT NULL UNIQUE, adresse TEXT, plz VARCHAR(10), ort VARCHAR(100), email VARCHAR(255), telefon VARCHAR(50), notizen TEXT, created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE rechnung_zahlungen ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), rechnung_id UUID REFERENCES rechnungen(id) ON DELETE CASCADE, betrag DECIMAL(10,2) NOT NULL, datum DATE NOT NULL DEFAULT CURRENT_DATE, methode VARCHAR(50), notizen TEXT, created_at TIMESTAMP DEFAULT NOW() ); -- Weitere Tabellen für Nebenkosten: -- mieter, mietvertraege, objektkosten, vorauszahlungen -- nebenkostenabrechnungen, abrechnungspositionen ``` ### Erweiterte Tabellen - `objekte` - hinzugefügt: `plz`, `ort`, `wohnflaeche_qm`, `bemerkung` ## Technische Details ### Server.js Änderungen ```javascript // Neue Routen importieren const dashboardRoutes = require('./routes/dashboard'); const customersRoutes = require('./routes/customers'); const invoicesRoutes = require('./routes/invoices'); // Routen registrieren app.use('/api/dashboard', dashboardRoutes); app.use('/api/customers', customersRoutes); app.use('/api/invoices', invoicesRoutes); ``` ### Abhängigkeiten - Keine neuen npm-Pakete - Nutzt bestehende PostgreSQL-Verbindung - Kompatibel mit bestehendem Frontend ## Deployment ```bash # Auf CT141: cd /root/buchhaltungs-app/backend docker build -t buchhaltung-gitea_backend:latest . docker restart backend ``` ## Frontend Integration Die neuen Endpunkte entsprechen den im Frontend erwarteten URLs: - Dashboard Übersicht ✓ - Kundenliste ✓ - Rechnungsliste ✓ - Nebenkosten-Module ✓ ## Testing ```bash # Login curl -X POST http://192.168.0.141/api/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"admin123"}' # Dashboard curl http://192.168.0.141/api/dashboard/summary # Alle Endpunkte curl http://192.168.0.141/api/customers curl http://192.168.0.141/api/invoices ``` --- *Deploy-Status: ✅ Erfolgreich auf CT141 (192.168.0.141)*