From f60eefb797bcca5330a681ae9f71f45bcad79427 Mon Sep 17 00:00:00 2001 From: KMKoushik Date: Thu, 27 Mar 2025 22:31:41 +1100 Subject: [PATCH] use right billing period for billing usage --- apps/web/src/server/api/routers/billing.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/web/src/server/api/routers/billing.ts b/apps/web/src/server/api/routers/billing.ts index a12280f..52efb2c 100644 --- a/apps/web/src/server/api/routers/billing.ts +++ b/apps/web/src/server/api/routers/billing.ts @@ -1,4 +1,4 @@ -import { DailyEmailUsage, EmailUsageType } from "@prisma/client"; +import { DailyEmailUsage, EmailUsageType, Subscription } from "@prisma/client"; import { TRPCError } from "@trpc/server"; import { format } from "date-fns"; import { z } from "zod"; @@ -25,7 +25,18 @@ export const billingRouter = createTRPCRouter({ }), getThisMonthUsage: teamProcedure.query(async ({ ctx }) => { - const isoStartDate = format(new Date(), "yyyy-MM-01"); // First day of current month + const isPaidPlan = ctx.team.plan !== "FREE"; + let subscription: Subscription | null = null; + + if (!isPaidPlan) { + subscription = await db.subscription.findFirst({ + where: { teamId: ctx.team.id }, + orderBy: { status: "asc" }, + }); + } + + const isoStartDate = + subscription?.currentPeriodStart || format(new Date(), "yyyy-MM-01"); // First day of current month const today = format(new Date(), "yyyy-MM-dd"); const [monthUsage, dayUsage] = await Promise.all([