mirror of
https://github.com/hanzoai/calendar.git
synced 2026-10-30 14:46:43 +00:00
f4abbb2de1
* factory and statergie * chore: use correct method of DI * feat: add onchagne * add logic to HWM stat * add webhook resolver methods to each statergy * move seat tracking + webhooks over to own statergy * Move to factory base approach * move logic to correct class * rename create -> createByTeamId * fix: remove debug `true ||` overrides from IS_STRIPE_ENABLED and IS_TEAM_BILLING_ENABLED Remove accidentally committed debug overrides that short-circuited IS_STRIPE_ENABLED and IS_TEAM_BILLING_ENABLED to always be true, bypassing Stripe credential checks. This would break self-hosted instances without Stripe configured. Identified by cubic (https://cubic.dev) Co-Authored-By: unknown <> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
33 lines
1.8 KiB
TypeScript
33 lines
1.8 KiB
TypeScript
import { createContainer } from "@calcom/features/di/di";
|
|
import type { ITeamBillingDataRepository } from "../../repository/teamBillingData/ITeamBillingDataRepository";
|
|
import type { StripeBillingService } from "../../service/billingProvider/StripeBillingService";
|
|
import type { SeatBillingStrategyFactory } from "../../service/seatBillingStrategy/SeatBillingStrategyFactory";
|
|
import type { TeamBillingServiceFactory } from "../../service/teams/TeamBillingServiceFactory";
|
|
import { billingProviderServiceModuleLoader } from "../modules/BillingProviderService";
|
|
import { seatBillingStrategyFactoryModuleLoader } from "../modules/SeatBillingStrategyFactory.module";
|
|
import { teamBillingServiceFactoryModuleLoader } from "../modules/TeamBillingServiceFactory";
|
|
import { DI_TOKENS } from "../tokens";
|
|
|
|
const billingContainer = createContainer();
|
|
|
|
// Load all modules (dependencies are loaded recursively)
|
|
teamBillingServiceFactoryModuleLoader.loadModule(billingContainer);
|
|
billingProviderServiceModuleLoader.loadModule(billingContainer);
|
|
seatBillingStrategyFactoryModuleLoader.loadModule(billingContainer);
|
|
|
|
export function getTeamBillingServiceFactory(): TeamBillingServiceFactory {
|
|
return billingContainer.get<TeamBillingServiceFactory>(DI_TOKENS.TEAM_BILLING_SERVICE_FACTORY);
|
|
}
|
|
|
|
export function getBillingProviderService(): StripeBillingService {
|
|
return billingContainer.get<StripeBillingService>(DI_TOKENS.BILLING_PROVIDER_SERVICE);
|
|
}
|
|
|
|
export function getTeamBillingDataRepository(): ITeamBillingDataRepository {
|
|
return billingContainer.get<ITeamBillingDataRepository>(DI_TOKENS.TEAM_BILLING_DATA_REPOSITORY);
|
|
}
|
|
|
|
export function getSeatBillingStrategyFactory(): SeatBillingStrategyFactory {
|
|
return billingContainer.get<SeatBillingStrategyFactory>(DI_TOKENS.SEAT_BILLING_STRATEGY_FACTORY);
|
|
}
|