package com.seer.teach.mall.shipping.jt.requet;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * jt物流业务参数实体类
 */
@Getter
@Setter
@ToString
@NoArgsConstructor
public class JsLogisticsRequest {
    /**
     * 客户编码（联系出货网点提供）
     * 必选
     */
    private String customerCode;

    /**
     * 签名，Base64(Md5(客户编号+密文+privateKey))，其中密文：MD5(明文密码+jadada236t2) 后大写
     * 必选
     */
    private String digest;

    /**
     * 合作网点编码（没有则不传）
     * 可选
     */
    private String network;

    /**
     * 客户订单号（传客户自己系统的订单号）
     * 必选
     */
    private String txlogisticId;

    /**
     * 快件类型： EZ(标准快递) TYD(兔优达)
     * 必选
     */
    private String expressType;

    /**
     * 订单类型（有客户编号为月结）1、 散客；2、月结；
     * 必选
     */
    private String orderType;

    /**
     * 服务类型 ：02 门店寄件 ； 01 上门取件
     * 必选
     */
    private String serviceType;

    /**
     * 派送类型： 06 代收点自提 05 快递柜自提 04 站点自提 03 派送上门
     * 必选
     */
    private String deliveryType;

    /**
     * 支付方式：PP_PM("寄付月结"), CC_CASH("到付现结");
     * 必选
     */
    private String payType;


    /**
     * 物品类型（对应订单主表物品类型）: bm000001 文件  bm000002 数码产品  bm000003 生活用品  bm000004 食品  bm000005 服饰  bm000006 其他  bm000007 生鲜类  bm000008 易碎品  bm000009 液体
     * 必选
     */
    private String goodsType;

    /**
     * 寄件信息对象
     * 必选
     */
    private Sender sender;

    /**
     * 收件信息对象
     * 必选
     */
    private Receiver receiver;

    /**
     * 物流公司上门取货开始时间 yyyy-MM-dd HH:mm:ss
     * 可选
     */
    private String sendStartTime;

    /**
     * 客户物流公司上门取货结束时间 yyyy-MM-dd HH:mm:ss
     * 可选
     */
    private String sendEndTime;


    /**
     * 是否实名
     * 可选
     */
    private Boolean isRealName;

    /**
     * 长，cm编号
     * 可选
     */
    private int length;

    /**
     * 宽，cm
     * 可选
     */
    private int width;

    /**
     * 高，cm
     * 可选
     */
    private int height;

    /**
     * 重量，单位kg，范围0.01-30 默认0.02
     * 必选
     */
    private String weight;

    /**
     * 包裹总票数(必须为1)
     * 可选
     */
    private int totalQuantity;

    /**
     * 代收货款金额 (数值型)
     * 可选
     */
    private String itemsValue;

    /**
     * 代收货款币别（默认本国币别，如：RMB）
     * 可选
     */
    private String priceCurrency;

    /**
     * 保价金额(数值型)，单位：元
     * 可选
     */
    private String offerFee;

    /**
     * 备注
     * 可选
     */
    private String remark;

    /**
     * 商品信息列表
     * 可选
     */
    private List<Item> items;

    /**
     * 驿站编码
     * 可选
     */
    private String postSiteCode;

    /**
     * 驿站名称
     * 可选
     */
    private String postSiteName;

    /**
     * 驿站地址
     * 可选
     */
    private String postSiteAddress;

    /**
     * 是否校验取件：对接前，请与对接人确认是否支持。 0-不需要校验，1-需要校验
     * 可选
     */
    private int pickupExpressCodeCheckWay;

    /**
     * 取件码：当pickupExpressCodeCheckWay为1时必传，非1时过滤取件码。
     * 可选
     */
    private String pickUpCode;
}