/* tslint:disable */
import { EntityDTOBaseOfOrderDTOAndIOrder } from './entity-dtobase-of-order-dtoand-iorder';
import { EntityDTOContainerOfPayerDTO } from './entity-dtocontainer-of-payer-dto';
import { BuyerDTO } from './buyer-dto';
import { EnvironmentChannel } from './environment-channel';
import { EntityDTOContainerOfOrderItemDTO } from './entity-dtocontainer-of-order-item-dto';
import { LinkedRecordDTO } from './linked-record-dto';
import { EntityDTOContainerOfLogisticianDTO } from './entity-dtocontainer-of-logistician-dto';
import { NotificationChannel } from './notification-channel';
import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-dto';
import { OrderType } from './order-type';
import { PackagingInstructions } from './packaging-instructions';
import { EntityDTOContainerOfPaymentDTO } from './entity-dtocontainer-of-payment-dto';
import { PaymentStatus } from './payment-status';
import { PaymentType } from './payment-type';
import { OrderProcessingStatus } from './order-processing-status';
import { EntityDTOContainerOfShippingAddressDTO } from './entity-dtocontainer-of-shipping-address-dto';
import { TermsOfDeliveryDTO } from './terms-of-delivery-dto';
import { ValidationStatus } from './validation-status';
export interface OrderDTO extends EntityDTOBaseOfOrderDTOAndIOrder{

  /**
   * Datum der internen Bestellannahme
   */
  acceptanceDate?: string;

  /**
   * Interne Bemerkung
   */
  agentComment?: string;

  /**
   * Regulierer/Rechnungsadresse (Rechnungsempfänger)
   */
  billing?: EntityDTOContainerOfPayerDTO;

  /**
   * Auftraggeber
   */
  buyer?: BuyerDTO;

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

  /**
   * Kampagnen Code
   */
  campaignCode?: string;

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

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

  /**
   * Zusätzliche Markierungen (z.B. Abo, ...)
   */
  features?: {[key: string]: string};

  /**
   * Rechnungstext
   */
  invoiceText?: string;

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

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

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

  /**
   * Logistiker / Auslieferer
   */
  logistician?: EntityDTOContainerOfLogisticianDTO;

  /**
   * Benachrichtigungs-Kanäle
   */
  notificationChannels?: NotificationChannel;

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

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

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

  /**
   * Art der Bestellung
   */
  orderType?: OrderType;

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

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

  /**
   * Verpackungsanweisungen
   */
  packagingInstructions?: PackagingInstructions;

  /**
   * Zahlungsdetails
   */
  payment?: EntityDTOContainerOfPaymentDTO;

  /**
   * [deprecated] Bemerkung zur Bezahlung
   */
  paymentComment?: string;

  /**
   * [deprecated] Zahlungsreferenz-Nummer
   */
  paymentReferenceNumber?: string;

  /**
   * Status der Bezahlung
   */
  paymentStatus?: PaymentStatus;

  /**
   * [deprecated] Zahlungsart
   */
  paymentType?: PaymentType;

  /**
   * Abholung auf Lieferschein
   */
  pickUpOnDeliveryNote?: boolean;

  /**
   * Status der Bestellung
   */
  processingStatus?: OrderProcessingStatus;

  /**
   * Lieferadresse (wenn Versandbestellung)
   */
  shipping?: EntityDTOContainerOfShippingAddressDTO;

  /**
   * Sondervereinbarungen
   */
  specialAgreements?: string;

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

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

  /**
   * Status der Überprüfung
   */
  validationStatus?: ValidationStatus;
}
