/** Types generated for queries found in "src/modules/financial-accounts/providers/financial-accounts.provider.ts" */
export type financial_account_type = 'BANK_ACCOUNT' | 'BANK_DEPOSIT_ACCOUNT' | 'CREDIT_CARD' | 'CRYPTO_WALLET' | 'FOREIGN_SECURITIES';

/** 'GetFinancialAccountsByOwnerIds' parameters type */
export interface IGetFinancialAccountsByOwnerIdsParams {
  ownerIds: readonly (string | null | void)[];
}

/** 'GetFinancialAccountsByOwnerIds' return type */
export interface IGetFinancialAccountsByOwnerIdsResult {
  account_name: string | null;
  account_number: string;
  id: string;
  owner: string | null;
  private_business: string;
  type: financial_account_type;
}

/** 'GetFinancialAccountsByOwnerIds' query type */
export interface IGetFinancialAccountsByOwnerIdsQuery {
  params: IGetFinancialAccountsByOwnerIdsParams;
  result: IGetFinancialAccountsByOwnerIdsResult;
}

/** 'GetFinancialAccountsByAccountNumbers' parameters type */
export interface IGetFinancialAccountsByAccountNumbersParams {
  accountNumbers: readonly (string | null | void)[];
}

/** 'GetFinancialAccountsByAccountNumbers' return type */
export interface IGetFinancialAccountsByAccountNumbersResult {
  account_name: string | null;
  account_number: string;
  id: string;
  owner: string | null;
  private_business: string;
  type: financial_account_type;
}

/** 'GetFinancialAccountsByAccountNumbers' query type */
export interface IGetFinancialAccountsByAccountNumbersQuery {
  params: IGetFinancialAccountsByAccountNumbersParams;
  result: IGetFinancialAccountsByAccountNumbersResult;
}

/** 'GetFinancialAccountsByAccountIDs' parameters type */
export interface IGetFinancialAccountsByAccountIDsParams {
  accountIDs: readonly (string | null | void)[];
}

/** 'GetFinancialAccountsByAccountIDs' return type */
export interface IGetFinancialAccountsByAccountIDsResult {
  account_name: string | null;
  account_number: string;
  id: string;
  owner: string | null;
  private_business: string;
  type: financial_account_type;
}

/** 'GetFinancialAccountsByAccountIDs' query type */
export interface IGetFinancialAccountsByAccountIDsQuery {
  params: IGetFinancialAccountsByAccountIDsParams;
  result: IGetFinancialAccountsByAccountIDsResult;
}

/** 'GetAllFinancialAccounts' parameters type */
export type IGetAllFinancialAccountsParams = void;

/** 'GetAllFinancialAccounts' return type */
export interface IGetAllFinancialAccountsResult {
  account_name: string | null;
  account_number: string;
  id: string;
  owner: string | null;
  private_business: string;
  type: financial_account_type;
}

/** 'GetAllFinancialAccounts' query type */
export interface IGetAllFinancialAccountsQuery {
  params: IGetAllFinancialAccountsParams;
  result: IGetAllFinancialAccountsResult;
}

/** 'UpdateFinancialAccount' parameters type */
export interface IUpdateFinancialAccountParams {
  accountNumber?: string | null | void;
  financialAccountId?: string | null | void;
  name?: string | null | void;
  ownerId?: string | null | void;
  privateBusiness?: string | null | void;
  type?: financial_account_type | null | void;
}

/** 'UpdateFinancialAccount' return type */
export interface IUpdateFinancialAccountResult {
  account_agreement_opening_date: number | null;
  account_closing_reason_code: number | null;
  account_deal_date: number | null;
  account_name: string | null;
  account_number: string;
  account_update_date: number | null;
  bank_number: number | null;
  branch_number: number | null;
  branch_type_code: number | null;
  extended_bank_number: number | null;
  id: string;
  kod_harshaat_peilut: number | null;
  /** Getting mail only online or physical
    0 - Also physical
    1 - Only online */
  meteg_doar_net: number | null;
  mymail_entitlement_switch: number | null;
  owner: string | null;
  owner_id: string;
  party_account_involvement_code: number | null;
  party_preferred_indication: number | null;
  private_business: string;
  product_label: string | null;
  service_authorization_desc: string | null;
  type: financial_account_type;
}

/** 'UpdateFinancialAccount' query type */
export interface IUpdateFinancialAccountQuery {
  params: IUpdateFinancialAccountParams;
  result: IUpdateFinancialAccountResult;
}

/** 'InsertFinancialAccounts' parameters type */
export interface IInsertFinancialAccountsParams {
  bankAccounts: readonly ({
    accountNumber: string | null | void,
    name: string | null | void,
    privateBusiness: string | null | void,
    ownerId: string | null | void,
    type: financial_account_type | null | void
  })[];
}

/** 'InsertFinancialAccounts' return type */
export interface IInsertFinancialAccountsResult {
  account_agreement_opening_date: number | null;
  account_closing_reason_code: number | null;
  account_deal_date: number | null;
  account_name: string | null;
  account_number: string;
  account_update_date: number | null;
  bank_number: number | null;
  branch_number: number | null;
  branch_type_code: number | null;
  extended_bank_number: number | null;
  id: string;
  kod_harshaat_peilut: number | null;
  /** Getting mail only online or physical
    0 - Also physical
    1 - Only online */
  meteg_doar_net: number | null;
  mymail_entitlement_switch: number | null;
  owner: string | null;
  owner_id: string;
  party_account_involvement_code: number | null;
  party_preferred_indication: number | null;
  private_business: string;
  product_label: string | null;
  service_authorization_desc: string | null;
  type: financial_account_type;
}

/** 'InsertFinancialAccounts' query type */
export interface IInsertFinancialAccountsQuery {
  params: IInsertFinancialAccountsParams;
  result: IInsertFinancialAccountsResult;
}

/** 'DeleteFinancialAccount' parameters type */
export interface IDeleteFinancialAccountParams {
  financialAccountId?: string | null | void;
}

/** 'DeleteFinancialAccount' return type */
export interface IDeleteFinancialAccountResult {
  id: string;
}

/** 'DeleteFinancialAccount' query type */
export interface IDeleteFinancialAccountQuery {
  params: IDeleteFinancialAccountParams;
  result: IDeleteFinancialAccountResult;
}

