61 lines
1.4 KiB
TypeScript
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()
|
|
})
|