/* Reset admin password for thallaa@gmail.com to a known value. Usage: node scripts/reset-admin-password.js */ const path = require("path"); require("dotenv").config({ path: path.join(__dirname, "..", ".env") }); const { PrismaClient, Role, UserStatus } = require("@prisma/client"); const { PrismaPg } = require("@prisma/adapter-pg"); const { Pool } = require("pg"); const bcrypt = require("bcryptjs"); async function main() { const email = process.env.ADMIN_EMAIL || "thallaa@gmail.com"; const newPassword = process.env.ADMIN_INITIAL_PASSWORD; if (!newPassword) throw new Error("ADMIN_INITIAL_PASSWORD not set in env"); if (!process.env.DATABASE_URL) throw new Error("DATABASE_URL not set"); const prisma = new PrismaClient({ adapter: new PrismaPg( new Pool({ connectionString: process.env.DATABASE_URL }), ), }); const hash = await bcrypt.hash(newPassword, 12); const user = await prisma.user.upsert({ where: { email }, update: { passwordHash: hash, role: Role.ADMIN, status: UserStatus.ACTIVE, emailVerifiedAt: new Date(), approvedAt: new Date(), }, create: { email, passwordHash: hash, role: Role.ADMIN, status: UserStatus.ACTIVE, emailVerifiedAt: new Date(), approvedAt: new Date(), }, }); console.log("Password reset for", user.email); await prisma.$disconnect(); } main().catch((err) => { console.error(err); process.exit(1); });