package com.fs.jd.dto;

import com.fs.erp.dto.AfterSaleResponseDTO;
import lombok.Data;

import java.util.List;

@Data
public class SoQueryResponseDTO {
    /**
     * 开放平台销售出库单单号
     * 长度：1-50字符
     */
    private String deliveryNo;

    /**
     * 商家单号，事业部下需保证唯一
     * 长度：1-125字符
     */
    private String erpDeliveryNo;

    /**
     * 客户信息，此节点一定返回
     */
    private CustomerInfoDTO customerInfo;

    /**
     * 库房编号
     * 长度：9字符
     */
    private String warehouseNo;

    /**
     * 商家仓编码
     * 长度：1-50字符
     */
    private String erpWarehouseNo;

    /**
     * 承运商信息，此节点一定返回
     */
    private CarrierInfoDTO carrierInfo;

    /**
     * 渠道信息，此节点一定返回
     */
    private ChannelInfoDTO channelInfo;

    /**
     * 收货信息，此节点一定返回
     */
    private ReceiverInfoDTO receiverInfo;

    /**
     * 增值服务信息，当代收货款订单才返回
     */
    private AddServicesDTO addServices;

    /**
     * 商家留言
     * 长度：1-500字符
     */
    private String customerRemark;

    /**
     * 订单标记位
     * 长度：1-500字符
     */
    private String orderMark;

    /**
     * 退货信息，如下单店铺在京东店铺管理中维护了售后信息，则返回
     */
    private AfterSaleResponseDTO afterSalesInfo;

    /**
     * 下单人（操作人）
     * 长度：1-100字符
     */
    private String pinAccount;

    /**
     * 是否拆单（1：已拆单；0：未拆单）
     * 长度：1字符
     */
    private String isSplit;

    /**
     * 出库单当前状态
     * 状态枚举详见：https://cloud.jdl.com/#/open-business-document/access-guide/367/54597
     * 长度：1-10字符
     */
    private String status;

    /**
     * 子单订单号集合，多个以逗号隔开
     * 无长度限制
     */
    private String splitDeliveryNos;

    /**
     * 配送方式
     * 长度：1字符
     */
    private String transType;

    /**
     * 预计送达时间
     * 格式：yyyy-MM-dd HH:mm:ss
     * 长度：19字符
     */
    private String expectDeliveryDate;

    /**
     * 订单重量，单位:Kg，精确到小数点后3位
     * 长度：1-20字符
     */
    private String orderWeight;

    /**
     * 送仓类型，枚举：1：送京仓；2：送外仓
     * 长度：1字符
     */
    private String warehouseType;

    /**
     * 逻辑因子
     * 长度：1-50字符
     */
    private String logicalInventoryFactor;

    /**
     * 是否签署免赔函
     * 长度：1字符
     */
    private String isSignDisclaimer;

    /**
     * 出库商品明细列表，此节点一定返回
     * 如果订单未出库，则不会返回实际出库数量realQuantity字段
     */
    private List<DeliveryItemDTO> deliveryItemList;

    /**
     * 包裹数量，无长度限制
     */
    private Integer packCount;

    /**
     * 发货包裹明细列表，当仓进行包裹采集后才会返回
     */
    private List<DeliveryPackageDTO> deliveryPackageList;

    /**
     * 状态流水列表，此节点一定返回
     */
    private List<DeliveryStatusDTO> deliveryStatusList;

    /**
     * 批次出库商品明细列表，当商品是批次管理的商品时会返回
     */
    private List<DeliveryBatchItemDTO> deliveryBatchItemList;

    /**
     * 产品信息列表，此节点一定返回
     */
    private List<DeliveryProductInfoDTO> deliveryProductInfoList;

    /**
     * 医药拒收明细列表，当医药订单且单据状态为"部分签收、整单签收"时返回
     */
    private List<DeliveryRejectItemDTO> deliveryRejectItemList;

    /**
     * 拒收图片URL列表，当医药订单且单据状态为"部分签收、整单签收"时返回
     */
    private List<String> deliveryRejectPictureUrlList;

    /**
     * 总箱数，无长度限制
     */
    private Integer boxQuantity;

    /**
     * 箱实体列表，当按箱出库时会返回
     */
    private List<DeliveryBoxDTO> deliveryBoxList;

    /**
     * 出库序列号信息
     */
    private List<GoodsSerialNoQueryResultDTO> serialNoList;
}
