import {
  EntityStatus,
  OrderType,
  EnvironmentChannel,
  EntityDTOContainerOfBranchDTO,
  OrderProcessingStatus,
  EntityDTOContainerOfOrderItemDTO,
  BuyerDTO,
  NotificationChannel,
  EntityDTOContainerOfShippingAddressDTO,
  EntityDTOContainerOfLogisticianDTO,
  EntityDTOContainerOfPayerDTO,
  PaymentType,
  EntityDTOContainerOfPaymentDTO,
  PaymentStatus,
  ValidationStatus,
  TermsOfDeliveryDTO,
} from '@swagger/oms';

export interface ShelfOrder {
  id?: number;
  created?: string;
  changed?: string;
  version?: number;
  status?: EntityStatus;
  pId?: string;
  orderType: OrderType;
  clientChannel?: EnvironmentChannel;
  orderNumber?: string;
  orderDate?: string;
  acceptanceDate?: string;
  orderBranch: EntityDTOContainerOfBranchDTO;
  processingStatus: OrderProcessingStatus;
  completedDate?: string;
  items?: Array<EntityDTOContainerOfOrderItemDTO>;
  buyer?: BuyerDTO;
  buyerComment?: string;
  notificationChannels: NotificationChannel;
  shippingAddress?: EntityDTOContainerOfShippingAddressDTO;
  targetBranch?: EntityDTOContainerOfBranchDTO;
  logistician?: EntityDTOContainerOfLogisticianDTO;
  payer?: EntityDTOContainerOfPayerDTO;
  paymentType: PaymentType;
  paymentComment?: string;
  payment?: EntityDTOContainerOfPaymentDTO;
  invoiceText?: string;
  paymentStatus: PaymentStatus;
  paymentReferenceNumber?: string;
  agentComment?: string;
  specialAgreements?: string;
  validationStatus: ValidationStatus;
  termsOfDelivery?: TermsOfDeliveryDTO;
  campaignCode?: string;
  orderValue?: number;
  orderValueCurrency?: string;
  itemsCount?: number;
}
