/* tslint:disable */
import { EntityDTOBaseOfOrderItemDTOAndIOrderItem } from './entity-dtobase-of-order-item-dtoand-iorder-item';
import { VATType } from './vattype';
import { CampaignDTO } from './campaign-dto';
import { PriceDTO } from './price-dto';
import { LoyaltyDTO } from './loyalty-dto';
import { EntityDTOContainerOfOrderDTO } from './entity-dtocontainer-of-order-dto';
import { OrderItemType } from './order-item-type';
import { EntityDTOContainerOfOrderItemDTO } from './entity-dtocontainer-of-order-item-dto';
import { ProductDTO } from './product-dto';
import { PromotionDTO } from './promotion-dto';
import { QuantityDTO } from './quantity-dto';
import { EntityDTOContainerOfShopItemDTO } from './entity-dtocontainer-of-shop-item-dto';
import { EntityDTOContainerOfOrderItemSubsetDTO } from './entity-dtocontainer-of-order-item-subset-dto';
export interface OrderItemDTO extends EntityDTOBaseOfOrderItemDTOAndIOrderItem{

  /**
   * Datum der internen Bestellannahme (dieses Bestellpostens)
   */
  acceptanceDate?: string;

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

  /**
   * MwSt-Typen des Arikels inkl. aller relavanter Unterartikel (readonly)
   */
  allVATTypes?: VATType;

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

  /**
   * Anmerkung für den Adressaten oder Grußtext
   */
  buyerToAddresseeMessage?: string;

  /**
   * Campaign / Kampagne
   */
  campaign?: CampaignDTO;

  /**
   * Rabattbezeichnung
   */
  discountName?: string;

  /**
   * Rabattierungsgrund
   */
  discountReason?: string;

  /**
   * Reduzierter Verkaufspreis (VK)
   */
  discountedPrice?: PriceDTO;

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

  /**
   * Verkaufspreis (VK)
   */
  grossPrice?: PriceDTO;

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

  /**
   * Loyalty
   */
  loyalty?: LoyaltyDTO;

  /**
   * Bestellung
   */
  order?: EntityDTOContainerOfOrderDTO;

  /**
   * Datum des Bestelleingangs (dieses Bestellpostens)
   */
  orderDate?: string;

  /**
   * Bestellposten-Nummer
   */
  orderItemNumber?: string;

  /**
   * Bestellposten-Typ (bit-flag)
   *
   * NotSet      = 0,	Wert nicht gesetzt
   * SingleItem  = 1,	Einzelposition (Standard)
   * VATBundle   = 2,	Artikel mit unterschiedlichen MwSt-Sätzen; Pro MwSt-Satz wird ein Pseudo-Artikel angelegt
   * ItemPrice   = 4,	Preis des Artikel-Kopfs wird verwendet
   * ComponentPrice   = 8,	Preis des Unterposten wird summiert (z.B. bei konfigurierbarem Artikel)
   * SubItem		= 16	Unterposition
   * Accessory	= 32	Zubehör
   * Set			= 64	Set-/konfigurierbarer Artikel
   */
  orderItemType?: OrderItemType;

  /**
   * Übergeordneter Bestellposten (z.B. Set-Artikel, Artikel mit unterschiedlichen MwSt-Sätzen (MwSt-Bundle), ...)
   */
  parent?: EntityDTOContainerOfOrderItemDTO;

  /**
   * Produkt
   */
  product?: ProductDTO;

  /**
   * Werbeaktion / Gutscheincode
   */
  promotion?: PromotionDTO;

  /**
   * Menge / Stückzahl
   */
  quantity?: QuantityDTO;

  /**
   * Shop-Artikel
   */
  shopItem?: EntityDTOContainerOfShopItemDTO;

  /**
   * Untergeordnete Artikel (z.B. Set-Artikel, Artikel mit unterschiedlichen MwSt-Sätzen (MwSt-Bundle), ...)
   */
  subsetItems?: Array<EntityDTOContainerOfOrderItemSubsetDTO>;

  /**
   * Stückpreis / Komponentenpreis
   */
  unitPrice?: PriceDTO;
}
