initial commit

This commit is contained in:
2026-06-09 14:07:37 +03:30
parent 30ac533800
commit 996a4fcda7
121 changed files with 20557 additions and 3 deletions

View File

@@ -0,0 +1,22 @@
import { InquiryType } from '../enums/inquiry-type.enum';
import { ProviderName } from '../enums/provider-name.enum';
/**
* Contract every external provider adapter must fulfill.
* Keeps orchestration logic decoupled from provider implementations (Strategy pattern).
*/
export interface InquiryProvider<TRequest = unknown, TResponse = unknown> {
readonly name: ProviderName;
readonly supportedInquiryTypes: InquiryType[];
isEnabled(): boolean;
execute(
inquiryType: InquiryType,
payload: TRequest,
context: ProviderExecutionContext,
): Promise<TResponse>;
}
export interface ProviderExecutionContext {
requestId: string;
trackingCode: string;
}