package com.zm.order.tool.server.model;

import com.alibaba.fastjson.JSON;

import java.util.Date;
import java.util.List;

/**
 * 零售索引订单
 * @Author chang.n
 * @ClassName RetailIndexOrder
 * @Date 2020/4/14 10:49 AM
 */
public class RetailIndexOrder extends BaseIndexOrder {

    /**
     * 商品名称
     * es中分词字段
     */
    private String searchItemName;

    /**
     * 发货时间
     */
    private Date sentAt;

    /**
     * 配送手机号
     */
    private String deliveryMobile;

    /**
     * 当日流水
     */
    private String todayNo;

    /**
     * 是否包含发票
     */
    private Integer isInvoice;

    /**
     * 为了支持零售业务手机号多条件分词查询，此字段作为Mobile的分词字段
     */
    private String userMobile;

    /**
     * 第三方支付单号
     */
    private String thirdPayNo;

    /**
     * 自提code码
     */
    private Long selfTakeCode;

    /**
     * 是否退款完成
     */
    private Integer refundCompleted;

    /**
     * 品牌标识
     */
    private List<String> brandSignList;

    /**
     * 拼团类型
     * 1-正常成团  2- 模拟成团  0-默认值
     */
    private Integer successType;

    /**
     * 拼团状态 0- 新订单 1- 未成团 2- 成团
     */
    private Integer groupStatus;

    /**
     * 预约配送开始时间
     */
    private Date reserveDeliveryAtStart;

    /**
     * 预约配送结束时间
     */
    private Date reserveDeliveryAtEnd;

    /**
     * 核销类型（1：买家随时自提 2: 买家选择自提时间 3: 卖家设置自提时间）
     */
    private Integer verifyType;

    /**
     * 提货人姓名
     */
    private String selfTakeName;

    /**
     * 自动评论时间
     */
    private Date autoCommentAt;

    /**
     * 使用钱包金额
     */
    private Integer walletAmount;

    /**
     * 自提时间类型
     * 0：随时 1:指定时间段（self_take_start_at + self_take_end_at）
     */
    private Integer appointedDateType;

    /**
     * 订单完成时间
     * 搜索
     */
    private Date searchCompletedAt;

    /**
     * 三方配送
     */
    private Integer thirdDeliveryExpress;

    /**
     * 提货状态 0-未提货 1-已提货 2-异常
     */
    private Integer selfTakeStatus;

    /**
     * 评价状态
     */
    private Integer commentStatus;

    /**
     * 支付金额 单位分
     */
    private Integer payAmount;

    /**
     * 优惠名称列表
     */
    private List<String> discountNameList;

    /**
     * 全局搜索
     */
    private String globalSearch;

    public String getGlobalSearch() {
        return globalSearch;
    }

    public void setGlobalSearch(String globalSearch) {
        this.globalSearch = globalSearch;
    }

    public List<String> getDiscountNameList() {
        return discountNameList;
    }

    public void setDiscountNameList(List<String> discountNameList) {
        this.discountNameList = discountNameList;
    }

    public Integer getPayAmount() {
        return payAmount;
    }

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

    public Integer getCommentStatus() {
        return commentStatus;
    }

    public void setCommentStatus(Integer commentStatus) {
        this.commentStatus = commentStatus;
    }

    public Integer getSelfTakeStatus() {
        return selfTakeStatus;
    }

    public void setSelfTakeStatus(Integer selfTakeStatus) {
        this.selfTakeStatus = selfTakeStatus;
    }

    public Integer getThirdDeliveryExpress() {
        return thirdDeliveryExpress;
    }

    public void setThirdDeliveryExpress(Integer thirdDeliveryExpress) {
        this.thirdDeliveryExpress = thirdDeliveryExpress;
    }

    public Date getSearchCompletedAt() {
        return searchCompletedAt;
    }

    public void setSearchCompletedAt(Date searchCompletedAt) {
        this.searchCompletedAt = searchCompletedAt;
    }

    public Integer getAppointedDateType() {
        return appointedDateType;
    }

    public void setAppointedDateType(Integer appointedDateType) {
        this.appointedDateType = appointedDateType;
    }

    public Integer getWalletAmount() {
        return walletAmount;
    }

    public void setWalletAmount(Integer walletAmount) {
        this.walletAmount = walletAmount;
    }

    public Date getAutoCommentAt() {
        return autoCommentAt;
    }

    public void setAutoCommentAt(Date autoCommentAt) {
        this.autoCommentAt = autoCommentAt;
    }

    public String getSelfTakeName() {
        return selfTakeName;
    }

    public void setSelfTakeName(String selfTakeName) {
        this.selfTakeName = selfTakeName;
    }

    public Integer getVerifyType() {
        return verifyType;
    }

    public void setVerifyType(Integer verifyType) {
        this.verifyType = verifyType;
    }

    public Date getReserveDeliveryAtStart() {
        return reserveDeliveryAtStart;
    }

    public void setReserveDeliveryAtStart(Date reserveDeliveryAtStart) {
        this.reserveDeliveryAtStart = reserveDeliveryAtStart;
    }

    public Date getReserveDeliveryAtEnd() {
        return reserveDeliveryAtEnd;
    }

    public void setReserveDeliveryAtEnd(Date reserveDeliveryAtEnd) {
        this.reserveDeliveryAtEnd = reserveDeliveryAtEnd;
    }

    public Integer getGroupStatus() {
        return groupStatus;
    }

    public void setGroupStatus(Integer groupStatus) {
        this.groupStatus = groupStatus;
    }

    public Integer getSuccessType() {
        return successType;
    }

    public void setSuccessType(Integer successType) {
        this.successType = successType;
    }

    public List<String> getBrandSignList() {
        return brandSignList;
    }

    public void setBrandSignList(List<String> brandSignList) {
        this.brandSignList = brandSignList;
    }

    public Integer getRefundCompleted() {
        return refundCompleted;
    }

    public void setRefundCompleted(Integer refundCompleted) {
        this.refundCompleted = refundCompleted;
    }

    public String getThirdPayNo() {
        return thirdPayNo;
    }

    public void setThirdPayNo(String thirdPayNo) {
        this.thirdPayNo = thirdPayNo;
    }

    public Long getSelfTakeCode() {
        return selfTakeCode;
    }

    public void setSelfTakeCode(Long selfTakeCode) {
        this.selfTakeCode = selfTakeCode;
    }

    public String getUserMobile() {
        return userMobile;
    }

    public void setUserMobile(String userMobile) {
        this.userMobile = userMobile;
    }

    public Integer getIsInvoice() {
        return isInvoice;
    }

    public void setIsInvoice(Integer isInvoice) {
        this.isInvoice = isInvoice;
    }

    public String getSearchItemName() {
        return searchItemName;
    }

    public void setSearchItemName(String searchItemName) {
        this.searchItemName = searchItemName;
    }

    public Date getSentAt() {
        return sentAt;
    }

    public void setSentAt(Date sentAt) {
        this.sentAt = sentAt;
    }

    public String getDeliveryMobile() {
        return deliveryMobile;
    }

    public void setDeliveryMobile(String deliveryMobile) {
        this.deliveryMobile = deliveryMobile;
    }

    public String getTodayNo() {
        return todayNo;
    }

    public void setTodayNo(String todayNo) {
        this.todayNo = todayNo;
    }
    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}
