summaryrefslogtreecommitdiffhomepage
path: root/packages/console/core/script
diff options
context:
space:
mode:
authorFrank <[email protected]>2026-03-26 18:54:16 -0400
committerFrank <[email protected]>2026-03-28 20:16:51 -0400
commitf7c2ef876f3ba261380ae37bac7ad5805b61d80b (patch)
treeef450adc50e588c7ed73e49a7f74f9498e481490 /packages/console/core/script
parent6639f9273967fd5a9929a8dc978c13652bcf2193 (diff)
downloadopencode-f7c2ef876f3ba261380ae37bac7ad5805b61d80b.tar.gz
opencode-f7c2ef876f3ba261380ae37bac7ad5805b61d80b.zip
wip: zen
Diffstat (limited to 'packages/console/core/script')
-rw-r--r--packages/console/core/script/freeze-workspace.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/console/core/script/freeze-workspace.ts b/packages/console/core/script/freeze-workspace.ts
new file mode 100644
index 000000000..d2ccf21ac
--- /dev/null
+++ b/packages/console/core/script/freeze-workspace.ts
@@ -0,0 +1,39 @@
+import { Billing } from "../src/billing.js"
+import { Database, eq } from "../src/drizzle/index.js"
+import { BillingTable } from "../src/schema/billing.sql.js"
+import { WorkspaceTable } from "../src/schema/workspace.sql.js"
+import { microCentsToCents } from "../src/util/price.js"
+
+// get input from command line
+const workspaceID = process.argv[2]
+
+if (!workspaceID) {
+ console.error("Usage: bun freeze-workspace.ts <workspaceID>")
+ 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 billing = await Database.use((tx) =>
+ tx
+ .select()
+ .from(BillingTable)
+ .where(eq(BillingTable.workspaceID, workspaceID))
+ .then((rows) => rows[0]),
+)
+
+const amountInDollars = microCentsToCents(billing.balance) / 100
+await Billing.grantCredit(workspaceID, 0 - amountInDollars)
+
+console.log(`Removed payment of $${amountInDollars.toFixed(2)} from workspace ${workspaceID}`)