/** Types generated for queries found in "src/modules/email-ingestion/providers/email-ingestion-ingest.provider.ts" */
export type accountant_status = 'APPROVED' | 'PENDING' | 'UNAPPROVED';

export type currency = 'AUD' | 'CAD' | 'ETH' | 'EUR' | 'GBP' | 'GRT' | 'ILS' | 'JPY' | 'SEK' | 'USD' | 'USDC';

export type document_type = 'CREDIT_INVOICE' | 'INVOICE' | 'INVOICE_RECEIPT' | 'OTHER' | 'PROFORMA' | 'RECEIPT' | 'UNPROCESSED';

export type DateOrString = Date | string;

export type NumberOrString = number | string;

/** 'CheckIdempotencyKeyForIngest' parameters type */
export interface ICheckIdempotencyKeyForIngestParams {
  idempotencyKey?: string | null | void;
  ownerId?: string | null | void;
}

/** 'CheckIdempotencyKeyForIngest' return type */
export interface ICheckIdempotencyKeyForIngestResult {
  audit_id: string;
  created_at: Date;
  id: string;
  idempotency_key: string;
  ingest_id: string | null;
  outcome: string;
  owner_id: string;
}

/** 'CheckIdempotencyKeyForIngest' query type */
export interface ICheckIdempotencyKeyForIngestQuery {
  params: ICheckIdempotencyKeyForIngestParams;
  result: ICheckIdempotencyKeyForIngestResult;
}

/** 'InsertIdempotencyKeyForIngest' parameters type */
export interface IInsertIdempotencyKeyForIngestParams {
  auditId?: string | null | void;
  idempotencyKey?: string | null | void;
  ingestId?: string | null | void;
  outcome?: string | null | void;
  ownerId?: string | null | void;
}

/** 'InsertIdempotencyKeyForIngest' return type */
export interface IInsertIdempotencyKeyForIngestResult {
  audit_id: string;
  created_at: Date;
  id: string;
  idempotency_key: string;
  ingest_id: string | null;
  outcome: string;
  owner_id: string;
}

/** 'InsertIdempotencyKeyForIngest' query type */
export interface IInsertIdempotencyKeyForIngestQuery {
  params: IInsertIdempotencyKeyForIngestParams;
  result: IInsertIdempotencyKeyForIngestResult;
}

/** 'CheckDedupFingerprintForIngest' parameters type */
export interface ICheckDedupFingerprintForIngestParams {
  fingerprint?: string | null | void;
  ownerId?: string | null | void;
}

/** 'CheckDedupFingerprintForIngest' return type */
export interface ICheckDedupFingerprintForIngestResult {
  correlation_id: string | null;
  created_at: Date;
  fingerprint: string;
  id: string;
  ingest_id: string | null;
  outcome: string;
  owner_id: string;
}

/** 'CheckDedupFingerprintForIngest' query type */
export interface ICheckDedupFingerprintForIngestQuery {
  params: ICheckDedupFingerprintForIngestParams;
  result: ICheckDedupFingerprintForIngestResult;
}

/** 'InsertDedupFingerprintForIngest' parameters type */
export interface IInsertDedupFingerprintForIngestParams {
  correlationId?: string | null | void;
  fingerprint?: string | null | void;
  ingestId?: string | null | void;
  outcome?: string | null | void;
  ownerId?: string | null | void;
}

/** 'InsertDedupFingerprintForIngest' return type */
export interface IInsertDedupFingerprintForIngestResult {
  correlation_id: string | null;
  created_at: Date;
  fingerprint: string;
  id: string;
  ingest_id: string | null;
  outcome: string;
  owner_id: string;
}

/** 'InsertDedupFingerprintForIngest' query type */
export interface IInsertDedupFingerprintForIngestQuery {
  params: IInsertDedupFingerprintForIngestParams;
  result: IInsertDedupFingerprintForIngestResult;
}

/** 'InsertQuarantineForIngest' parameters type */
export interface IInsertQuarantineForIngestParams {
  correlationId?: string | null | void;
  messageId?: string | null | void;
  rawMessageHash?: string | null | void;
  reasonCode?: string | null | void;
  tenantCandidate?: string | null | void;
}

/** 'InsertQuarantineForIngest' return type */
export interface IInsertQuarantineForIngestResult {
  id: string;
}

/** 'InsertQuarantineForIngest' query type */
export interface IInsertQuarantineForIngestQuery {
  params: IInsertQuarantineForIngestParams;
  result: IInsertQuarantineForIngestResult;
}

/** 'CheckDocumentByHashForIngest' parameters type */
export interface ICheckDocumentByHashForIngestParams {
  fileHash?: string | null | void;
  ownerId?: string | null | void;
}

/** 'CheckDocumentByHashForIngest' return type */
export interface ICheckDocumentByHashForIngestResult {
  id: string;
}

/** 'CheckDocumentByHashForIngest' query type */
export interface ICheckDocumentByHashForIngestQuery {
  params: ICheckDocumentByHashForIngestParams;
  result: ICheckDocumentByHashForIngestResult;
}

/** 'InsertIngestCharge' parameters type */
export interface IInsertIngestChargeParams {
  accountantStatus?: accountant_status | null | void;
  ownerId?: string | null | void;
  userDescription?: string | null | void;
}

/** 'InsertIngestCharge' return type */
export interface IInsertIngestChargeResult {
  id: string;
}

/** 'InsertIngestCharge' query type */
export interface IInsertIngestChargeQuery {
  params: IInsertIngestChargeParams;
  result: IInsertIngestChargeResult;
}

/** 'InsertIngestDocumentFull' parameters type */
export interface IInsertIngestDocumentFullParams {
  allocationNumber?: string | null | void;
  amount?: number | null | void;
  chargeId?: string | null | void;
  creditorId?: string | null | void;
  currencyCode?: currency | null | void;
  date?: DateOrString | null | void;
  debtorId?: string | null | void;
  description?: string | null | void;
  documentType?: document_type | null | void;
  exchangeRateOverride?: NumberOrString | null | void;
  fileHash?: string | null | void;
  fileUrl?: string | null | void;
  imageUrl?: string | null | void;
  noVatAmount?: NumberOrString | null | void;
  ownerId?: string | null | void;
  remarks?: string | null | void;
  serialNumber?: string | null | void;
  vat?: number | null | void;
  vatReportDateOverride?: DateOrString | null | void;
}

/** 'InsertIngestDocumentFull' return type */
export interface IInsertIngestDocumentFullResult {
  id: string;
}

/** 'InsertIngestDocumentFull' query type */
export interface IInsertIngestDocumentFullQuery {
  params: IInsertIngestDocumentFullParams;
  result: IInsertIngestDocumentFullResult;
}

