From 6f930ece4ee598d1546b19eec8d3ac24747fb22f Mon Sep 17 00:00:00 2001 From: Ephraim Atta-Duncan Date: Tue, 25 Feb 2025 10:41:28 +0000 Subject: [PATCH] chore: wip1 --- .../server-only/admin/get-signing-volume.ts | 60 ++++++++++++------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/packages/lib/server-only/admin/get-signing-volume.ts b/packages/lib/server-only/admin/get-signing-volume.ts index 4128239f7..d319d93e2 100644 --- a/packages/lib/server-only/admin/get-signing-volume.ts +++ b/packages/lib/server-only/admin/get-signing-volume.ts @@ -53,30 +53,22 @@ export const getSigningVolume = async ({ }, }); - const uniqueEntities = new Map(); - - activeSubscriptions.forEach((subscription) => { + const subscriptionData = activeSubscriptions.map((subscription) => { const isTeam = !!subscription.teamId; - const entityId = isTeam ? `team-${subscription.teamId}` : `user-${subscription.userId}`; - - if (!uniqueEntities.has(entityId)) { - uniqueEntities.set(entityId, { - id: subscription.id, - planId: subscription.planId, - userId: subscription.userId, - teamId: subscription.teamId, - name: isTeam ? subscription.team?.name : subscription.user?.name || '', - email: isTeam - ? subscription.team?.teamEmail?.email || `Team ${subscription.team?.id}` - : subscription.user?.email || '', - createdAt: isTeam ? subscription.team?.createdAt : subscription.user?.createdAt, - isTeam, - }); - } + return { + id: subscription.id, + planId: subscription.planId, + userId: subscription.userId, + teamId: subscription.teamId, + name: isTeam ? subscription.team?.name : subscription.user?.name || '', + email: isTeam + ? subscription.team?.teamEmail?.email || `Team ${subscription.team?.id}` + : subscription.user?.email || '', + createdAt: isTeam ? subscription.team?.createdAt : subscription.user?.createdAt, + isTeam, + }; }); - const subscriptionData = Array.from(uniqueEntities.values()); - const filteredSubscriptions = search ? subscriptionData.filter((sub) => { const searchLower = search.toLowerCase(); @@ -91,16 +83,38 @@ export const getSigningVolume = async ({ filteredSubscriptions.map(async (subscription) => { let signingVolume = 0; - if (subscription.userId && !subscription.isTeam) { + if (subscription.userId) { const personalCount = await prisma.document.count({ where: { userId: subscription.userId, - teamId: null, status: DocumentStatus.COMPLETED, }, }); signingVolume += personalCount; + + const userTeams = await prisma.teamMember.findMany({ + where: { + userId: subscription.userId, + }, + select: { + teamId: true, + }, + }); + + if (userTeams.length > 0) { + const teamIds = userTeams.map((team) => team.teamId); + const teamCount = await prisma.document.count({ + where: { + teamId: { + in: teamIds, + }, + status: DocumentStatus.COMPLETED, + }, + }); + + signingVolume += teamCount; + } } if (subscription.teamId) {