All files / src/platform/ai ai-platform.module.ts

0% Statements 0/13
100% Branches 0/0
0% Functions 0/1
0% Lines 0/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62                                                                                                                           
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import {
  AiModelDefinition,
  AiModelDefinitionSchema,
  AiTenantConfiguration,
  AiTenantConfigurationSchema,
  AiPromptTemplate,
  AiPromptTemplateSchema,
  AiExecution,
  AiExecutionSchema,
} from './schemas/ai.schema';
import {
  AiGatewayProvider,
  AiGatewayProviderSchema,
  AiRoutingPolicy,
  AiRoutingPolicySchema,
  AiCreditLedger,
  AiCreditLedgerSchema,
  AiConversation,
  AiConversationSchema,
  AiMessage,
  AiMessageSchema,
} from './schemas/ai-gateway.schema';
import { AiService } from './services/ai.service';
import { AiGatewayService } from './services/ai-gateway.service';
import { AiController } from './controllers/ai.controller';
import { MockAiProvider } from './providers/mock-ai.provider';
 
@Module({
  imports: [
    MongooseModule.forFeature([
      { name: AiModelDefinition.name, schema: AiModelDefinitionSchema },
      { name: AiTenantConfiguration.name, schema: AiTenantConfigurationSchema },
      { name: AiPromptTemplate.name, schema: AiPromptTemplateSchema },
      { name: AiExecution.name, schema: AiExecutionSchema },
 
      { name: AiGatewayProvider.name, schema: AiGatewayProviderSchema },
      { name: AiRoutingPolicy.name, schema: AiRoutingPolicySchema },
      { name: AiCreditLedger.name, schema: AiCreditLedgerSchema },
      { name: AiConversation.name, schema: AiConversationSchema },
      { name: AiMessage.name, schema: AiMessageSchema },
    ]),
  ],
  controllers: [AiController],
  providers: [
    AiService,
    AiGatewayService,
    {
      provide: 'AI_MOCK_PROVIDER_INIT',
      inject: [AiService],
      useFactory: (aiService: AiService) => {
        // Register mock provider as default — swap with real in production
        aiService.registerProvider(new MockAiProvider(), true);
        return true;
      },
    },
  ],
  exports: [AiService, AiGatewayService],
})
export class AiPlatformModule {}