import { BaseRequest } from './base-request';
import {
  Identifier,
  DocumentUploadFormat,
  DocumentUploadShipment,
  DocumentUploadType,
} from '../models';

/**
 * A request to upload a document for a shipment.
 */
export class UploadDocumentRequest extends BaseRequest {
  /** @description The document id */
  document_id!: string;
  /** @description The document upload type */
  document_type!: DocumentUploadType;
  /** @description The document upload format */
  document_format!: DocumentUploadFormat;
  /** @description The file name */
  file_name!: string;
  /** @description The file URL */
  file_url!: string;
  /** @description The carrier tracking number for this shipment */
  tracking_number!: string;
  /** @description Non-tracking alternative ids associated with this shipment */
  alternative_identifiers?: Identifier[];
  /** @description Shipment information relating to an uploaded document */
  shipment?: DocumentUploadShipment;
}
