/* tslint:disable */
/* eslint-disable */
/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

// May contain unused imports in some cases
// @ts-ignore
import { FiatMoney } from "./fiat-money";
// May contain unused imports in some cases
// @ts-ignore
import { FiatMoneyUsd } from "./fiat-money-usd";
// May contain unused imports in some cases
// @ts-ignore
import { RiskEvaluation } from "./risk-evaluation";
// May contain unused imports in some cases
// @ts-ignore
import { WalletLocation } from "./wallet-location";

/**
 * A deposit
 * @export
 * @interface BusinessDeposit
 */
export interface BusinessDeposit {
  /**
   * Unique system generated identifier for the entity.
   * @type {string}
   * @memberof BusinessDeposit
   */
  id: string;
  /**
   * The identifier for the bank account where the funds were deposited from.
   * @type {string}
   * @memberof BusinessDeposit
   */
  sourceWalletId?: string;
  /**
   *
   * @type {WalletLocation}
   * @memberof BusinessDeposit
   */
  destination: WalletLocation;
  /**
   *
   * @type {FiatMoney}
   * @memberof BusinessDeposit
   */
  amount: FiatMoney;
  /**
   *
   * @type {FiatMoneyUsd}
   * @memberof BusinessDeposit
   */
  fee?: FiatMoneyUsd;
  /**
   * Status of the deposit. Status `pending` indicates that the deposit is in the process of running; `complete` indicates it finished successfully; `failed` indicates it failed.
   * @type {string}
   * @memberof BusinessDeposit
   */
  status: BusinessDepositStatusEnum;
  /**
   *
   * @type {RiskEvaluation}
   * @memberof BusinessDeposit
   */
  riskEvaluation?: RiskEvaluation | null;
  /**
   * ISO-8601 UTC date/time format.
   * @type {string}
   * @memberof BusinessDeposit
   */
  createDate: string;
  /**
   * ISO-8601 UTC date/time format.
   * @type {string}
   * @memberof BusinessDeposit
   */
  updateDate?: string;
}

export const BusinessDepositStatusEnum = {
  Pending: "pending",
  Complete: "complete",
  Failed: "failed"
} as const;

export type BusinessDepositStatusEnum =
  typeof BusinessDepositStatusEnum[keyof typeof BusinessDepositStatusEnum];
