package com.gic.haoban.manage.web.vo.order;

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

/**
 * @description: 这里是描述文字
 * @author: 巴弗
 * @createDate: 2023/2/20 15:42
 */
public class OrderDetailVO implements Serializable {

    private static final long serialVersionUID = 5215230055823016992L;

    /**
     *订单来源类型
     * @see com.gic.business.order.enums.OrderEnum.BusinessTypeEnum
     */
    private Integer businessType;

    /**
     * 订单ID
     */
    private String orderId;

    /**
     * 订单编号
     */
    private String orderNumber;

    /**
     * 下单时间
     */
    private Date createTime;
    // 付款时间
    private Date payTime;
    // 买家留言
    private String buyerRemark;

    /**
     * 订单来源 0:会员自行购买 1导购推荐订单 （原字段为 订单类型：0:微商城 1:导购推荐订单）
     */
    private Integer orderType;

    /**
     * 发货渠道类型((2自提 , 1快递))
     */
    private Integer deliveryChannel;


    /**
     * 订单流程阶段 0交易关闭 1未付款（待付款、等待买家付款） 2已付款未发货（待发货、买家已付款） 3已发货未签收（待收货、已发货） 4已确认交易结束,5已发货订单项退款中,6待付款订单项退款中,7部分发货
     */
    private String orderStep;

    /**
     * 实付金额 不含运费
     */
    private Double payAmount;
    
    
    // 使用积分
    private Integer usePoint ;

    /**
     * 最终实际运费（可手动修改）
     */
    private Double actualFreight;

    /**
     * 订单项列表
     */
    private List<OrderDetailItemVO> orderItemList;

    /**
     * 客户信息
     */
    private MemberInfoVO member;

    /**
     * 优惠折扣详情 JSON
     */
    private String discountAmountInfo;

    /**
     * 应付金额详情 JSON
     */
    private String amountPayableInfo;

    // 自动收货时间
    private Date autoTaskOverTime;

    /**
     * 收货人
     */
    private String buyerName;

    /**
     * 收货人联系方式
     */
    private String buyerPhone;

    /**
     * 自提门店ID
     */
    private String pickUpStoreId;

    /**
     * 自提门店code
     */
    private String pickUpStoreCode;

    /**
     * 自提门店名称
     */
    private String pickUpStoreName;
    
    private String pickUpCode ;
    private String pickUpName ;
 
    /**
     * 自提收货地址
     */
    private String addressInfo;
    
    /**
     * 自提时间
     */
    private Date pickUpTime;

    /**
     * 自提截止时间
     */
    private Date pickUpOverTime ;

    /**
     * 自提预约时间
     */
    private String pickUpReserveTime ;
    
    // 核销码
    private String writeOffCode ;
    // 核销导购
    private String verificationClerkName ;
    
    // 能否标识 
    private boolean canDeliverFlag = true  ;
    
    // 物流包裹列表
    private List<String> orderLogisticsIdList ;

    public String getPickUpReserveTime() {
        return pickUpReserveTime;
    }

    public void setPickUpReserveTime(String pickUpReserveTime) {
        this.pickUpReserveTime = pickUpReserveTime;
    }

    public Date getPickUpOverTime() {
        return pickUpOverTime;
    }

    public void setPickUpOverTime(Date pickUpOverTime) {
        this.pickUpOverTime = pickUpOverTime;
    }

    public Integer getUsePoint() {
        return usePoint;
    }

    public void setUsePoint(Integer usePoint) {
        this.usePoint = usePoint;
    }

