// Generated by eosio-abi2ts 1.2.2 - eosio::abi/1.2

export type IAsset = string
export type IName = string
export type IChecksum256 = string
export type IPublicKey = string
export type ISignature = string
export type ITimePointSec = string
export type IUint32 = number
export type IUint64 = number | string

export interface IAccept {
  coopname: IName
  supplier_braname: IName
  username: IName
  request_hash: IChecksum256
  convert_out: IDocument2
  return_document: IDocument2
}

export interface IArrived {
  coopname: IName
  hash: IChecksum256
  transport_act_delivery: IDocument2
}

export interface IAuthcontrib {
  coopname: IName
  request_hash: IChecksum256
  authorization: IDocument2
}

export interface IAuthreturn {
  coopname: IName
  request_hash: IChecksum256
  authorization: IDocument2
}

export interface IBalances extends IBalancesBase {
}

export interface IBalancesBase {
  id: IUint64
  contract: IName
  quantity: IAsset
}

export interface ICancel {
  coopname: IName
  username: IName
  request_hash: IChecksum256
}

export interface IComplete {
  coopname: IName
  username: IName
  request_hash: IChecksum256
}

export interface ICounts extends ICountsBase {
}

export interface ICountsBase {
  key: IName
  secondary_key: IName
  value: IUint64
}

export interface ICreateship {
  coopname: IName
  hash: IChecksum256
  driver_username: IName
  source_braname: IName
  destination_braname: IName
  request_hashes: IChecksum256[]
  transport_act_sender: IDocument2
}

export interface IDecline {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  meta: string
}

export interface IDeclineacc {
  coopname: IName
  hash: IChecksum256
  reason: string
}

export interface IDelivered {
  coopname: IName
  username: IName
  request_hash: IChecksum256
}

export interface IDispute {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  document: IDocument2
}

export interface IDocument2 {
  version: string
  hash: IChecksum256
  doc_hash: IChecksum256
  meta_hash: IChecksum256
  meta: string
  signatures: ISignatureInfo[]
}

export interface IMigrate {
}

export interface INamedDocument {
  name: IName
  document: IDocument2
}

export interface IOrderoffer {
  coopname: IName
  receiver_braname: IName
  username: IName
  hash: IChecksum256
  units: IUint64
  unit_cost: IAsset
  product_lifecycle_secs: IUint32
  warranty_period_secs: IUint32
  membership_fee_amount: IAsset
  cancellation_fee_amount: IAsset
  product_return_statement: IDocument2
  convert_in: IDocument2
  meta: string
}

export interface IReceive {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  document: IDocument2
}

export interface IReceivecnf {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  document: IDocument2
}

export interface IReceiveshipm {
  coopname: IName
  hash: IChecksum256
  warehouse_receipt_act: IDocument2
}

export interface IRequest {
  id: IUint64
  hash: IChecksum256
  coopname: IName
  type: IName
  status: IName
  username: IName
  braname: IName
  warehouse: IName
  token_contract: IName
  receiver_braname: IName
  supplier_braname: IName
  unit_cost: IAsset
  base_cost: IAsset
  membership_fee_amount: IAsset
  total_cost: IAsset
  units: IUint64
  meta: string
  money_contributor: IName
  product_contributor: IName
  documents: INamedDocument[]
  product_lifecycle_secs: IUint64
  warranty_period_secs: IUint64
  cancellation_fee_amount: IAsset
  warranty_delay_until: ITimePointSec
  deadline_for_receipt: ITimePointSec
  is_warranty_return: boolean
  warranty_return_id: IUint64
  created_at: ITimePointSec
  accepted_at: ITimePointSec
  supplied_at: ITimePointSec
  delivered_at: ITimePointSec
  received_at: ITimePointSec
  completed_at: ITimePointSec
  declined_at: ITimePointSec
  disputed_at: ITimePointSec
  canceled_at: ITimePointSec
}

export interface IRetransport {
  coopname: IName
  completed_hash: IChecksum256
  new_driver_username: IName
  source_braname: IName
  new_destination_braname: IName
  request_hashes: IChecksum256[]
  transport_act_sender: IDocument2
}

export interface ISegment {
  id: IUint64
  request_id: IUint64
  type: IName
  status: IName
  convert_in: IDocument2
  statement: IDocument2
  decision_id: IUint64
  authorization: IDocument2
  act1: IDocument2
  act2: IDocument2
  convert_out: IDocument2
  transport_act_1: IDocument2
  transport_act_2: IDocument2
  transport_act_3: IDocument2
  transport_act_4: IDocument2
  coopactor: IName
  username: IName
  driver_username: IName
  receive_from_driver_coopactor: IName
  created_at: ITimePointSec
  updated_at: ITimePointSec
}

export interface IShipment {
  id: IUint64
  hash: IChecksum256
  coopname: IName
  driver_username: IName
  source_braname: IName
  destination_braname: IName
  status: IName
  request_hashes: IChecksum256[]
  documents: INamedDocument[]
  created_at: ITimePointSec
  loaded_at: ITimePointSec
  delivered_at: ITimePointSec
  completed_at: ITimePointSec
}

export interface ISignatureInfo {
  id: IUint32
  signed_hash: IChecksum256
  signer: IName
  public_key: IPublicKey
  signature: ISignature
  signed_at: ITimePointSec
  meta: string
}

export interface ISignbydriver {
  coopname: IName
  hash: IChecksum256
  transport_act_driver: IDocument2
}

export interface ISupplcnf {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  act: IDocument2
}

export interface ISupply {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  act: IDocument2
}

export interface IWaccept {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  accept: boolean
  document: IDocument2
}

export interface IWauthorize {
  coopname: IName
  request_hash: IChecksum256
  wreturn_decision_id: IUint64
  wreturn_authorization: IDocument2
  wsupply_decision_id: IUint64
  wsupply_authorization: IDocument2
}

export interface IWoffer {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  document: IDocument2
}

export interface IWreturn {
  coopname: IName
  username: IName
  request_hash: IChecksum256
  document: IDocument2
}

