/**
 * 用户认证业务模块
 *
 * 架构层级：Business Layer（业务层）
 *
 * 功能描述：
 * - 整合所有用户认证相关的业务逻辑
 * - 用户登录、注册、密码管理业务流程
 * - GitHub OAuth业务集成
 * - 邮箱验证业务功能
 * - Zulip账号关联业务
 *
 * 职责分离：
 * - 专注于业务逻辑实现和流程控制
 * - 整合核心服务完成业务功能
 * - 不包含HTTP协议处理（由Gateway层负责）
 * - 不包含数据访问细节（由Core层负责）
 *
 * 依赖关系：
 * - 依赖 Core Layer 的 LoginCoreModule
 * - 依赖 Core Layer 的 ZulipCoreModule
 * - 被 Gateway Layer 的 AuthGatewayModule 使用
 *
 * 最近修改：
 * - 2026-01-14: 架构重构 - 移除Controller，专注于业务逻辑层
 * - 2026-01-07: 代码规范优化 - 文件夹扁平化，移除单文件文件夹结构
 *
 * @author moyin
 * @version 2.0.0
 * @since 2025-12-24
 * @lastModified 2026-01-14
 */

import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { LoginService } from './login.service';
import { RegisterService } from './register.service';
import { AccountProfileService } from './account_profile.service';
import { LoginCoreModule } from '../../core/login_core/login_core.module';
import { ZulipCoreModule } from '../../core/zulip_core/zulip_core.module';
import { UsersModule } from '../../core/db/users/users.module';
import { UserProfilesModule } from '../../core/db/user_profiles/user_profiles.module';
import { EmailModule } from '../../core/utils/email/email.module';

@Module({
  imports: [
    // 导入核心层模块
    LoginCoreModule,
    ConfigModule,
    ZulipCoreModule,
    UserProfilesModule,
    // 注意：ZulipAccountsModule 是全局模块，已在 AppModule 中导入，无需重复导入
    UsersModule,
    EmailModule,
  ],
  providers: [
    // 业务服务
    LoginService,
    RegisterService,
    AccountProfileService,
  ],
  exports: [
    // 导出业务服务供Gateway层使用
    LoginService,
    RegisterService,
    AccountProfileService,
  ],
})
export class AuthModule {}
