black-onboard-waitlist.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { subscribe } from "diagnostics_channel"
  2. import { Billing } from "../src/billing.js"
  3. import { and, Database, eq } from "../src/drizzle/index.js"
  4. import { BillingTable, PaymentTable, SubscriptionTable } from "../src/schema/billing.sql.js"
  5. const workspaceID = process.argv[2]
  6. if (!workspaceID) {
  7. console.error("Usage: bun script/foo.ts <workspaceID>")
  8. process.exit(1)
  9. }
  10. console.log(`Onboarding to Black waitlist`)
  11. const billing = await Database.use((tx) =>
  12. tx
  13. .select({
  14. subscriptionPlan: BillingTable.subscriptionPlan,
  15. timeSubscriptionBooked: BillingTable.timeSubscriptionBooked,
  16. })
  17. .from(BillingTable)
  18. .where(eq(BillingTable.workspaceID, workspaceID))
  19. .then((rows) => rows[0]),
  20. )
  21. if (!billing?.timeSubscriptionBooked) {
  22. console.error(`Error: Workspace is not on the waitlist`)
  23. process.exit(1)
  24. }
  25. await Database.use((tx) =>
  26. tx
  27. .update(BillingTable)
  28. .set({
  29. timeSubscriptionSelected: new Date(),
  30. })
  31. .where(eq(BillingTable.workspaceID, workspaceID)),
  32. )
  33. console.log(`Done`)