diff --git a/packages/auth/src/auth.ts b/packages/auth/src/auth.ts index a4bc0ea4..f40e4303 100644 --- a/packages/auth/src/auth.ts +++ b/packages/auth/src/auth.ts @@ -220,6 +220,19 @@ export const initAuth = (db: dbClient) => { console.log( `Pro subscription ${stripeSubscription.id} activated with unlimited seats`, ); + + const workspace = await workspaceRepo.getByPublicId( + db, + subscription.referenceId, + ); + + if (workspace?.id) { + await memberRepo.unpauseAllMembers(db, workspace.id); + + console.log( + `Unpausing all members for workspace ${workspace.id}`, + ); + } } }, }, diff --git a/packages/db/src/repository/member.repo.ts b/packages/db/src/repository/member.repo.ts index 83cfef53..61ce3ff2 100644 --- a/packages/db/src/repository/member.repo.ts +++ b/packages/db/src/repository/member.repo.ts @@ -95,3 +95,15 @@ export const softDelete = async ( return result; }; + +export const unpauseAllMembers = async (db: dbClient, workspaceId: number) => { + await db + .update(workspaceMembers) + .set({ status: "active" }) + .where( + and( + eq(workspaceMembers.workspaceId, workspaceId), + eq(workspaceMembers.status, "paused"), + ), + ); +};