init
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
const path = require('path');
|
||||
require('dotenv').config({ path: path.join(__dirname, '..', '.env') });
|
||||
|
||||
const prisma = require('../src/db');
|
||||
const { isValidPhone, normalizePhone } = require('../src/lib/phone');
|
||||
|
||||
async function main() {
|
||||
const name = String(process.env.SEED_ADMIN_NAME || 'Super Admin').trim();
|
||||
const phone = normalizePhone(process.env.SEED_ADMIN_PHONE);
|
||||
if (!isValidPhone(phone)) {
|
||||
throw new Error('SEED_ADMIN_PHONE must be a Sri Lankan mobile number');
|
||||
}
|
||||
|
||||
const existingAdmin = await prisma.user.findFirst({ where: { role: 'superAdmin' } });
|
||||
const admin = existingAdmin
|
||||
? await prisma.user.update({
|
||||
where: { id: existingAdmin.id },
|
||||
data: { name, phone, role: 'superAdmin', dealerId: null },
|
||||
})
|
||||
: await prisma.user.upsert({
|
||||
where: { phone },
|
||||
update: { name, role: 'superAdmin', dealerId: null },
|
||||
create: { name, phone, role: 'superAdmin' },
|
||||
});
|
||||
console.log(`Seeded super admin ${admin.name} (${admin.phone})`);
|
||||
}
|
||||
|
||||
main()
|
||||
.catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
})
|
||||
.finally(async () => {
|
||||
await prisma.$disconnect();
|
||||
});
|
||||
Reference in New Issue
Block a user