Ein neues System um Stammdaten-Kataloge zwischen Installationen zu teilen – explizit ohne Kundendaten, Verträge oder Einstellungen. **Was wird exportiert:** - Anbieter + zugehörige Tarife - Kündigungsfristen - Vertragslaufzeiten - Vertragskategorien - PDF-Auftragsvorlagen (JSON + PDF-Dateien + Feldzuordnungen) **Was NICHT:** - Kundendaten, Verträge, Dokumente, Emails, SMTP-Einstellungen → dafür gibt es den Datenbank-Backup **Neue Einstellungsseite /settings/factory-defaults:** - Zeigt Anzahl pro Kategorie (Anbieter, Tarife, Fristen, …) - "Exportieren"-Button lädt ZIP herunter (manifest.json + JSONs + PDFs) - Import-Anleitung inline **Import-Script:** - `npm run seed:defaults` (tsx scripts/seed-factory-defaults.ts) - Liest alle JSON-Dateien aus backend/factory-defaults/*/*.json - Merged mehrere Dateien automatisch pro Kategorie (unique-key gewinnt zuletzt) - Upsertet idempotent → kann mehrfach ausgeführt werden - Kopiert PDF-Vorlagen aus factory-defaults/pdf-templates/ nach uploads/pdf-templates/ - Alte PDF-Dateien werden beim Re-Import entsorgt Backend: - services/factoryDefaults.service.ts: collectFactoryDefaults() + exportFactoryDefaults() - controllers/factoryDefaults.controller.ts: preview + export - routes/factoryDefaults.routes.ts: GET /api/factory-defaults/preview + /export - scripts/seed-factory-defaults.ts: CLI-Import-Script - .gitignore: factory-defaults/* außer .gitkeep und README.md Frontend: - pages/settings/FactoryDefaults.tsx: Übersicht + Export-Button - Settings-Karte „Factory-Defaults" im System-Abschnitt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .gitkeep | ||
| README.md | ||
README.md
Factory Defaults
Dieser Ordner enthält Stammdaten-Kataloge, die beim Initialisieren einer neuen OpenCRM-Installation automatisch eingespielt werden können.
Was ist drin?
providers.json– Anbieter inkl. zugehöriger Tarifecancellation-periods.json– Kündigungsfristen (z.B. "14 Tage", "1 Monat")contract-durations.json– Vertragslaufzeiten (z.B. "12 Monate", "24 Monate")contract-categories.json– Vertragskategorien (Strom, Gas, DSL …)pdf-templates.json+pdf-templates/*.pdf– PDF-Auftragsvorlagen mit Feldzuordnungen
NICHT enthalten sind Kundendaten, Verträge, Dokumente, E-Mails oder SMTP-Einstellungen. Dafür gibt es den separaten Datenbank-Backup-Export.
Wie nutze ich das?
Export (aus bestehender Installation)
In den CRM-Einstellungen → Factory-Defaults → „Exportieren" → ZIP herunterladen und den Inhalt in diesen Ordner entpacken.
Import
npm run seed:defaults
Das Script liest alle Dateien aus diesem Ordner, merged mehrere JSONs automatisch
per unique-name und spielt sie per Prisma upsert ein. Kann mehrfach ausgeführt
werden (idempotent).
Mehrere Export-Dateien mergen
Wenn du mehrere ZIPs entpackst (z.B. Provider-Pakete von verschiedenen Quellen),
kannst du die JSON-Dateien frei umbenennen – das Script liest alle *.json im
jeweiligen Unterordner und merged den Inhalt zusammen.
Beispiel:
providers/
verivox.json
check24.json
eigene.json
Alle drei werden eingespielt, gleiche Anbieter werden über den name gemerged.