Source

core/interfaces/composite-verification-adapter.interface.ts

import { ININVerificationService } from './verification-services/nin-verification.interface';
import { IBVNVerificationService } from './verification-services/bvn-verification.interface';
import { ICACVerificationService } from './verification-services/cac-verification.interface';
import { IDriversLicenseVerificationService } from './verification-services/drivers-license-verification.interface';
import { IPassportVerificationService } from './verification-services/passport-verification.interface';
import { IPhoneVerificationService } from './verification-services/phone-verification.interface';
import { IBankAccountVerificationService } from './verification-services/bank-account-verification.interface';
import { IVehicleVerificationService } from './verification-services/vehicle-verification.interface';
import { ITaxVerificationService } from './verification-services/tax-verification.interface';
import { IVotersCardVerificationService } from './verification-services/voters-card-verification.interface';
import { ICreditBureauVerificationService } from './verification-services/credit-bureau-verification.interface';
import { IOtherVerificationService } from './verification-services/other-verification.interface';

/**
 * Composite verification adapter interface
 * Adapters can implement any combination of these specialized services
 * Unsupported methods should throw NotImplementedException
 */
export interface ICompositeVerificationAdapter {
  /**
   * Get the adapter name/provider
   */
  getName(): string;
  
  /**
   * Check if the adapter is ready and configured
   */
  isReady(): boolean;
  
  /**
   * Get NIN verification service if supported
   */
  getNINService?(): ININVerificationService | null;
  
  /**
   * Get BVN verification service if supported
   */
  getBVNService?(): IBVNVerificationService | null;
  
  /**
   * Get CAC verification service if supported
   */
  getCACService?(): ICACVerificationService | null;
  
  /**
   * Get Driver's License verification service if supported
   */
  getDriversLicenseService?(): IDriversLicenseVerificationService | null;
  
  /**
   * Get Passport verification service if supported
   */
  getPassportService?(): IPassportVerificationService | null;
  
  /**
   * Get Phone verification service if supported
   */
  getPhoneService?(): IPhoneVerificationService | null;
  
  /**
   * Get Bank Account verification service if supported
   */
  getBankAccountService?(): IBankAccountVerificationService | null;
  
  /**
   * Get Vehicle verification service if supported
   */
  getVehicleService?(): IVehicleVerificationService | null;
  
  /**
   * Get Tax verification service if supported
   */
  getTaxService?(): ITaxVerificationService | null;
  
  /**
   * Get Voters Card verification service if supported
   */
  getVotersCardService?(): IVotersCardVerificationService | null;
  
  /**
   * Get Credit Bureau verification service if supported
   */
  getCreditBureauService?(): ICreditBureauVerificationService | null;
  
  /**
   * Get Other verification services if supported
   */
  getOtherService?(): IOtherVerificationService | null;
}