From 2f1aa30d6b8e9511db58b3ae383e20447d17e6a6 Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Mon, 24 Aug 2026 20:53:08 +0700 Subject: [PATCH] Seed pricing context for demo orders --- src/demo-workspace.ts | 8 ++++++-- src/pricing-context.ts | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/demo-workspace.ts b/src/demo-workspace.ts index 6f59df2..a889816 100644 --- a/src/demo-workspace.ts +++ b/src/demo-workspace.ts @@ -1,7 +1,7 @@ import { createHash } from 'node:crypto' import { Prisma } from '@prisma/client' import { prisma } from './db.js' -import { lockCurrencyPrice, resolveKycPricingContext } from './pricing-context.js' +import { ensureDemoKycPricingContext, lockCurrencyPrice } from './pricing-context.js' interface DemoWorkspaceAccess { teamUuid: string @@ -98,6 +98,7 @@ const demoRoutes: DemoRoute[] = [ ] const demoNote = JSON.stringify({ seed: 'empty-team-workspace' }) +const demoPricingCountryCode = process.env.DEMO_PRICING_COUNTRY_CODE ?? 'RU' function stableUuid(teamUuid: string, entity: string, index: number): string { const hex = createHash('sha256') @@ -126,7 +127,10 @@ export async function ensureDemoWorkspaceData(access: DemoWorkspaceAccess): Prom const needsOrders = orderCount === 0 const needsPricingBackfill = demoQuotationPricingCount > 0 || demoOrderPricingCount > 0 const kyc = needsCalculations || needsOrders || needsPricingBackfill - ? await resolveKycPricingContext(access.userId) + ? await ensureDemoKycPricingContext({ + userId: access.userId, + countryCode: demoPricingCountryCode, + }) : null for (const [index, route] of demoRoutes.entries()) { diff --git a/src/pricing-context.ts b/src/pricing-context.ts index bea42cc..40fddd6 100644 --- a/src/pricing-context.ts +++ b/src/pricing-context.ts @@ -78,6 +78,27 @@ export async function resolveKycPricingContext( return data.pricingContextForUser } +export async function ensureDemoKycPricingContext(input: { + userId: string + countryCode: string +}): Promise { + const data = await requestGraphql<{ + ensureDemoPricingContextForUser: KycPricingContext + }>( + kycM2mEndpoint, + `mutation OrdersEnsureDemoKycPricingContext($userId: String!, $countryCode: String!) { + ensureDemoPricingContextForUser(userId: $userId, countryCode: $countryCode) { + userId + profileUuid + countryCode + resolvedAt + } + }`, + input, + ) + return data.ensureDemoPricingContextForUser +} + export async function lockCurrencyPrice(input: { sourceAmount: number sourceCurrency: string