/**
 * Zulip网关模块
 * 
 * 功能描述：
 * - 提供Zulip相关的HTTP API接口
 * - 提供WebSocket测试和文档功能
 * - 提供动态配置管理接口
 * - 提供Zulip账号管理接口
 * 
 * 架构说明：
 * - Gateway层：负责HTTP协议处理和API接口暴露
 * - 依赖Business层：调用ZulipModule提供的业务服务
 * - 职责分离：只做协议转换，不包含业务逻辑
 * 
 * 最近修改：
 * - 2026-01-14: 架构优化 - 从Business层分离Controller到Gateway层，符合四层架构规范 (修改者: moyin)
 * 
 * @author moyin
 * @version 1.0.0
 * @since 2026-01-14
 * @lastModified 2026-01-14
 */

import { Module } from '@nestjs/common';
// Gateway层控制器
import { DynamicConfigController } from './dynamic_config.controller';
import { WebSocketDocsController } from './websocket_docs.controller';
import { WebSocketOpenApiController } from './websocket_openapi.controller';
import { WebSocketTestController } from './websocket_test.controller';
import { ZulipAccountsController } from './zulip_accounts.controller';
// 依赖Business层模块
import { ZulipModule } from '../../business/zulip/zulip.module';
import { AuthModule } from '../../business/auth/auth.module';
import { LoginCoreModule } from '../../core/login_core/login_core.module';

@Module({
  imports: [
    // 导入Business层的Zulip模块
    ZulipModule,
    // 导入认证模块（用于JwtAuthGuard）
    AuthModule,
    // 导入登录核心模块（JwtAuthGuard依赖）
    LoginCoreModule,
  ],
  controllers: [
    // 动态配置管理控制器
    DynamicConfigController,
    // WebSocket API文档控制器
    WebSocketDocsController,
    // WebSocket OpenAPI规范控制器
    WebSocketOpenApiController,
    // WebSocket测试工具控制器
    WebSocketTestController,
    // Zulip账号关联管理控制器
    ZulipAccountsController,
  ],
})
export class ZulipGatewayModule {}
