Files
esg/src/providers/providers.module.ts
s.hajizadeh 61098f1bf4 feat: add car inquiries with resilience, ownership privacy, and retry visibility
Introduce plate, chassis, and third-party car endpoints, a wall-clock inquiry
deadline with transport-only retries, and ownership-safe no-match errors so
another person's identity never leaks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 17:21:16 +03:30

51 lines
1.8 KiB
TypeScript

import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ProviderFactory } from './factory/provider.factory';
import { HamtaProvider } from './implementations/hamta.provider';
import { MoallemProvider } from './implementations/moallem.provider';
import { ParsianProvider } from './implementations/parsian.provider';
import { TejaratNouProvider } from './implementations/tejaratnou.provider';
import { AmitisProvider } from './implementations/amitis.provider';
import { ProviderOrchestratorService } from './strategy/provider-orchestrator.service';
import { GeneralToken, GeneralTokenSchema } from './schemas/general-token.schema';
import {
InquiryResultCache,
InquiryResultCacheSchema,
} from './schemas/inquiry-result-cache.schema';
import { CentInsurCarPolicyClient } from './shared/centinsur-car-policy.client';
import { CentInsurCarProviderSupport } from './shared/centinsur-car-provider.support';
import { GeneralTokenService } from './services/general-token.service';
import { InquiryResultCacheService } from './services/inquiry-result-cache.service';
/**
* Provider adapters, factory, and orchestration strategy.
*/
@Module({
imports: [
MongooseModule.forFeature([
{ name: GeneralToken.name, schema: GeneralTokenSchema },
{ name: InquiryResultCache.name, schema: InquiryResultCacheSchema },
]),
],
providers: [
HamtaProvider,
MoallemProvider,
ParsianProvider,
TejaratNouProvider,
AmitisProvider,
GeneralTokenService,
InquiryResultCacheService,
CentInsurCarPolicyClient,
CentInsurCarProviderSupport,
ProviderFactory,
ProviderOrchestratorService,
],
exports: [
ProviderFactory,
ProviderOrchestratorService,
GeneralTokenService,
InquiryResultCacheService,
],
})
export class ProvidersModule {}