import { Global, Module } from "@nestjs/common"; import { TypeOrmModule } from "@nestjs/typeorm"; import { ExchangeSetting } from "./entities/exchange-setting.entity"; import { ExchangeSettingsController } from "./exchange-settings.controller"; import { registerExchangeModule } from "./exchange-module-options"; import { ExchangeSettingsService } from "./exchange-settings.service"; /** * Global so the several `ExchangeModule.forRootAsync` registrations (bookings, * contracts, warehouses) can inject {@link ExchangeSettingsService} into their * options factory without each importing this module. * * Also registers its own `ExchangeModule` so `ExchangeSettingsController` can * report the live CBE feed status (`ExchangeService.getProviderStatus()`) * alongside the DB-backed fallback rate. */ @Global() @Module({ imports: [TypeOrmModule.forFeature([ExchangeSetting]), registerExchangeModule()], controllers: [ExchangeSettingsController], providers: [ExchangeSettingsService], exports: [ExchangeSettingsService], }) export class ExchangeSettingsModule {}