refactor: create CreditsRepository in /features/credits (#25843)

* mv test

* mv repo

* update imports

* Update packages/features/ee/billing/api/webhook/_checkout.session.completed.ts

Co-authored-by: Volnei Munhoz <volnei@cal.com>

* fix test

---------

Co-authored-by: Volnei Munhoz <volnei@cal.com>
This commit is contained in:
Benny Joo
2025-12-16 10:42:27 -03:00
committed by GitHub
co-authored by Volnei Munhoz
parent 272cf43322
commit c3bcd623f6
7 changed files with 8 additions and 11 deletions
@@ -4,7 +4,7 @@ import { describe, it, expect, beforeEach, vi, afterEach } from "vitest";
import { CreditType } from "@calcom/prisma/enums";
import { CreditsRepository } from "./credits";
import { CreditsRepository } from "./CreditsRepository";
describe("CreditsRepository", () => {
beforeEach(() => {
@@ -1,10 +1,10 @@
import { createDefaultAIPhoneServiceProvider } from "@calcom/features/calAIPhone";
import { PrismaAgentRepository } from "@calcom/features/calAIPhone/repositories/PrismaAgentRepository";
import { PrismaPhoneNumberRepository } from "@calcom/features/calAIPhone/repositories/PrismaPhoneNumberRepository";
import { CreditsRepository } from "@calcom/features/credits/repositories/CreditsRepository";
import stripe from "@calcom/features/ee/payments/server/stripe";
import logger from "@calcom/lib/logger";
import { CreditsRepository } from "@calcom/lib/server/repository/credits";
import prisma from "@calcom/prisma";
import { prisma } from "@calcom/prisma";
import { PhoneNumberSubscriptionStatus } from "@calcom/prisma/enums";
import { CHECKOUT_SESSION_TYPES } from "../../constants";
@@ -2,10 +2,10 @@ import { describe, it, expect, beforeEach, vi } from "vitest";
import dayjs from "@calcom/dayjs";
import * as EmailManager from "@calcom/emails/billing-email-service";
import { CreditsRepository } from "@calcom/features/credits/repositories/CreditsRepository";
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
import getOrgIdFromMemberOrTeamId from "@calcom/lib/getOrgIdFromMemberOrTeamId";
import { CreditsRepository } from "@calcom/lib/server/repository/credits";
import { CreditType } from "@calcom/prisma/enums";
import { CreditService } from "./credit-service";
@@ -91,6 +91,7 @@ vi.mock("@calcom/prisma/enums", async (importOriginal) => {
vi.mock("@calcom/lib/server/repository/credits");
vi.mock("@calcom/features/membership/repositories/MembershipRepository");
vi.mock("@calcom/features/ee/teams/repositories/TeamRepository");
vi.mock("@calcom/features/credits/repositories/CreditsRepository");
vi.mock("@calcom/emails/billing-email-service", () => ({
sendCreditBalanceLimitReachedEmails: vi.fn().mockResolvedValue(undefined),
sendCreditBalanceLowWarningEmails: vi.fn().mockResolvedValue(undefined),
@@ -125,10 +126,6 @@ vi.spyOn(creditService, "_getAllCredits").mockResolvedValue({
additionalCredits: 1,
});
CreditsRepository.findCreditBalance.mockResolvedValueOnce({
limitReachedAt: null,
});
describe("CreditService", () => {
let creditService: CreditService;
@@ -1,12 +1,12 @@
import type { TFunction } from "i18next";
import dayjs from "@calcom/dayjs";
import { CreditsRepository } from "@calcom/features/credits/repositories/CreditsRepository";
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
import { IS_SMS_CREDITS_ENABLED } from "@calcom/lib/constants";
import getOrgIdFromMemberOrTeamId from "@calcom/lib/getOrgIdFromMemberOrTeamId";
import logger from "@calcom/lib/logger";
import { CreditsRepository } from "@calcom/lib/server/repository/credits";
import { prisma, type PrismaTransaction } from "@calcom/prisma";
import { CreditUsageType, CreditType } from "@calcom/prisma/enums";
@@ -1,6 +1,6 @@
import { CreditsRepository } from "@calcom/features/credits/repositories/CreditsRepository";
import { TeamService } from "@calcom/features/ee/teams/services/teamService";
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
import { CreditsRepository } from "@calcom/lib/server/repository/credits";
import { MembershipRole } from "@calcom/prisma/enums";
import { TRPCError } from "@trpc/server";
@@ -1,6 +1,6 @@
import { CreditsRepository } from "@calcom/features/credits/repositories/CreditsRepository";
import { sendVerificationCode } from "@calcom/features/ee/workflows/lib/reminders/verifyPhoneNumber";
import hasKeyInMetadata from "@calcom/lib/hasKeyInMetadata";
import { CreditsRepository } from "@calcom/lib/server/repository/credits";
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
import { TRPCError } from "@trpc/server";