import { Label } from '../manifests/label';
import { ShipTo } from '../addresses/ship-to';
import { AdvancedOptions } from '../advanced-options';
import { Identifier } from '../identifier';
import { ShippedPackage } from './shipped-package';
import { PudoLocation } from '../../models';

/** @description Basic structure for a shipment that has been shipped */
export class ShippedShipment extends Label {
  /** @description The address that a shipment will be delivered to */
  ship_to?: ShipTo;
  /** @description Non-tracking alternative ids associated with this shipment */
  alternative_identifiers?: Identifier[];
  /** @description The service code used for this shipment */
  service_code?: string;
  /** @description The list of packages associated with this shipment */
  packages?: ShippedPackage[];
  /** @description Advanced shipping options (Contains Alcohol, Non Machinable, etc) */
  advanced_options?: AdvancedOptions;
  /** @description Add pick-up location detail*/
  pickup_location?: PudoLocation;
}

export class PickupShipment extends ShippedShipment {}
