package com.fs.erp.dto;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;
import java.util.List;
import java.io.Serializable;

/**
 * 物流订单请求参数DTO
 *
 * @author xdd
 * @version 1.0
 * @since 2025-02-27
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LogisticsOrderRequestDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 订单项列表
     */
    private List<LogisticsData> items;

    /**
     * 物流数据信息
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class LogisticsData implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 内部订单号
         */
        private Integer oId;

        /**
         * 店铺编号
         */
        private Integer shopId;

        /**
         * 线上单号
         */
        private String soId;

        /**
         * 快递公司
         */
        private String lcName;

        /**
         * 快递单号；如果选择了跨境物流表示国际运单号
         */
        private String lId;

        /**
         * 是否允许传重复物流单号；默认false不重复
         */
        private Boolean sendByUsedLid;

        /**
         * 快递公司编码，对应【物流(快递)公司及打印模板】中的物流公司编号
         */
        private String lcId;

        /**
         * 是否跨境物流；选true渠道信息必填
         */
        private Boolean isUnLid;

        /**
         * 渠道编码
         */
        private String trackingCode;

        /**
         * 渠道名称
         */
        private String trackingInfo;

        /**
         * 货代id（货代设置中的ID）；默认值可以传1000
         */
        private Integer trackingType;
    }
}
