import { ID } from './id'; import { Mode } from './mode'; export interface Tracker { /** Unique identifier" */ id?: ID; /** "test" or "production" */ mode: Mode; /** The name of the person who signed for the package (if available) */ signedBy?: string; /** The estimated delivery date provided by the carrier (if available) */ estimatedDeliveryDate?: Date; // Description of the scan event message: string; /** Status of the package at the time of the scan event, possible values are "unknown", "pre_transit", "in_transit", "out_for_delivery", "delivered", "available_for_pickup", "return_to_sender", "failure", "cancelled" or "error" */ status?: TrackingStatus; // The original source of the information for this scan event, usually the carrier source?: string; // The city where the scan event occurred (if available) city?: string; // The state where the scan event occurred (if available) stateOrProvince?: string; // The country where the scan event occurred (if available) country?: string; // The postal code where the scan event occurred (if available) zip?: string; // Reason reason?: string; // Receiver name receiverName?: string; activityDateTime?: string; } export enum TrackingStatus { preTransit = 'pre_transit', inTransit = 'in_transit', outForDelivery = 'out_for_delivery', delivered = 'delivered', availableForPickup = 'available_for_pickup', returnToSender = 'return_to_sender', failure = 'failure', cancelled = 'cancelled', unknown = 'unknown', bookingPending = 'booking_pending', booked = 'booked' } export interface TrackingCode { trackingCode: string; } export interface UpdateCheckpoints { shipmentId: string; checkPoints: Tracker[]; status: string; }