44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
/**
|
|
* ادمینهای قبلی را پاک میکند و فقط یک ادمین میسازد.
|
|
* داخل کانتینر API:
|
|
* node scripts/reset-admin.mjs
|
|
* یا با DATABASE_URL محلی:
|
|
* node scripts/reset-admin.mjs
|
|
*/
|
|
const { PrismaClient } = require('@prisma/client');
|
|
const bcrypt = require('bcryptjs');
|
|
|
|
const PHONE = process.env.ADMIN_PHONE || '09128081392';
|
|
const PASSWORD = process.env.ADMIN_PASSWORD || '123456';
|
|
const FULL_NAME = process.env.ADMIN_NAME || 'مدیر سیستم';
|
|
|
|
async function main() {
|
|
const prisma = new PrismaClient();
|
|
try {
|
|
const passwordHash = await bcrypt.hash(PASSWORD, 10);
|
|
await prisma.$transaction([
|
|
prisma.adminUser.deleteMany({}),
|
|
prisma.adminUser.create({
|
|
data: {
|
|
id: 'usr-1',
|
|
fullName: FULL_NAME,
|
|
phone: PHONE,
|
|
email: 'admin@parche.ir',
|
|
passwordHash,
|
|
role: 'admin',
|
|
isActive: true,
|
|
},
|
|
}),
|
|
prisma.internalMessage.deleteMany({}),
|
|
]);
|
|
console.log(`Admin reset OK: ${PHONE} / ${PASSWORD}`);
|
|
} finally {
|
|
await prisma.$disconnect();
|
|
}
|
|
}
|
|
|
|
main().catch((err) => {
|
|
console.error(err);
|
|
process.exit(1);
|
|
});
|