Add demo seed command
Build and deploy Docker image / build (push) Successful in 2m34s

This commit is contained in:
Ruslan Bakiev
2026-06-07 10:43:12 +07:00
parent 66fca05229
commit d7ebefd0ee
2 changed files with 75 additions and 1 deletions
+73
View File
@@ -0,0 +1,73 @@
import { prisma } from '../src/db.js'
function requiredEnv(name: string): string {
const value = process.env[name]?.trim()
if (!value) throw new Error(`${name} is required`)
return value
}
const logtoId = requiredEnv('DEMO_LOGTO_USER_ID')
const accountUuid = '99999999-1111-4111-8111-111111111111'
const serviceAccountUuid = '99999999-2222-4111-8111-111111111111'
await prisma.account.upsert({
where: { uuid: accountUuid },
create: {
uuid: accountUuid,
name: `Demo user ${logtoId}`,
accountType: 'USER',
description: 'Demo seed user account',
},
update: {
name: `Demo user ${logtoId}`,
accountType: 'USER',
description: 'Demo seed user account',
},
})
await prisma.account.upsert({
where: { uuid: serviceAccountUuid },
create: {
uuid: serviceAccountUuid,
name: 'Demo logistics service',
accountType: 'SERVICE',
description: 'Demo seed service account',
serviceInfo: {
create: { slug: 'demo-logistics' },
},
},
update: {
name: 'Demo logistics service',
accountType: 'SERVICE',
description: 'Demo seed service account',
},
})
await prisma.serviceAccount.upsert({
where: { slug: 'demo-logistics' },
create: {
slug: 'demo-logistics',
accountUuid: serviceAccountUuid,
},
update: {
accountUuid: serviceAccountUuid,
},
})
const operations = [
{ code: 1001, name: 'demo.order.created', description: 'Demo order created' },
{ code: 1002, name: 'demo.order.paid', description: 'Demo order paid' },
{ code: 1003, name: 'demo.order.delivered', description: 'Demo order delivered' },
]
for (const operation of operations) {
await prisma.operationCode.upsert({
where: { code: operation.code },
create: operation,
update: operation,
})
}
console.log(`Seeded billing demo data for ${logtoId}`)
await prisma.$disconnect()