/** Types generated for queries found in "src/modules/documents/providers/documents.provider.ts" */
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;

/** 'GetAllDocuments' parameters type */
export type IGetAllDocumentsParams = void;

/** 'GetAllDocuments' return type */
export interface IGetAllDocumentsResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'GetAllDocuments' query type */
export interface IGetAllDocumentsQuery {
  params: IGetAllDocumentsParams;
  result: IGetAllDocumentsResult;
}

/** 'GetDocumentsByChargeId' parameters type */
export interface IGetDocumentsByChargeIdParams {
  chargeIds: readonly (string | null | void)[];
}

/** 'GetDocumentsByChargeId' return type */
export interface IGetDocumentsByChargeIdResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'GetDocumentsByChargeId' query type */
export interface IGetDocumentsByChargeIdQuery {
  params: IGetDocumentsByChargeIdParams;
  result: IGetDocumentsByChargeIdResult;
}

/** 'GetDocumentsByIds' parameters type */
export interface IGetDocumentsByIdsParams {
  Ids: readonly (string | null | void)[];
}

/** 'GetDocumentsByIds' return type */
export interface IGetDocumentsByIdsResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'GetDocumentsByIds' query type */
export interface IGetDocumentsByIdsQuery {
  params: IGetDocumentsByIdsParams;
  result: IGetDocumentsByIdsResult;
}

/** 'GetDocumentsByBusinessIds' parameters type */
export interface IGetDocumentsByBusinessIdsParams {
  Ids: readonly (string | null | void)[];
}

/** 'GetDocumentsByBusinessIds' return type */
export interface IGetDocumentsByBusinessIdsResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'GetDocumentsByBusinessIds' query type */
export interface IGetDocumentsByBusinessIdsQuery {
  params: IGetDocumentsByBusinessIdsParams;
  result: IGetDocumentsByBusinessIdsResult;
}

/** 'GetDocumentsByHashes' parameters type */
export interface IGetDocumentsByHashesParams {
  hashes: readonly (string | null | void)[];
}

/** 'GetDocumentsByHashes' return type */
export interface IGetDocumentsByHashesResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'GetDocumentsByHashes' query type */
export interface IGetDocumentsByHashesQuery {
  params: IGetDocumentsByHashesParams;
  result: IGetDocumentsByHashesResult;
}

/** 'GetDocumentsByMissingRequiredInfo' parameters type */
export type IGetDocumentsByMissingRequiredInfoParams = void;

/** 'GetDocumentsByMissingRequiredInfo' return type */
export interface IGetDocumentsByMissingRequiredInfoResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'GetDocumentsByMissingRequiredInfo' query type */
export interface IGetDocumentsByMissingRequiredInfoQuery {
  params: IGetDocumentsByMissingRequiredInfoParams;
  result: IGetDocumentsByMissingRequiredInfoResult;
}

/** 'UpdateDocument' parameters type */
export interface IUpdateDocumentParams {
  allocationNumber?: string | 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;
  documentId?: string | null | void;
  exchangeRateOverride?: NumberOrString | null | void;
  fileUrl?: string | null | void;
  imageUrl?: string | null | void;
  isReviewed?: boolean | null | void;
  noVatAmount?: NumberOrString | null | void;
  remarks?: string | null | void;
  serialNumber?: string | null | void;
  totalAmount?: number | null | void;
  type?: document_type | null | void;
  vatAmount?: number | null | void;
  vatReportDateOverride?: DateOrString | null | void;
}

/** 'UpdateDocument' return type */
export interface IUpdateDocumentResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'UpdateDocument' query type */
export interface IUpdateDocumentQuery {
  params: IUpdateDocumentParams;
  result: IUpdateDocumentResult;
}

/** 'DeleteDocument' parameters type */
export interface IDeleteDocumentParams {
  documentId?: string | null | void;
}

/** 'DeleteDocument' return type */
export interface IDeleteDocumentResult {
  id: string;
}

