package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.GeneratedValue;
import java.math.BigDecimal;
import java.util.Date;

/**
 * posorder对象 pos_order
 *
 * @author ruoyi
 * @date 2023-05-23
 */
@Data
@TableName(value = "pos_order")
@EqualsAndHashCode(callSuper = false)
public class PosOrder {
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    @GeneratedValue
    /** id */
    private Long id;


    /**
     * 订单号
     */
    private String ddId;

    /**
     * 商家id
     */
    @Excel(name = "商家id")
    private Long shId;

    /**
     * 门店id
     */
    @Excel(name = "门店id")
    private Long mdId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date cretim;

    /**
     * 收货地址id
     */
    @Excel(name = "收货地址id")
    private Long shdzId;

    /**
     * 收货地址
     */
    @Excel(name = "收货地址")
    private String shAddress;

    /**
     * 下单用户id
     */
    @Excel(name = "下单用户id")
    private Long userId;

    /**
     * 订单合计金额
     */
    @Excel(name = "订单合计金额")
    private Integer amount;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;

    /**
     * 订单状态
     * | 0 | 待处理 |
     * | 1 | 已接单 |
     * | 2 | 已出餐 |
     * | 3 | 已完成 |
     * | 4 | 已取消 |
     */
    @Excel(name = "订单状态")
    private Long state;

    /**
     * 订单类型：0外送，1自取，2堂食
     */
    @Excel(name = "订单类型")
    private Long type;

    /**
     * 配送时间
     */
    @Excel(name = "配送时间")
    private String delryTime;

    /**
     * 订单商品
     */
    @Excel(name = "订单商品")
    private String food;


    /**
     * 距离
     */
    @Excel(name = "距离")
    private Double jvli;

    /**
     * 运费
     */
    @Excel(name = "运费")
    private Double freight;

    /**
     * 经度
     */
    @Excel(name = "经度")
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @Excel(name = "纬度")
    private BigDecimal latitude;

    /**
     * 出餐状态
     * @deprecated 由 state=2（已出餐）替代
     */
    @Deprecated
    @Excel(name = "出餐状态")
    private Long diningStatus;

    private Long kefuState;
    private String kefuContent;
    private Long kefuRepeat;
    private Long repeatDdId;

    /**
     * 骑手id
     */
    @Excel(name = "骑手id")
    private Long qsId;
    /**
     * 距离骑手
     */
//    @Excel(name = "距离骑手")
    private transient Double juli;
    //骑手图片
    private String qsImg;


    /**
     * 支付地址
     */
//    @Excel(name = "支付地址")
    private String payUrl;
    /**
     * 到付/现金支付
     */
//    @Excel(name = "到付")
    private String collectPayment;
    //    /** 商品價格 */
//    @Excel(name = "商品價格")
    private transient String priceAll;

    /**
     * 创建时间范围
     **/
    private transient String[] dateRange;
    private transient String cretimStart;
    private transient String cretimEnd;
    private transient String userType;
    private transient String appealCount;

    /**
     * 平台促销活动id
     */
    private Long activity;
    /**
     * 门店促销活动id
     */
    private Long mdActivity;
    /**
     * 使用优惠券id
     */
    @Excel(name = "平台优惠券")
    private Long yhId;
    /**
     * 平台优惠券名称
     */
    @Excel(name = "平台优惠券名称")
    private String yhName;
    /**
     * 平台优惠券优惠金额
     */
    @Excel(name = "平台优惠券优惠金额")
    private Integer discountAmount;
    /**
     * 门店优惠券id
     */
    @Excel(name = "门店优惠券")
    private Long mdYhId;
    /**
     * 门店优惠券名称
     */
    @Excel(name = "门店优惠券名称")
    private String mdYhName;

    /**
     * 门店优惠券优惠金额
     */
    @Excel(name = "门店优惠券优惠金额")
    private Integer mdDiscountAmount;
    /**
     * 平台促銷活動名稱
     */
    @Excel(name = "平台促銷活動名稱")
    private String salesName;

    /**
     * 门店促銷活動名稱
     */
    @Excel(name = "门店促銷活動名稱")
    private String mdSalesName;


    /**
     * 平台促销減免值
     */
    @Excel(name = "平台促销減免值")
    private Integer salesReduction;

    /**
     * 门店促销減免值
     */
    @Excel(name = "门店促销減免值")
    private Integer mdSalesReduction;

    /**
     * 积分
     */
    @Excel(name = "积分")
    private Integer points;

    /**
     * 积分抵扣值
     */
    @Excel(name = "积分抵扣值")
    private Integer pointsReduction;

    /**
     * 送达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "送达时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date sdTime;

    /**
     * 支付方式：1 到付，2 OMG，3 LINE Pay，4 现金(仅商家创建订单使用)，5 余额，6 蓝新
     */
    private String payType;

    /**
     * 订单来源：USER 用户端，MERCHANT 商家端。
     */
    private String orderSource;


    /**
     * 预计送达时间
     */
    private String yjsdTime;

    /**
     * 父订单号
     */
    private String parentDdId;

    /**
     * 订单分类
     */
    private String orderCategory;
    /**
     * 餐桌码ID，关联 table_qrcode.id
     */
    private Long tableId;

    private String tableNo;
    /**
     * 店铺 logo
     */
    private String logo;
    /**
     * 店铺名称
     */
    private String posName;

    /**
     *  商品总金额
     */
    private Integer foodAmount;

    /** 取餐号 */
    private Long pickUpNum;
    /** 自取时间 */
    private String pickUpTime;
    /** 自取预留电话 */
    private String reservePhone;
    /** 商家是否已接单
     * @deprecated 由 state=1（已接单）替代
     */
    @Deprecated
    private Boolean isAccepted;

    /** 是否显示 */
    private Boolean isDisplay;

    /**
     * 显示时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date displayTime;

    /**
     * 配送状态：0待接单,1骑手已接单,2配送中,3已送达（仅外送订单）
     */
    private Long deliveryStatus;

    /**
     * 支付状态：0未支付,1已支付,2已退款
     */
    private Long payStatus;

    /**
     * 售后状态：0无售后,1申请中,2退款中,3已退款,4退款拒绝,5客服介入,6售后完成
     */
    private Long afterSaleStatus;

}
