* refactor: use dependency injection for InsightsBookingService - Add DI tokens for InsightsBookingService and module - Rename InsightsBookingService to InsightsBookingBaseService - Create InsightsBookingService DI interface with create method - Add DI module and container for InsightsBookingService - Update tRPC router to use getInsightsBookingService DI container - Update test file to use InsightsBookingBaseService - Update documentation to reflect new DI pattern Follows the same dependency injection pattern established for InsightsRoutingService in PR #22677 Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * refactor: restore createInsightsBookingService helper using DI internally - Keep createInsightsBookingService helper function for cleaner API - Use getInsightsBookingService DI container internally - Maintain same function signature and behavior - All existing calls continue to work unchanged Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * refactor: rename service files with proper capitalization - Rename insightsBookingBase.ts to InsightsBookingBaseService.ts - Rename insightsBookingDI.ts to InsightsBookingDIService.ts - Update all import statements to use new file names - Maintain existing handler functionality using createInsightsBookingService(ctx, input) Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * revert some changes * rename * update doc --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
30 lines
721 B
TypeScript
30 lines
721 B
TypeScript
import type { readonlyPrisma } from "@calcom/prisma";
|
|
|
|
import {
|
|
InsightsBookingBaseService,
|
|
type InsightsBookingServicePublicOptions,
|
|
type InsightsBookingServiceFilterOptions,
|
|
} from "./InsightsBookingBaseService";
|
|
|
|
export interface IInsightsBookingService {
|
|
prisma: typeof readonlyPrisma;
|
|
}
|
|
|
|
export class InsightsBookingService {
|
|
constructor(private readonly dependencies: IInsightsBookingService) {}
|
|
|
|
create({
|
|
options,
|
|
filters,
|
|
}: {
|
|
options: InsightsBookingServicePublicOptions;
|
|
filters?: InsightsBookingServiceFilterOptions;
|
|
}): InsightsBookingBaseService {
|
|
return new InsightsBookingBaseService({
|
|
prisma: this.dependencies.prisma,
|
|
options,
|
|
filters,
|
|
});
|
|
}
|
|
}
|