/** 'DeleteDocument' query type */
export interface IDeleteDocumentQuery {
  params: IDeleteDocumentParams;
  result: IDeleteDocumentResult;
}

/** 'InsertDocuments' parameters type */
export interface IInsertDocumentsParams {
  documents: readonly ({
    image: string | null | void,
    file: string | null | void,
    documentType: document_type | null | void,
    serialNumber: string | null | void,
    date: DateOrString | null | void,
    amount: number | null | void,
    currencyCode: currency | null | void,
    vat: number | null | void,
    chargeId: string | null | void,
    vatReportDateOverride: DateOrString | null | void,
    noVatAmount: NumberOrString | null | void,
    creditorId: string | null | void,
    debtorId: string | null | void,
    allocationNumber: string | null | void,
    exchangeRateOverride: NumberOrString | null | void,
    fileHash: string | null | void,
    description: string | null | void,
    remarks: string | null | void,
    ownerId: string | null | void
  })[];
}

/** 'InsertDocuments' return type */
export interface IInsertDocumentsResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'InsertDocuments' query type */
export interface IInsertDocumentsQuery {
  params: IInsertDocumentsParams;
  result: IInsertDocumentsResult;
}

/** 'GetDocumentsByFilters' parameters type */
export interface IGetDocumentsByFiltersParams {
  businessIDs: readonly (string | null | void)[];
  fromVatDate?: string | null | void;
  IDs: readonly (string | null | void)[];
  isBusinessIDs?: number | null | void;
  isIDs?: number | null | void;
  toVatDate?: string | null | void;
}

/** 'GetDocumentsByFilters' return type */
export interface IGetDocumentsByFiltersResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'GetDocumentsByFilters' query type */
export interface IGetDocumentsByFiltersQuery {
  params: IGetDocumentsByFiltersParams;
  result: IGetDocumentsByFiltersResult;
}

/** 'GetDocumentsByExtendedFilters' parameters type */
export interface IGetDocumentsByExtendedFiltersParams {
  businessIDs: readonly (string | null | void)[];
  fromDate?: string | null | void;
  fromVatDate?: string | null | void;
  IDs: readonly (string | null | void)[];
  isBusinessIDs?: number | null | void;
  isIDs?: number | null | void;
  isOwnerIDs?: number | null | void;
  isUnmatched?: number | null | void;
  ownerIDs: readonly (string | null | void)[];
  toDate?: string | null | void;
  toVatDate?: string | null | void;
}

/** 'GetDocumentsByExtendedFilters' return type */
export interface IGetDocumentsByExtendedFiltersResult {
  allocation_number: string | null;
  charge_id: string | null;
  created_at: Date;
  creditor_id: string | null;
  currency_code: currency | null;
  date: Date | null;
  debtor_id: string | null;
  description: string | null;
  exchange_rate_override: string | null;
  file_hash: string | null;
  file_url: string | null;
  id: string;
  image_url: string | null;
  is_reviewed: boolean;
  no_vat_amount: string | null;
  owner_id: string;
  remarks: string | null;
  serial_number: string | null;
  total_amount: number | null;
  type: document_type;
  updated_at: Date;
  vat_amount: number | null;
  vat_report_date_override: Date | null;
}

/** 'GetDocumentsByExtendedFilters' query type */
export interface IGetDocumentsByExtendedFiltersQuery {
  params: IGetDocumentsByExtendedFiltersParams;
  result: IGetDocumentsByExtendedFiltersResult;
}

/** 'ReplaceDocumentsChargeId' parameters type */
export interface IReplaceDocumentsChargeIdParams {
  assertChargeID?: string | null | void;
  replaceChargeID?: string | null | void;
}

/** 'ReplaceDocumentsChargeId' return type */
export interface IReplaceDocumentsChargeIdResult {
  id: string;
}

/** 'ReplaceDocumentsChargeId' query type */
export interface IReplaceDocumentsChargeIdQuery {
  params: IReplaceDocumentsChargeIdParams;
  result: IReplaceDocumentsChargeIdResult;
}

