import { Module } from '@nestjs/common'; import { APP_FILTER, APP_INTERCEPTOR } from '@nestjs/core'; import { MongooseModule } from '@nestjs/mongoose'; import { AdminController } from './admin.controller'; import { AdminService } from './admin.service'; import { AdminAuthGuard } from './admin-auth.guard'; import { RequestMetricsInterceptor } from './request-metrics.interceptor'; import { MongoErrorLoggerFilter } from './mongo-error-logger.filter'; import { AccessLog, AccessLogSchema } from './entities/access-log.entity'; import { ErrorLog, ErrorLogSchema } from './entities/error-log.entity'; import { Musica, MusicaSchema } from '../musica/entities/musica.entity'; import { FeedbackAprendizado, FeedbackAprendizadoSchema, } from '../musica/entities/feedback-aprendizado.entity'; import { LearningEvent, LearningEventSchema } from '../musica/entities/learning-event.entity'; import { DecisionTrace, DecisionTraceSchema } from '../musica/entities/decision-trace.entity'; import { AdaptivePrior, AdaptivePriorSchema } from '../musica/entities/adaptive-prior.entity'; @Module({ imports: [ MongooseModule.forFeature([ { name: AccessLog.name, schema: AccessLogSchema }, { name: ErrorLog.name, schema: ErrorLogSchema }, { name: Musica.name, schema: MusicaSchema }, { name: FeedbackAprendizado.name, schema: FeedbackAprendizadoSchema }, { name: LearningEvent.name, schema: LearningEventSchema }, { name: DecisionTrace.name, schema: DecisionTraceSchema }, { name: AdaptivePrior.name, schema: AdaptivePriorSchema }, ]), ], controllers: [AdminController], providers: [ AdminService, AdminAuthGuard, { provide: APP_INTERCEPTOR, useClass: RequestMetricsInterceptor, }, { provide: APP_FILTER, useClass: MongoErrorLoggerFilter, }, ], exports: [AdminService], }) export class AdminModule {}