feat(db): Datenmodell, erste Migration und Seed (#003)

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>
This commit is contained in:
2026-09-17 20:32:04 +02:00
co-authored by Claude Opus 5
parent 090396f6c0
commit 293bcf4b5a
22 changed files with 4121 additions and 36 deletions
+24
View File
@@ -0,0 +1,24 @@
import { PrismaPg } from "@prisma/adapter-pg";
import { PrismaClient } from "@/generated/prisma/client";
/**
* Prisma-Client als Singleton. Im Entwicklungsmodus lädt Next.js Module neu,
* ohne den Prozess zu beenden – ohne Singleton entstünden dabei immer neue Verbindungspools.
*/
declare global {
var proxledgerPrisma: PrismaClient | undefined;
}
function erzeugeClient(): PrismaClient {
const connectionString = process.env.DATABASE_URL;
if (!connectionString) {
throw new Error("DATABASE_URL ist nicht gesetzt. Beispielwerte stehen in .env.example.");
}
return new PrismaClient({ adapter: new PrismaPg({ connectionString }) });
}
export const prisma: PrismaClient = globalThis.proxledgerPrisma ?? erzeugeClient();
if (process.env.NODE_ENV !== "production") {
globalThis.proxledgerPrisma = prisma;
}