Files
portal-inventory/prisma/seed.ts
T

61 lines
1.4 KiB
TypeScript

import { PrismaClient } from '@prisma/client'
import { PrismaLibSql } from '@prisma/adapter-libsql'
import 'dotenv/config'
const adapter = new PrismaLibSql({
url: process.env.DATABASE_URL || 'file:./dev.db',
})
const prisma = new PrismaClient({ adapter })
async function main() {
const items = [
'BackOne Lite',
'BackOne Pro',
'BackOne Gateway',
'BackOne Enterprise',
'BackOne Ultimate'
]
console.log('Seeding initial items...')
for (const itemName of items) {
const existing = await prisma.item.findUnique({ where: { name: itemName } })
if (!existing) {
await prisma.item.create({
data: {
name: itemName,
totalQuantity: 0,
},
})
console.log(`Created item: ${itemName}`)
} else {
console.log(`Item ${itemName} already exists.`)
}
}
// Create an initial super admin
const existingAdmin = await prisma.user.findUnique({ where: { email: 'admin@backone.id' } })
if (!existingAdmin) {
await prisma.user.create({
data: {
name: 'Super Admin',
email: 'admin@backone.id',
password: 'password', // TODO: In production this should be hashed
role: 'super_admin'
}
})
console.log('Created Super Admin (admin@backone.id / password)')
}
console.log('Seeding finished.')
}
main()
.catch((e) => {
console.error(e)
process.exit(1)
})
.finally(async () => {
await prisma.$disconnect()
})