/**
 * 核心安全模块
 * 
 * 功能描述：
 * - 提供系统级安全防护功能
 * - 频率限制和请求超时控制
 * - 维护模式和内容类型验证
 * - 全局安全中间件和守卫
 * 
 * 职责分离：
 * - 安全组件注册和配置管理
 * - 全局守卫和拦截器的依赖注入
 * - 安全功能的统一导出和模块化
 * 
 * 最近修改：
 * - 2026-01-07: 代码规范优化 - 更新注释规范，完善文档说明
 * 
 * @author moyin
 * @version 1.0.1
 * @since 2025-12-24
 * @lastModified 2026-01-07
 */

import { Module } from '@nestjs/common';
import { APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
import { ThrottleGuard } from './throttle.guard';
import { TimeoutInterceptor } from './timeout.interceptor';

@Module({
  providers: [
    ThrottleGuard,
    TimeoutInterceptor,
    // 全局频率限制守卫
    {
      provide: APP_GUARD,
      useClass: ThrottleGuard,
    },
    // 全局超时拦截器
    {
      provide: APP_INTERCEPTOR,
      useClass: TimeoutInterceptor,
    },
  ],
  exports: [ThrottleGuard, TimeoutInterceptor],
})
export class SecurityCoreModule {}