Files
buchhaltung/CHANGELOG_API_2026-05-07.md

126 lines
3.2 KiB
Markdown

# 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)*