    public Integer getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Integer businessType) {
        this.businessType = businessType;
    }

    public List<String> getOrderLogisticsIdList() {
        return orderLogisticsIdList;
    }

    public void setOrderLogisticsIdList(List<String> orderLogisticsIdList) {
        this.orderLogisticsIdList = orderLogisticsIdList;
    }

    public String getPickUpCode() {
        return pickUpCode;
    }

    public String getPickUpName() {
        return pickUpName;
    }

    public void setPickUpCode(String pickUpCode) {
        this.pickUpCode = pickUpCode;
    }

    public void setPickUpName(String pickUpName) {
        this.pickUpName = pickUpName;
    }

    public String getVerificationClerkName() {
        return verificationClerkName;
    }

    public void setVerificationClerkName(String verificationClerkName) {
        this.verificationClerkName = verificationClerkName;
    }

    public boolean isCanDeliverFlag() {
        return canDeliverFlag;
    }

    public void setCanDeliverFlag(boolean canDeliverFlag) {
        this.canDeliverFlag = canDeliverFlag;
    }

    public String getWriteOffCode() {
        return writeOffCode;
    }

    public void setWriteOffCode(String writeOffCode) {
        this.writeOffCode = writeOffCode;
    }

    public Date getPickUpTime() {
        return pickUpTime;
    }

    public void setPickUpTime(Date pickUpTime) {
        this.pickUpTime = pickUpTime;
    }

    public String getBuyerName() {
        return buyerName;
    }

    public String getBuyerPhone() {
        return buyerPhone;
    }

    public String getPickUpStoreId() {
        return pickUpStoreId;
    }

    public String getPickUpStoreCode() {
        return pickUpStoreCode;
    }

    public String getPickUpStoreName() {
        return pickUpStoreName;
    }

    public String getAddressInfo() {
        return addressInfo;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public void setBuyerPhone(String buyerPhone) {
        this.buyerPhone = buyerPhone;
    }

    public void setPickUpStoreId(String pickUpStoreId) {
        this.pickUpStoreId = pickUpStoreId;
    }

    public void setPickUpStoreCode(String pickUpStoreCode) {
        this.pickUpStoreCode = pickUpStoreCode;
    }

    public void setPickUpStoreName(String pickUpStoreName) {
        this.pickUpStoreName = pickUpStoreName;
    }

    public void setAddressInfo(String addressInfo) {
        this.addressInfo = addressInfo;
    }

    public Date getAutoTaskOverTime() {
        return autoTaskOverTime;
    }

    public void setAutoTaskOverTime(Date autoTaskOverTime) {
        this.autoTaskOverTime = autoTaskOverTime;
    }

    public Date getPayTime() {
        return payTime;
    }

    public String getBuyerRemark() {
        return buyerRemark;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public void setBuyerRemark(String buyerRemark) {
        this.buyerRemark = buyerRemark;
    }

    public MemberInfoVO getMember() {
        return member;
    }

    public void setMember(MemberInfoVO member) {
        this.member = member;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getOrderNumber() {
        return orderNumber;
    }

    public void setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Integer getDeliveryChannel() {
        return deliveryChannel;
    }

    public void setDeliveryChannel(Integer deliveryChannel) {
        this.deliveryChannel = deliveryChannel;
    }

    public String getOrderStep() {
        return orderStep;
    }

    public void setOrderStep(String orderStep) {
        this.orderStep = orderStep;
    }

    public Double getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(Double payAmount) {
        this.payAmount = payAmount;
    }

    public Double getActualFreight() {
        return actualFreight;
    }

    public void setActualFreight(Double actualFreight) {
        this.actualFreight = actualFreight;
    }

    public List<OrderDetailItemVO> getOrderItemList() {
        return orderItemList;
    }

    public void setOrderItemList(List<OrderDetailItemVO> orderItemList) {
        this.orderItemList = orderItemList;
    }

    public String getDiscountAmountInfo() {
        return discountAmountInfo;
    }

    public String getAmountPayableInfo() {
        return amountPayableInfo;
    }

    public void setDiscountAmountInfo(String discountAmountInfo) {
        this.discountAmountInfo = discountAmountInfo;
    }

    public void setAmountPayableInfo(String amountPayableInfo) {
        this.amountPayableInfo = amountPayableInfo;
    }
}
