diff --git a/packages/console/core/script/black-cancel-waitlist.ts b/packages/console/core/script/black-cancel-waitlist.ts new file mode 100644 index 000000000..ab2aa16d5 --- /dev/null +++ b/packages/console/core/script/black-cancel-waitlist.ts @@ -0,0 +1,41 @@ +import { subscribe } from "diagnostics_channel" +import { Billing } from "../src/billing.js" +import { and, Database, eq } from "../src/drizzle/index.js" +import { BillingTable, PaymentTable, SubscriptionTable } from "../src/schema/billing.sql.js" + +const workspaceID = process.argv[2] + +if (!workspaceID) { + console.error("Usage: bun script/foo.ts ") + process.exit(1) +} + +console.log(`Removing from Black waitlist`) + +const billing = await Database.use((tx) => + tx + .select({ + subscriptionPlan: BillingTable.subscriptionPlan, + timeSubscriptionBooked: BillingTable.timeSubscriptionBooked, + }) + .from(BillingTable) + .where(eq(BillingTable.workspaceID, workspaceID)) + .then((rows) => rows[0]), +) + +if (!billing?.timeSubscriptionBooked) { + console.error(`Error: Workspace is not on the waitlist`) + process.exit(1) +} + +await Database.use((tx) => + tx + .update(BillingTable) + .set({ + subscriptionPlan: null, + timeSubscriptionBooked: null, + }) + .where(eq(BillingTable.workspaceID, workspaceID)), +) + +console.log(`Done`) diff --git a/packages/console/core/script/credit-workspace.ts b/packages/console/core/script/credit-workspace.ts index 29fb1fa64..ad2404f79 100644 --- a/packages/console/core/script/credit-workspace.ts +++ b/packages/console/core/script/credit-workspace.ts @@ -1,4 +1,6 @@ import { Billing } from "../src/billing.js" +import { Database, eq } from "../src/drizzle/index.js" +import { WorkspaceTable } from "../src/schema/workspace.sql.js" // get input from command line const workspaceID = process.argv[2] @@ -9,6 +11,19 @@ if (!workspaceID || !dollarAmount) { process.exit(1) } +// check workspace exists +const workspace = await Database.use((tx) => + tx + .select() + .from(WorkspaceTable) + .where(eq(WorkspaceTable.id, workspaceID)) + .then((rows) => rows[0]), +) +if (!workspace) { + console.error("Error: Workspace not found") + process.exit(1) +} + const amountInDollars = parseFloat(dollarAmount) if (isNaN(amountInDollars) || amountInDollars <= 0) { console.error("Error: dollarAmount must be a positive number") diff --git a/packages/console/core/script/lookup-user.ts b/packages/console/core/script/lookup-user.ts index b06fb5654..3c97600ec 100644 --- a/packages/console/core/script/lookup-user.ts +++ b/packages/console/core/script/lookup-user.ts @@ -113,8 +113,13 @@ async function printWorkspace(workspaceID: string) { .select({ balance: BillingTable.balance, customerID: BillingTable.customerID, - subscriptionID: BillingTable.subscriptionID, - subscriptionCouponID: BillingTable.subscriptionCouponID, + reload: BillingTable.reload, + subscription: { + id: BillingTable.subscriptionID, + couponID: BillingTable.subscriptionCouponID, + plan: BillingTable.subscriptionPlan, + booked: BillingTable.timeSubscriptionBooked, + }, }) .from(BillingTable) .where(eq(BillingTable.workspaceID, workspace.id)) @@ -123,6 +128,11 @@ async function printWorkspace(workspaceID: string) { rows.map((row) => ({ ...row, balance: `$${(row.balance / 100000000).toFixed(2)}`, + subscription: row.subscription.id + ? `Subscribed ${row.subscription.couponID ? `(coupon: ${row.subscription.couponID}) ` : ""}` + : row.subscription.booked + ? `Waitlist ${row.subscription.plan} plan` + : undefined, }))[0], ), )