34 lines
831 B
TypeScript
34 lines
831 B
TypeScript
import { getOrganizationWithPurchasesAndMembersCount } from "@repo/database";
|
|
import { logger } from "@repo/logs";
|
|
import { setSubscriptionSeats } from "@repo/payments";
|
|
|
|
export async function updateSeatsInOrganizationSubscription(
|
|
organizationId: string,
|
|
) {
|
|
const organization =
|
|
await getOrganizationWithPurchasesAndMembersCount(organizationId);
|
|
|
|
if (!organization?.purchases.length) {
|
|
return;
|
|
}
|
|
|
|
const activeSubscription = organization.purchases.find(
|
|
(purchase) => purchase.type === "SUBSCRIPTION",
|
|
);
|
|
|
|
if (!activeSubscription?.subscriptionId) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
await setSubscriptionSeats({
|
|
id: activeSubscription.subscriptionId,
|
|
seats: organization.membersCount,
|
|
});
|
|
} catch (error) {
|
|
logger.error("Could not update seats in organization subscription", {
|
|
organizationId,
|
|
error,
|
|
});
|
|
}
|
|
}
|