Files
kyc/scripts/seed-demo.ts
T
Ruslan Bakiev 572eb15017
Build and deploy Docker image / build (push) Successful in 2m55s
Fix demo seed runtime
2026-06-07 11:09:55 +07:00

118 lines
3.1 KiB
TypeScript

import { prisma } from '../dist/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 teamName = process.env.DEMO_TEAM_NAME ?? 'Optovia Demo Client'
const email = process.env.DEMO_USER_EMAIL ?? 'demo@optovia.ru'
const phone = process.env.DEMO_USER_PHONE ?? '+79990000000'
const firstName = process.env.DEMO_USER_FIRST_NAME ?? 'Demo'
const lastName = process.env.DEMO_USER_LAST_NAME ?? 'Client'
const applicationUuid = '88888888-1111-4111-8111-111111111111'
const profileUuid = '88888888-2222-4111-8111-111111111111'
const application = await prisma.kYCApplication.findUnique({ where: { uuid: applicationUuid } })
let detailsId = application?.objectId ?? null
if (detailsId === null) {
const details = await prisma.kYCDetailsRussia.create({
data: {
companyName: teamName,
companyFullName: `LLC ${teamName}`,
inn: '7700000000',
kpp: '770001001',
ogrn: '1027700000000',
address: 'Demo legal address, Moscow',
bankName: 'Demo Bank',
bik: '044525225',
correspondentAccount: '30101810400000000225',
},
})
detailsId = details.id
} else {
await prisma.kYCDetailsRussia.update({
where: { id: detailsId },
data: {
companyName: teamName,
companyFullName: `LLC ${teamName}`,
inn: '7700000000',
kpp: '770001001',
ogrn: '1027700000000',
address: 'Demo legal address, Moscow',
bankName: 'Demo Bank',
bik: '044525225',
correspondentAccount: '30101810400000000225',
},
})
}
await prisma.kYCApplication.upsert({
where: { uuid: applicationUuid },
create: {
uuid: applicationUuid,
userId: logtoId,
teamName,
countryCode: 'RU',
workflowStatus: 'approved',
score: 92,
contactPerson: `${firstName} ${lastName}`,
contactEmail: email,
contactPhone: phone,
objectId: detailsId,
approvedBy: logtoId,
approvedAt: new Date(),
},
update: {
userId: logtoId,
teamName,
countryCode: 'RU',
workflowStatus: 'approved',
score: 92,
contactPerson: `${firstName} ${lastName}`,
contactEmail: email,
contactPhone: phone,
objectId: detailsId,
approvedBy: logtoId,
approvedAt: new Date(),
},
})
await prisma.kYCProfile.upsert({
where: { uuid: profileUuid },
create: {
uuid: profileUuid,
userId: logtoId,
teamName,
countryCode: 'RU',
workflowStatus: 'approved',
score: 92,
contactPerson: `${firstName} ${lastName}`,
contactEmail: email,
contactPhone: phone,
objectId: detailsId,
approvedBy: logtoId,
approvedAt: new Date(),
},
update: {
userId: logtoId,
teamName,
countryCode: 'RU',
workflowStatus: 'approved',
score: 92,
contactPerson: `${firstName} ${lastName}`,
contactEmail: email,
contactPhone: phone,
objectId: detailsId,
approvedBy: logtoId,
approvedAt: new Date(),
},
})
console.log(`Seeded KYC demo data for ${logtoId}: application ${applicationUuid}`)
await prisma.$disconnect()