# frozen_string_literal: true

# This file is generated. Do not edit.

require "peddler/types/vendor_shipments_v1/party_identification"
require "peddler/types/vendor_shipments_v1/vendor_details"

module Peddler
  module Types
    module VendorShipmentsV1
      # Shipment Information details for Label request.
      ShipmentInformation = Structure.new do
        # @return [String] The buyer reference number is a unique identifier generated by the buyer for all Collect and
        # WePay shipments.
        attribute?(:buyer_reference_number, String, from: "buyerReferenceNumber")

        # @return [String] Unique Id with which the shipment can be tracked for Small Parcels.
        attribute?(:master_tracking_id, String, from: "masterTrackingId")

        # @return [PartyIdentification] Name/Address of the destination warehouse where the shipment is being shipped
        # to.
        attribute?(:ship_from_party, PartyIdentification, from: "shipFromParty")

        # @return [String] Type of shipment whether it is Small Parcel
        attribute?(:ship_mode, String, from: "shipMode")

        # @return [PartyIdentification] The name and address of the destination warehouse where the shipment is being
        # shipped.
        attribute?(:ship_to_party, PartyIdentification, from: "shipToParty")

        # @return [Integer] Number of Labels that are created as part of this shipment.
        attribute?(:total_label_count, Integer, from: "totalLabelCount")

        # @return [VendorDetails] Vendor Details requesting for Shipment Label
        attribute?(:vendor_details, VendorDetails, from: "vendorDetails")

        # @return [String] Vendor Warehouse ID from where the shipment is scheduled to be picked up by buyer / Carrier.
        attribute?(:warehouse_id, String, from: "warehouseId")
      end
    end
  end
end
