/** Types generated for queries found in "src/modules/bank-deposits/providers/bank-deposit-charges.provider.ts" */
export type currency = 'AUD' | 'CAD' | 'ETH' | 'EUR' | 'GBP' | 'GRT' | 'ILS' | 'JPY' | 'SEK' | 'USD' | 'USDC';

/** 'GetTransactionsByBankDeposits' parameters type */
export interface IGetTransactionsByBankDepositsParams {
  depositIds: readonly (string | null | void)[];
}

/** 'GetTransactionsByBankDeposits' return type */
export interface IGetTransactionsByBankDepositsResult {
  account_id: string;
  amount: string;
  business_id: string | null;
  charge_id: string;
  counter_account: string | null;
  created_at: Date;
  currency: currency;
  currency_rate: string;
  current_balance: string;
  debit_date: Date | null;
  debit_date_override: Date | null;
  debit_timestamp: Date | null;
  event_date: Date;
  id: string;
  is_fee: boolean;
  new_deposit_id: string | null;
  origin_key: string;
  owner_id: string;
  source_description: string | null;
  source_id: string;
  source_origin: string;
  source_reference: string;
  updated_at: Date;
}

/** 'GetTransactionsByBankDeposits' query type */
export interface IGetTransactionsByBankDepositsQuery {
  params: IGetTransactionsByBankDepositsParams;
  result: IGetTransactionsByBankDepositsResult;
}

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

/** 'GetBankDepositsByChargeIds' return type */
export interface IGetBankDepositsByChargeIdsResult {
  account_id: string | null;
  charge_id: string;
  close_date: Date | null;
  currency: currency | null;
  id: string;
  name: string;
  open_date: Date | null;
}

/** 'GetBankDepositsByChargeIds' query type */
export interface IGetBankDepositsByChargeIdsQuery {
  params: IGetBankDepositsByChargeIdsParams;
  result: IGetBankDepositsByChargeIdsResult;
}

/** 'GetDepositTransactionsByChargeId' parameters type */
export interface IGetDepositTransactionsByChargeIdParams {
  chargeId?: string | null | void;
  includeCharge?: boolean | null | void;
}

/** 'GetDepositTransactionsByChargeId' return type */
export interface IGetDepositTransactionsByChargeIdResult {
  account_id: string;
  amount: string;
  business_id: string | null;
  charge_id: string;
  counter_account: string | null;
  created_at: Date;
  currency: currency;
  currency_rate: string;
  current_balance: string;
  debit_date: Date | null;
  debit_date_override: Date | null;
  debit_timestamp: Date | null;
  event_date: Date;
  id: string;
  is_fee: boolean;
  new_deposit_id: string | null;
  origin_key: string;
  owner_id: string;
  source_description: string | null;
  source_id: string;
  source_origin: string;
  source_reference: string;
  updated_at: Date;
}

/** 'GetDepositTransactionsByChargeId' query type */
export interface IGetDepositTransactionsByChargeIdQuery {
  params: IGetDepositTransactionsByChargeIdParams;
  result: IGetDepositTransactionsByChargeIdResult;
}

/** 'UpsertBankDepositCharge' parameters type */
export interface IUpsertBankDepositChargeParams {
  accountId?: string | null | void;
  chargeId?: string | null | void;
  depositId?: string | null | void;
  ownerId?: string | null | void;
}

/** 'UpsertBankDepositCharge' return type */
export type IUpsertBankDepositChargeResult = void;

/** 'UpsertBankDepositCharge' query type */
export interface IUpsertBankDepositChargeQuery {
  params: IUpsertBankDepositChargeParams;
  result: IUpsertBankDepositChargeResult;
}

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

/** 'UnlinkChargesFromBankDepositsByChargeIds' return type */
export type IUnlinkChargesFromBankDepositsByChargeIdsResult = void;

/** 'UnlinkChargesFromBankDepositsByChargeIds' query type */
export interface IUnlinkChargesFromBankDepositsByChargeIdsQuery {
  params: IUnlinkChargesFromBankDepositsByChargeIdsParams;
  result: IUnlinkChargesFromBankDepositsByChargeIdsResult;
}

/** 'GetAllDepositsWithTransactions' parameters type */
export type IGetAllDepositsWithTransactionsParams = void;

/** 'GetAllDepositsWithTransactions' return type */
export interface IGetAllDepositsWithTransactionsResult {
  account_id: string;
  amount: string;
  business_id: string | null;
  charge_id: string;
  close_date: Date | null;
  counter_account: string | null;
  created_at: Date;
  currency: currency;
  currency_rate: string;
  current_balance: string;
  debit_date: Date | null;
  debit_date_override: Date | null;
  debit_timestamp: Date | null;
  deposit_currency: currency | null;
  deposit_name: string;
  event_date: Date;
  id: string;
  is_fee: boolean;
  new_deposit_id: string;
  open_date: Date | null;
  origin_key: string;
  owner_id: string;
  source_description: string | null;
  source_id: string;
  source_origin: string;
  source_reference: string;
  updated_at: Date;
}

/** 'GetAllDepositsWithTransactions' query type */
export interface IGetAllDepositsWithTransactionsQuery {
  params: IGetAllDepositsWithTransactionsParams;
  result: IGetAllDepositsWithTransactionsResult;
}

