/** * Legt einmalig den ersten Admin-Zugang an – tut nichts, wenn bereits * Benutzer existieren. Für einen bewussten Passwort-Reset: * * npm run reset-admin */ const { PrismaClient } = require("@prisma/client") const bcrypt = require("bcryptjs") const { loadEnv, generatePassword, printCredentials, } = require("./lib/admin-account") loadEnv() const prisma = new PrismaClient() async function seedAdmin() { const existingUsers = await prisma.user.count() if (existingUsers > 0) { console.log("Es existieren bereits Benutzer – Seeding übersprungen.") console.log("Für einen Passwort-Reset: npm run reset-admin") return } const email = (process.env.ADMIN_EMAIL || "admin@syncova.de").trim() const name = process.env.ADMIN_NAME || "Administrator" const password = process.env.ADMIN_PASSWORD || generatePassword() await prisma.user.create({ data: { email, name, password: await bcrypt.hash(password, 12), role: "SUPER_ADMIN", isActive: true, }, }) printCredentials({ email, password, action: "angelegt" }) } seedAdmin() .catch((error) => { console.error("Fehler beim Anlegen des Admin-Zugangs:", error) process.exitCode = 1 }) .finally(async () => { await prisma.$disconnect() })