From ef114d77276998c8dd03b5c0e9f66f7a513c2120 Mon Sep 17 00:00:00 2001 From: Shaunak Das <51281688+shaun-ak@users.noreply.github.com> Date: Thu, 4 Sep 2025 09:25:19 +0530 Subject: [PATCH] feat: add email and phone number to credit expense log (#22846) * feat: add email and phone number to credit expense log * feat: fix test cases * Update downloadExpenseLog.handler.ts --------- Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> --- packages/features/ee/billing/credit-service.ts | 12 +++++++++++- packages/lib/server/repository/credits.test.ts | 4 ++++ packages/lib/server/repository/credits.ts | 2 ++ .../migration.sql | 3 +++ packages/prisma/schema.prisma | 2 ++ .../viewer/credits/downloadExpenseLog.handler.ts | 4 ++++ 6 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 packages/prisma/migrations/20250731135727_add_phone_email_to_expense_log/migration.sql diff --git a/packages/features/ee/billing/credit-service.ts b/packages/features/ee/billing/credit-service.ts index 7b1a472f26..3af215e918 100644 --- a/packages/features/ee/billing/credit-service.ts +++ b/packages/features/ee/billing/credit-service.ts @@ -59,6 +59,8 @@ export class CreditService { bookingUid, smsSid, smsSegments, + phoneNumber, + email, callDuration, creditFor, externalRef, @@ -69,6 +71,8 @@ export class CreditService { bookingUid?: string; smsSid?: string; smsSegments?: number; + phoneNumber?: string; + email?: string; callDuration?: number; creditFor?: CreditUsageType; externalRef?: string; @@ -117,6 +121,8 @@ export class CreditService { credits, creditType, smsSegments, + phoneNumber, + email, callDuration, creditFor, tx, @@ -323,12 +329,14 @@ export class CreditService { credits: number | null; creditType: CreditType; smsSegments?: number; + phoneNumber?: string; + email?: string; callDuration?: number; creditFor?: CreditUsageType; tx: PrismaTransaction; externalRef?: string; }) { - const { credits, creditType, bookingUid, smsSid, teamId, userId, smsSegments, callDuration, creditFor, tx } = props; + const { credits, creditType, bookingUid, smsSid, teamId, userId, smsSegments, callDuration, creditFor, phoneNumber, email, tx } = props; let creditBalance: { id: string; additionalCredits: number } | null | undefined = await CreditsRepository.findCreditBalance({ teamId, userId }, tx); @@ -370,6 +378,8 @@ export class CreditService { bookingUid, smsSid, smsSegments, + phoneNumber, + email, callDuration, externalRef: props.externalRef, }, diff --git a/packages/lib/server/repository/credits.test.ts b/packages/lib/server/repository/credits.test.ts index 6166e8102c..609a04d27a 100644 --- a/packages/lib/server/repository/credits.test.ts +++ b/packages/lib/server/repository/credits.test.ts @@ -132,6 +132,8 @@ describe("CreditsRepository", () => { bookingUid: true, smsSid: true, smsSegments: true, + email: true, + phoneNumber: true, callDuration: true, externalRef: true, }, @@ -169,6 +171,8 @@ describe("CreditsRepository", () => { bookingUid: true, smsSid: true, smsSegments: true, + email: true, + phoneNumber: true, callDuration: true, externalRef: true, }, diff --git a/packages/lib/server/repository/credits.ts b/packages/lib/server/repository/credits.ts index f960a18b57..d2828d3d81 100644 --- a/packages/lib/server/repository/credits.ts +++ b/packages/lib/server/repository/credits.ts @@ -148,6 +148,8 @@ export class CreditsRepository { bookingUid: true, smsSid: true, smsSegments: true, + phoneNumber: true, + email: true, callDuration: true, externalRef: true, }, diff --git a/packages/prisma/migrations/20250731135727_add_phone_email_to_expense_log/migration.sql b/packages/prisma/migrations/20250731135727_add_phone_email_to_expense_log/migration.sql new file mode 100644 index 0000000000..8ef3165aaf --- /dev/null +++ b/packages/prisma/migrations/20250731135727_add_phone_email_to_expense_log/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "CreditExpenseLog" ADD COLUMN "email" TEXT, +ADD COLUMN "phoneNumber" TEXT; diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index 7d2841c744..ee65190fda 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -616,6 +616,8 @@ model CreditExpenseLog { date DateTime smsSid String? smsSegments Int? + phoneNumber String? + email String? callDuration Int? creditFor CreditUsageType? externalRef String? @unique diff --git a/packages/trpc/server/routers/viewer/credits/downloadExpenseLog.handler.ts b/packages/trpc/server/routers/viewer/credits/downloadExpenseLog.handler.ts index 677e28a0cd..99357a6691 100644 --- a/packages/trpc/server/routers/viewer/credits/downloadExpenseLog.handler.ts +++ b/packages/trpc/server/routers/viewer/credits/downloadExpenseLog.handler.ts @@ -20,6 +20,8 @@ const headers = [ "Number of Segments", "Call Duration", "External Ref", + "Phone Number", + "Email", ]; export const downloadExpenseLogHandler = async ({ ctx, input }: DownloadExpenseLogOptions) => { @@ -52,6 +54,8 @@ export const downloadExpenseLogHandler = async ({ ctx, input }: DownloadExpenseL log.creditType, log.bookingUid ?? "", log.smsSegments?.toString() ?? "-", + log.phoneNumber ?? "", + log.email ?? "", log.callDuration?.toString() ?? "-", log.externalRef ?? "-", ]);