126 lines
3.2 KiB
Markdown
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)*
|