feat: complete V1 phases 0-7

This commit is contained in:
2026-08-12 14:35:12 +08:00
commit c3dd9be674
311 changed files with 38750 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
import { MiddlewareConsumer, Module, type NestModule } from '@nestjs/common';
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
import { AuditModule } from './audit/audit.module';
import { AuthModule } from './auth/auth.module';
import { CaseManagementModule } from './case-management/case-management.module';
import { AuthenticationGuard } from './auth/authentication.guard';
import { ApiExceptionFilter } from './common/api-exception.filter';
import { ApiResponseInterceptor } from './common/api-response.interceptor';
import { RequestIdMiddleware } from './common/request-id.middleware';
import { AppConfigModule } from './config/app-config.module';
import { DatabaseModule } from './database/database.module';
import { HealthController } from './health/health.controller';
import { HealthService } from './health/health.service';
import { FollowUpsModule } from './follow-ups/follow-ups.module';
import { PermissionGuard } from './permissions/permission.guard';
import { PermissionsModule } from './permissions/permissions.module';
import { ParticipationModule } from './participation/participation.module';
import { SecurityModule } from './security/security.module';
import { ServiceApplicationsModule } from './service-applications/service-applications.module';
import { UsersModule } from './users/users.module';
import { ContentNotificationsModule } from './content-notifications/content-notifications.module';
import { StatisticsModule } from './statistics/statistics.module';
import { RequestMetricsService } from './common/request-metrics.service';
import { RequestMetricsInterceptor } from './common/request-metrics.interceptor';
import { SystemMetricsController } from './common/system-metrics.controller';
@Module({
imports: [
AppConfigModule,
SecurityModule,
DatabaseModule,
AuditModule,
PermissionsModule,
ThrottlerModule.forRoot([{ name: 'default', ttl: 60_000, limit: 100 }]),
AuthModule,
UsersModule,
ServiceApplicationsModule,
CaseManagementModule,
FollowUpsModule,
ParticipationModule,
ContentNotificationsModule,
StatisticsModule,
],
controllers: [HealthController, SystemMetricsController],
providers: [
HealthService,
RequestMetricsService,
{ provide: APP_GUARD, useClass: ThrottlerGuard },
{ provide: APP_GUARD, useClass: AuthenticationGuard },
{ provide: APP_GUARD, useClass: PermissionGuard },
{ provide: APP_INTERCEPTOR, useClass: ApiResponseInterceptor },
{ provide: APP_INTERCEPTOR, useClass: RequestMetricsInterceptor },
{ provide: APP_FILTER, useClass: ApiExceptionFilter },
],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer): void {
consumer.apply(RequestIdMiddleware).forRoutes('*');
}
}