import { Module } from "@nestjs/common";
import { CatalogController } from "./catalog.controller";
import { CatalogHealthController } from "./catalog-health.controller";
import { IntegrationsModule } from "@bff/integrations/integrations.module";
import { MappingsModule } from "@bff/modules/id-mappings/mappings.module";
import { CoreConfigModule } from "@bff/core/config/config.module";
import { CacheModule } from "@bff/infra/cache/cache.module";
import { QueueModule } from "@bff/core/queue/queue.module";

import { BaseCatalogService } from "./services/base-catalog.service";
import { InternetCatalogService } from "./services/internet-catalog.service";
import { SimCatalogService } from "./services/sim-catalog.service";
import { VpnCatalogService } from "./services/vpn-catalog.service";
import { CatalogCacheService } from "./services/catalog-cache.service";

@Module({
  imports: [IntegrationsModule, MappingsModule, CoreConfigModule, CacheModule, QueueModule],
  controllers: [CatalogController, CatalogHealthController],
  providers: [
    BaseCatalogService,
    InternetCatalogService,
    SimCatalogService,
    VpnCatalogService,
    CatalogCacheService,
  ],
  exports: [InternetCatalogService, SimCatalogService, VpnCatalogService, CatalogCacheService],
})
export class CatalogModule {}
