package com.fs.jd.dto;


import lombok.Data;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

@Data
public class SoCreateOrderRequestDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 来源编号，固定填写：ISV0020008045424 */
    private String sourceNo;

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

    /** 订单类型，枚举：1:B2C订单, 2:B2B订单，不指定默认=1，长度：1字符 */
    private String orderType;

    /** 库房编号，事业部开启寻源拆分服务可不填；否则必填，长度：9字符 */
    private String warehouseNo;

    /** 商家仓编码，商家仓编码与warehouseNo二选一，长度：1-50字符 */
    private String erpWarehouseNo;

    /** 调拨入库库房，当调拨业务场景下使用，长度：9字符 */
    private String intoWarehouseNo;

    /** 订单标记位，不同标记位代表不同服务，首位为1代表货到付款，长度：1-500字符 */
    private String orderMark;

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

    /** 客户留言,长度：1-500字符 */
    private String customerRemark;

    /** 商家备注，长度：1-200字符 */
    private String erpRemark;

    /** 外部订单类型，长度：1-20字符 */
    private String erpOrderType;

    /** 外部订单类型名称，长度：1-20字符 */
    private String erpOrderTypeName;

    /** 京东pin，长度：1-50字符 */
    private String pin;

    /** 渠道信息 */
    private ChannelInfoDTO channelInfo;

    /** 客户信息 */
    private CustomerInfoDTO customerInfo;

    /** 收件人信息 */
    private ReceiverInfoDTO receiverInfo;

    /** 承运信息 */
    private CarrierInfoDTO carrierInfo;

    /** 增值服务信息 */
    private AddServicesDTO addServices;

    /** 行业属性信息 */
    private IndustryAttributesDTO industryAttributes;

    /** 库房操作规则 */
    private WarehouseOperationRuleDTO warehouseOperationRule;

    /** 发票信息 */
    private InvoiceInfoDTO invoiceInfo;

    /** 商品明细信息 */
    private List<CargoInfoDTO> cargoInfos;
    /** 扩展信息 */
    private Map<String, String> extendProps;
    /** 相关扩展信息 */
    private Map<String, String> printExtendInfo;

    /** 关联单号 */
    private RelatedOrdersDTO relatedOrders;

    /** 商家关联单号，用于商家单号在与其它业务单号有关联时使用。字段的长度不超过50 */
    private String erpRelatedOrderNo;


    /** 订单金额（单位:元，限制2位小数，字段长度10） */
    private Double orderPrice;

    /** 即时履约扩展字段 */
    private Map<String, Object> instantFulfillmentExtendProps;

}
