diff --git a/apps/remix/app/routes/_authenticated+/admin+/stats.tsx b/apps/remix/app/routes/_authenticated+/admin+/stats.tsx index 6e54dbaec..2e53c3782 100644 --- a/apps/remix/app/routes/_authenticated+/admin+/stats.tsx +++ b/apps/remix/app/routes/_authenticated+/admin+/stats.tsx @@ -19,6 +19,7 @@ import { getDocumentStats } from '@documenso/lib/server-only/admin/get-documents import { getRecipientsStats } from '@documenso/lib/server-only/admin/get-recipients-stats'; import { getOrganisationsWithSubscriptionsCount, + getUserWithSignedDocumentMonthlyGrowth, getUsersCount, } from '@documenso/lib/server-only/admin/get-users-stats'; import { getSignerConversionMonthly } from '@documenso/lib/server-only/user/get-signer-conversion'; @@ -37,18 +38,14 @@ export async function loader() { docStats, recipientStats, signerConversionMonthly, - // userWithAtLeastOneDocumentPerMonth, - // userWithAtLeastOneDocumentSignedPerMonth, - // MONTHLY_USERS_SIGNED, + monthlyUsersWithDocuments, ] = await Promise.all([ getUsersCount(), getOrganisationsWithSubscriptionsCount(), getDocumentStats(), getRecipientsStats(), getSignerConversionMonthly(), - // getUserWithAtLeastOneDocumentPerMonth(), - // getUserWithAtLeastOneDocumentSignedPerMonth(), - // getUserWithSignedDocumentMonthlyGrowth(), + getUserWithSignedDocumentMonthlyGrowth(), ]); return { @@ -57,7 +54,7 @@ export async function loader() { docStats, recipientStats, signerConversionMonthly, - // MONTHLY_USERS_SIGNED, + monthlyUsersWithDocuments, }; } @@ -70,7 +67,7 @@ export default function AdminStatsPage({ loaderData }: Route.ComponentProps) { docStats, recipientStats, signerConversionMonthly, - // MONTHLY_USERS_SIGNED, + monthlyUsersWithDocuments, } = loaderData; return ( @@ -148,14 +145,12 @@ export default function AdminStatsPage({ loaderData }: Route.ComponentProps) {
{ }); }; -export const getUserWithAtLeastOneDocumentPerMonth = async () => { - return await prisma.user.count({ - where: { - documents: { - some: { - createdAt: { - gte: DateTime.now().minus({ months: 1 }).toJSDate(), - }, - }, - }, - }, - }); -}; - -export const getUserWithAtLeastOneDocumentSignedPerMonth = async () => { - return await prisma.user.count({ - where: { - documents: { - some: { - status: { - equals: DocumentStatus.COMPLETED, - }, - completedAt: { - gte: DateTime.now().minus({ months: 1 }).toJSDate(), - }, - }, - }, - }, - }); -}; - export type GetUserWithDocumentMonthlyGrowth = Array<{ month: string; count: number; @@ -67,6 +36,8 @@ export const getUserWithSignedDocumentMonthlyGrowth = async () => { COUNT(DISTINCT "Document"."userId") as "count", COUNT(DISTINCT CASE WHEN "Document"."status" = 'COMPLETED' THEN "Document"."userId" END) as "signed_count" FROM "Document" + INNER JOIN "Team" ON "Document"."teamId" = "Team"."id" + INNER JOIN "Organisation" ON "Team"."organisationId" = "Organisation"."id" GROUP BY "month" ORDER BY "month" DESC LIMIT 12