diff --git a/CHANGELOG_API_2026-05-07.md b/CHANGELOG_API_2026-05-07.md new file mode 100644 index 0000000..30c9ca8 --- /dev/null +++ b/CHANGELOG_API_2026-05-07.md @@ -0,0 +1,125 @@ +# 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)*