import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AIService } from './ai.service';
import { AIController } from './ai.controller';
import { ContextManager } from './context/context-manager';
import { MedicalSafetyService } from './safety/medical-safety.service';
import { ResponseModerationService } from './safety/response-moderation.service';
import { AISafetyService } from './safety/ai-safety.service';
import { AIRateLimitService } from './safety/ai-rate-limit.service';
import { MultiLanguageService } from './localization/multilanguage.service';
import { ConversationMemoryService } from './memory/conversation-memory.service';
import { EmbeddingsService } from './embeddings/embeddings.service';
import {
  AIConversation,
  ConversationEmbedding,
  Child,
  Activity,
} from '../../database/entities';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      AIConversation,
      ConversationEmbedding,
      Child,
      Activity,
    ]),
  ],
  controllers: [AIController],
  providers: [
    AIService,
    ContextManager,
    MedicalSafetyService,
    ResponseModerationService,
    AISafetyService,
    AIRateLimitService,
    MultiLanguageService,
    ConversationMemoryService,
    EmbeddingsService,
  ],
  exports: [AIService, AISafetyService, AIRateLimitService],
})
export class AIModule {}
