/* tslint:disable */
import { EntityDTOBaseOfDisplayOrderDTOAndIOrder } from './entity-dtobase-of-display-order-dtoand-iorder';
import { KeyValueDTOOfStringAndString } from './key-value-dtoof-string-and-string';
import { DisplayAddresseeDTO } from './display-addressee-dto';
import { BuyerType } from './buyer-type';
import { EnvironmentChannel } from './environment-channel';
import { DisplayOrderItemDTO } from './display-order-item-dto';
import { LinkedRecordDTO } from './linked-record-dto';
import { DisplayLogisticianDTO } from './display-logistician-dto';
import { NotificationChannel } from './notification-channel';
import { DisplayBranchDTO } from './display-branch-dto';
import { OrderType } from './order-type';
import { DisplayOrderPaymentDTO } from './display-order-payment-dto';
import { TermsOfDeliveryDTO } from './terms-of-delivery-dto';
export interface DisplayOrderDTO extends EntityDTOBaseOfDisplayOrderDTOAndIOrder{

  /**
   * Mögliche Aktionen
   */
  actions?: Array<KeyValueDTOOfStringAndString>;

  /**
   * Auftraggeber
   */
  buyer?: DisplayAddresseeDTO;

  /**
   * Bemerkung des Auftraggebers
   */
  buyerComment?: string;

  /**
   * Gastkonto
   */
  buyerIsGuestAccount?: boolean;

  /**
   * Auftraggebernummer
   */
  buyerNumber?: string;

  /**
   * Auftraggebertyp
   */
  buyerType?: BuyerType;

  /**
   * Bestellkanal
   */
  clientChannel?: EnvironmentChannel;

  /**
   * Zeitstempel, wenn die Bestellung einen finalen Zustand erreicht hat
   */
  completedDate?: string;

  /**
   * Zusätzliche Markierungen
   */
  features?: {[key: string]: string};

  /**
   * Bestellposten
   */
  items?: Array<DisplayOrderItemDTO>;

  /**
   * Anzahl der Bestellposten (readonly)
   */
  itemsCount?: number;

  /**
   * Verknüpfte Datensätze (readonly)
   */
  linkedRecords?: Array<LinkedRecordDTO>;

  /**
   * Logistiker (wenn Versand)
   */
  logistician?: DisplayLogisticianDTO;

  /**
   * Benachrichtigungskanäle
   */
  notificationChannels?: NotificationChannel;

  /**
   * Filiale/Webshop in der die Bestellung ausgelöst wurde
   */
  orderBranch?: DisplayBranchDTO;

  /**
   * Datum des Bestelleingangs
   */
  orderDate?: string;

  /**
   * Eindeutige Bestellnummer
   */
  orderNumber?: string;

  /**
   * Art der Bestellung
   *
   * NotSet				= 0,
   * Branch				= 1,	Filialbestellung
   * Mail				= 2,	Versandbestellung
   * Download			= 4,	Download-Bestellung
   * BranchAndDownload   = Branch | Download,	Gemischt: Filialbestellung und Download-Bestellung
   * MailAndDownload     = Mail | Download		Gemischt: Versandbestellung und Download-Bestellung
   */
  orderType: OrderType;

  /**
   * Bestellwert (readonly)
   */
  orderValue?: number;

  /**
   * Währung des Bestellwerts (readonly)
   */
  orderValueCurrency?: string;

  /**
   * Regulierer/Rechnungsadresse (Rechnungsempfänger)
   */
  payer?: DisplayAddresseeDTO;

  /**
   * Gastkonto
   */
  payerIsGuestAccount?: boolean;

  /**
   * Regulierernummer
   */
  payerNumber?: string;

  /**
   * Zahlung
   */
  payment?: DisplayOrderPaymentDTO;

  /**
   * Lieferadresse (wenn Versandbestellung)
   */
  shippingAddress?: DisplayAddresseeDTO;

  /**
   * Zielfiliale (wenn Fililalbestellung)
   */
  targetBranch?: DisplayBranchDTO;

  /**
   * Lieferbedingungen
   */
  termsOfDelivery?: TermsOfDeliveryDTO;
}
