@@ -6,6 +6,7 @@ import { and, count, desc, eq, inArray, isNull, sql } from 'drizzle-orm'
66import type Stripe from 'stripe'
77import { parseBillingConcurrencyLimit } from '@/lib/billing/concurrency-defaults'
88import { getBillingConcurrencyLimit } from '@/lib/billing/concurrency-limits'
9+ import { dollarsToCredits } from '@/lib/billing/credits/conversion'
910import {
1011 deriveEnterpriseOperationStatus ,
1112 ENTERPRISE_METADATA_SYNC_EVENT_TYPE ,
@@ -234,7 +235,6 @@ export interface IssueEnterpriseProvisioningInput {
234235 ownerUserId : string
235236 organizationName ?: string
236237 monthlyInvoiceAmountUsd : number
237- includedMonthlyCredits : number
238238 usageLimitCredits ?: number
239239 seats : number
240240 concurrencyLimit ?: number
@@ -281,13 +281,14 @@ export function buildEnterpriseProvisioningRequestKey(
281281 input : IssueEnterpriseProvisioningInput ,
282282 organizationId : string
283283) : string {
284+ const includedMonthlyCredits = dollarsToCredits ( input . monthlyInvoiceAmountUsd )
284285 const requestTerms : Array < string | number > = [
285286 'enterprise-v2' ,
286287 input . ownerUserId ,
287288 organizationId ,
288289 Math . round ( input . monthlyInvoiceAmountUsd * 100 ) ,
289- input . includedMonthlyCredits ,
290- input . usageLimitCredits ?? input . includedMonthlyCredits ,
290+ includedMonthlyCredits ,
291+ input . usageLimitCredits ?? includedMonthlyCredits ,
291292 input . seats ,
292293 ]
293294 if ( input . concurrencyLimit !== undefined ) requestTerms . push ( input . concurrencyLimit )
@@ -422,6 +423,7 @@ export async function issueEnterpriseProvisioning(
422423 'Monthly invoice amount must be at least $0.01 and use whole cents'
423424 )
424425 }
426+ const includedMonthlyCredits = dollarsToCredits ( input . monthlyInvoiceAmountUsd )
425427 if (
426428 input . concurrencyLimit !== undefined &&
427429 parseBillingConcurrencyLimit ( input . concurrencyLimit ) !== input . concurrencyLimit
@@ -548,8 +550,8 @@ export async function issueEnterpriseProvisioning(
548550 requestedByEmail : input . requestedByEmail ,
549551 requestedByUserId : input . requestedByUserId ,
550552 invoiceAmountCents,
551- includedMonthlyCredits : input . includedMonthlyCredits ,
552- usageLimitCredits : input . usageLimitCredits ?? input . includedMonthlyCredits ,
553+ includedMonthlyCredits,
554+ usageLimitCredits : input . usageLimitCredits ?? includedMonthlyCredits ,
553555 seats : input . seats ,
554556 ...( input . concurrencyLimit !== undefined ? { concurrencyLimit : input . concurrencyLimit } : { } ) ,
555557 pausePaymentCollection : input . pausePaymentCollection ?? false ,
0 commit comments