import { PrismaClient } from "@prisma/client" import { hashPassword } from "better-auth/crypto" const prisma = new PrismaClient() const email = process.env.SEED_USER_EMAIL ?? "admin@sistema.dev" const password = process.env.SEED_USER_PASSWORD ?? "admin123" const name = process.env.SEED_USER_NAME ?? "Administrador" const role = process.env.SEED_USER_ROLE ?? "admin" const tenantId = process.env.SEED_USER_TENANT ?? "tenant-atlas" async function main() { const hashedPassword = await hashPassword(password) const user = await prisma.authUser.upsert({ where: { email }, update: { name, role, tenantId, }, create: { email, name, role, tenantId, accounts: { create: { providerId: "credential", accountId: email, password: hashedPassword, }, }, }, include: { accounts: true, }, }) await prisma.authAccount.updateMany({ where: { userId: user.id, accountId: email, }, data: { providerId: "credential", }, }) let account = await prisma.authAccount.findFirst({ where: { userId: user.id, providerId: "credential", accountId: email, }, }) if (account) { account = await prisma.authAccount.update({ where: { id: account.id }, data: { password: hashedPassword, }, }) } else { account = await prisma.authAccount.create({ data: { userId: user.id, providerId: "credential", accountId: email, password: hashedPassword, }, }) } console.log(`✅ Usuario seed criado/atualizado: ${user.email}`) console.log(` ID: ${user.id}`) console.log(` Role: ${user.role}`) console.log(` Tenant: ${user.tenantId ?? "(nenhum)"}`) console.log(` Provider: ${account?.providerId ?? "-"}`) console.log(`Senha provisoria: ${password}`) } main() .catch((error) => { console.error("Erro ao criar usuario seed", error) process.exitCode = 1 }) .finally(async () => { await prisma.$disconnect() })