import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
import { PrismaModule } from 'src/prisma/prisma.module';
import { AiUsageModule } from 'src/ai-usage/ai-usage.module';
import { AlertsService } from './alerts/alerts.service';
import { AiConfigModule } from './ai-config/ai-config.module';
import { AiProviderService } from './ai-provider/ai-provider.service';
import { AiDashboardController } from './ai-dashboard.controller';
import { InsightsService } from './insights/insights.service';
import { TimelineService } from './timeline/timeline.service';
import { RecalculoService } from './recalculo/recalculo.service';
import { RecalculoCron } from './recalculo/recalculo.cron';
import { ChatService } from './chat/chat.service';
import { ChatController } from './chat/chat.controller';
import { AiReadonlyDbService } from './chat/ai-readonly.service';
import { AiAuditService } from './chat/ai-audit.service';
import { PredictionsService } from './predictions/predictions.service';
import { RrhhContextService } from './shared/rrhh-context.service';
import { ModulesContextService } from './shared/modules-context.service';

@Module({
  imports: [
    PrismaModule,
    AiConfigModule,
    AiUsageModule,
    ScheduleModule.forRoot(),
  ],
  controllers: [AiDashboardController, ChatController],
  providers: [
    AiProviderService,
    InsightsService,
    AlertsService,
    TimelineService,
    RecalculoService,
    RecalculoCron,
    ChatService,
    AiReadonlyDbService,
    AiAuditService,
    PredictionsService,
    RrhhContextService,
    ModulesContextService,
  ],
  exports: [RecalculoService, ModulesContextService],
})
export class AiDashboardModule {}
