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>
This commit is contained in:
2026-09-05 17:21:16 +03:30
parent b4be98b156
commit 61098f1bf4
40 changed files with 2595 additions and 374 deletions

View File

@@ -8,9 +8,14 @@ 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 { CachedInquiryResult, CachedInquiryResultSchema } from './schemas/cached-inquiry-result.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 { CachedInquiryResultService } from './services/cached-inquiry-result.service';
import { InquiryResultCacheService } from './services/inquiry-result-cache.service';
/**
* Provider adapters, factory, and orchestration strategy.
@@ -19,7 +24,7 @@ import { CachedInquiryResultService } from './services/cached-inquiry-result.ser
imports: [
MongooseModule.forFeature([
{ name: GeneralToken.name, schema: GeneralTokenSchema },
{ name: CachedInquiryResult.name, schema: CachedInquiryResultSchema },
{ name: InquiryResultCache.name, schema: InquiryResultCacheSchema },
]),
],
providers: [
@@ -29,10 +34,17 @@ import { CachedInquiryResultService } from './services/cached-inquiry-result.ser
TejaratNouProvider,
AmitisProvider,
GeneralTokenService,
CachedInquiryResultService,
InquiryResultCacheService,
CentInsurCarPolicyClient,
CentInsurCarProviderSupport,
ProviderFactory,
ProviderOrchestratorService,
],
exports: [ProviderFactory, ProviderOrchestratorService, GeneralTokenService, CachedInquiryResultService],
exports: [
ProviderFactory,
ProviderOrchestratorService,
GeneralTokenService,
InquiryResultCacheService,
],
})
export class ProvidersModule {}