import { Module } from "@nestjs/common"; import { AuthModule } from "../auth/auth.module.js"; import { DatabaseModule } from "../database/database.module.js"; import { RedisModule } from "../redis/redis.module.js"; import { SafetyModule } from "../safety/safety.module.js"; import { NotificationModule } from "../notification/notification.module.js"; import { ChatGateway } from "./chat.gateway.js"; import { ChatRateLimiter } from "./chat-rate-limiter.js"; import { ConversationController } from "./conversation.controller.js"; import { ConversationService } from "./conversation.service.js"; import { CHAT_PUBLISHER, OutboxMessageRelay } from "./outbox-message-relay.js"; import { StateChangingOriginGuard } from "./state-changing-origin.guard.js"; @Module({ imports: [ DatabaseModule, RedisModule, AuthModule, SafetyModule, NotificationModule, ], controllers: [ConversationController], providers: [ ConversationService, ChatRateLimiter, ChatGateway, { provide: CHAT_PUBLISHER, useExisting: ChatGateway }, OutboxMessageRelay, StateChangingOriginGuard, ], exports: [ConversationService, OutboxMessageRelay], }) export class ConversationModule {}