Files
buchhaltung/CHANGELOG_API_2026-05-07.md

3.2 KiB

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

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

// 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

# 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

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