Prisma 7.10 mit Postgres-Adapter, 23 Modelle inklusive Rechnungen mit Positionen, Seed fuer Administrator, Warnregeln und Demo-Daten, Testdatenbank fuer Vitest. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
#003 Datenmodell und Migrationen
Status: erledigt Meilenstein: v0.1.0 Labels: backend, datenbank Geschätzt: 5 h Tatsächlich: 0 h 25 min
Ziel
Vollständiges Prisma-Schema gemäß docs/architektur.md Abschnitt 3, erste Migration, Seed mit Admin-User und optionalen Demo-Daten.
Aufgaben
- Docker-Compose für lokale Entwicklung (nur PostgreSQL)
- Prisma-Schema: Customer, Site, Host, Tag, Report, SubscriptionKey, ServerIdHistory, SubscriptionPeriod, PurchaseInvoice(+Item), SalesInvoice(+Item), Attachment, AgentToken, EnrollmentToken, Alert, Notification, AlertRuleSetting, NotificationChannel, User, AuditLog, Setting
- Indizes für Suche (Key, Server-ID, Hostname, IP, Rechnungsnummer)
- Erste Migration
- Seed: Admin-User aus Umgebungsvariablen, Standard-Warnregeln, optional Demo-Daten (
SEED_DEMO=1) - DB-Client-Singleton, Test-Datenbank-Setup für Vitest
Akzeptanzkriterien
npx prisma migrate devläuft auf leerer DB durchnpx prisma db seedlegt Admin und Standard-Regeln an, idempotent- Beträge als Decimal, Zeitstempel in UTC
Abhängigkeiten
#001
Notizen / Entscheidungen
- Host-Identität über Agent-Token/
agentId, nicht über Server-ID (siehe Architektur). - Rechnungen als eigene Entitäten mit Positionen, damit Sammelbestellungen und Sammelrechnungen abbildbar sind.
- Prisma 7.10.0 statt der npm-Kennzeichnung „latest“: dort liegt derzeit ein Release Candidate (8.0.0-rc).
- Prisma 7 benötigt einen Treiber-Adapter; im Einsatz ist
@prisma/adapter-pg. - Der Seed legt Demo-Daten aus
src/mock/data.tsan, damit Prototyp und Datenbank dieselben Beispiele zeigen. Die Sammelrechnung PX-2025-88213 deckt bewusst zwei Laufzeiten ab. - Passwörter werden mit argon2id gehasht (
@node-rs/argon2, vorkompiliert – kein Build-Toolchain nötig).