wip: black

This commit is contained in:
Frank
2026-01-08 23:44:11 -05:00
parent 8b062ed621
commit dd5ec26c8c
9 changed files with 2632 additions and 8 deletions

View File

@@ -0,0 +1 @@
ALTER TABLE `billing` ADD `subscription_coupon_id` varchar(28);

View File

@@ -0,0 +1 @@
ALTER TABLE `payment` ADD `enrichment` json;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -344,6 +344,20 @@
"when": 1767917785224,
"tag": "0048_mean_frank_castle",
"breakpoints": true
},
{
"idx": 49,
"version": "5",
"when": 1767922954153,
"tag": "0049_noisy_domino",
"breakpoints": true
},
{
"idx": 50,
"version": "5",
"when": 1767931290031,
"tag": "0050_bumpy_mephistopheles",
"breakpoints": true
}
]
}
}

View File

@@ -39,6 +39,9 @@ if (amountInCents !== 20000) {
process.exit(1)
}
const subscriptionData = await Billing.stripe().subscriptions.retrieve(subscription.id, { expand: ["discounts"] })
const couponID = subscriptionData.discounts[0]?.coupon?.id
// Check if subscription is already tied to another workspace
const existingSubscription = await Database.use((tx) =>
tx
@@ -122,6 +125,7 @@ await Database.transaction(async (tx) => {
.set({
customerID,
subscriptionID,
subscriptionCouponID: couponID,
paymentMethodID,
paymentMethodLast4,
paymentMethodType,
@@ -143,6 +147,10 @@ await Database.transaction(async (tx) => {
customerID,
invoiceID,
paymentID,
enrichment: {
type: "subscription",
couponID,
},
})
})

View File

@@ -171,6 +171,9 @@ export namespace Billing {
workspaceID,
id: Identifier.create("payment"),
amount: amountInMicroCents,
enrichment: {
type: "credit",
},
})
})
return amountInMicroCents

View File

@@ -22,6 +22,7 @@ export const BillingTable = mysqlTable(
timeReloadError: utc("time_reload_error"),
timeReloadLockedTill: utc("time_reload_locked_till"),
subscriptionID: varchar("subscription_id", { length: 28 }),
subscriptionCouponID: varchar("subscription_coupon_id", { length: 28 }),
},
(table) => [
...workspaceIndexes(table),
@@ -54,6 +55,15 @@ export const PaymentTable = mysqlTable(
paymentID: varchar("payment_id", { length: 255 }),
amount: bigint("amount", { mode: "number" }).notNull(),
timeRefunded: utc("time_refunded"),
enrichment: json("enrichment").$type<
| {
type: "subscription"
couponID?: string
}
| {
type: "credit"
}
>(),
},
(table) => [...workspaceIndexes(table)],
)