import { Module } from "@nestjs/common"; import { TypeOrmModule } from "@nestjs/typeorm"; import { BackofficeModule } from "../backoffice/backoffice.module"; import { CompaniesModule } from "../companies/companies.module"; import { NotificationInboxModule } from "../notification-inbox/notification-inbox.module"; import { SupportConversation } from "./entities/support-conversation.entity"; import { SupportMessage } from "./entities/support-message.entity"; import { SupportChatAgentController } from "./support-chat-agent.controller"; import { SupportChatController } from "./support-chat.controller"; import { SupportChatGateway } from "./support-chat.gateway"; import { SupportChatService } from "./support-chat.service"; import { SupportConversationRepository } from "./support-conversation.repository"; import { SupportMessageRepository } from "./support-message.repository"; @Module({ imports: [ TypeOrmModule.forFeature([SupportConversation, SupportMessage]), // ExternalProfileRepository — company lookup + ownership checks. // CompaniesService — resolve the company an agent opens a thread with. CompaniesModule, // BackofficeService.getAllCurrentEmployeeUserIds — staff room membership. BackofficeModule, // WsAuthService — reused handshake authentication for the gateway. NotificationInboxModule, ], controllers: [SupportChatController, SupportChatAgentController], providers: [ SupportConversationRepository, SupportMessageRepository, SupportChatGateway, SupportChatService, ], }) export class SupportChatModule {}