package org.jeecg.modules.hotelorder.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.hotelorderdetail.entity.HotelOrderDetail;
import org.jeecg.modules.hotelorderflow.entity.HotelOrderFlow;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: hotel_order
 * @Author: jeecg-boot
 * @Date:   2024-09-11
 * @Version: V1.0
 */
@Data
@TableName("hotel_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="hotel_order对象", description="hotel_order")
public class HotelOrder implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private java.lang.String id;
	/**标题*/
	@Excel(name = "标题", width = 15)
    @ApiModelProperty(value = "标题")
    private java.lang.String title;
	/**商品图片*/
	@Excel(name = "商品图片", width = 15)
    @ApiModelProperty(value = "商品图片")
    private java.lang.String pic;
	/**客户姓名*/
	@Excel(name = "客户姓名", width = 15)
    @ApiModelProperty(value = "客户姓名")
    private java.lang.String userName;
	/**客户手机号*/
	@Excel(name = "客户手机号", width = 15)
    @ApiModelProperty(value = "客户手机号")
    private java.lang.String userPhone;
	/**用户地址*/
	@Excel(name = "用户地址", width = 15)
    @ApiModelProperty(value = "用户地址")
    private java.lang.String userAddress;
	/**用户Id*/
	@Excel(name = "用户Id", width = 15)
    @ApiModelProperty(value = "用户Id")
    private java.lang.String userId;
	/**店铺id*/
	@Excel(name = "店铺id", width = 15)
    @ApiModelProperty(value = "店铺id")
    private java.lang.String shopId;
	/**租赁时间*/
	@Excel(name = "租赁时间", width = 15)
    @ApiModelProperty(value = "租赁时间")
    private java.lang.String leaseTime;
	/**缴纳费用*/
	@Excel(name = "缴纳费用", width = 15)
    @ApiModelProperty(value = "缴纳费用")
    private java.math.BigDecimal payFee;
	/**押金*/
	@Excel(name = "押金", width = 15)
    @ApiModelProperty(value = "押金")
    private java.math.BigDecimal deposit;
	/**水洗费用*/
	@Excel(name = "水洗费用", width = 15)
    @ApiModelProperty(value = "水洗费用")
    private java.math.BigDecimal washPay;
	/**租赁费用*/
	@Excel(name = "租赁费用", width = 15)
    @ApiModelProperty(value = "租赁费用")
    private java.math.BigDecimal rentPay;
	/**支付金额*/
	@Excel(name = "支付金额", width = 15)
    @ApiModelProperty(value = "支付金额")
    private java.math.BigDecimal orderPay;
	/**
	 * 状态
	 * 租赁订单：0待支付 1待发货 2待收货
	 * 水洗订单：3待支付 4待接单 5待检查
	 * 6待清洗 20 酒店待发货 21水洗店待收货
	 * 22 水洗店待发货 23 酒店待收货
	 * 换货订单：7待回收 8待发货 9平台待收货
	 * 10平台检查损失待用户支付 17待接单
	 * 退货订单：11待回收 12待发货 13平台待收货
	 * 14平台检查损失并且退还定金 18待接单
	 * 15 已完成
	 * */
	@Excel(name = "状态 \n" +
			"租赁订单：0待支付 1待发货 2待收货  \n" +
			"水洗订单：3待支付 4水洗店接单 5水洗店检查\n" +
			"6开始清洗 16待接单 20 酒店待发货 21水洗店待收货 \n" +
			"22 水洗店待发货 23 酒店待收货\n" +
			"换货订单：7待回收 8待发货 9平台待收货\n" +
			"10平台检查损失待用户支付 17待接单\n" +
			"退货订单：11待回收 12待发货 13平台待收货\n" +
			"14平台检查损失并且退还定金 18待接单\n" +
			"15 已完成", width = 15)
    @ApiModelProperty(value = "状态 \n" +
			"租赁订单：0待支付 1待发货 2待收货  \n" +
			"水洗订单：3待支付 4水洗店接单 5水洗店检查\n" +
			"6开始清洗  16 待平台审核\n" +
			"换货订单：7待回收 8待发货 9平台待收货\n" +
			"10平台检查损失待用户支付\n" +
			"退货订单：11待回收 12待发货 13平台待收货\n" +
			"14平台检查损失并且退还定金\n" +
			"15 已完成")
	@Dict(dicCode = "order_status")
    private java.lang.Integer status;
	/**类型 0租赁 1水洗  2破损 3退货*/
	@Dict(dicCode = "hotel_order_type")
	@Excel(name = "类型 0租赁 1水洗  2破损 3退货", width = 15)
    @ApiModelProperty(value = "类型 0租赁 1水洗  2破损 3退货")
    private java.lang.Integer type;
	/**是否删除 0否 1是*/
	@TableLogic
	@Dict(dicCode = "is_delete")
	@Excel(name = "是否删除 0否 1是", width = 15)
    @ApiModelProperty(value = "是否删除 0否 1是")
    private java.lang.Integer delFlag;
	/**createTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "createTime")
    private java.util.Date createTime;
	/**updateTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "updateTime")
    private java.util.Date updateTime;
	/**申请原因*/
	private String reason;
	/**退货/换货数量*/
	private Integer refundNum;
	/**申请金额*/
	private BigDecimal reasonPrice;
	/**申请说明*/
	private String reasonInfo;
	/**申请说明图片*/
	private String reasonPic;
	/**联系电话*/
	private String reasonPhone;
	/**多规格Id*/
	private String skuId;
	/**多规格*/
	private String sku;
	/**商品Id*/
	private String goodsId;
	private String goodsName;
	/**购买数量*/
	private Integer num;
	@TableField(exist = false)
	private String statusDictText;
	@TableField(exist = false)
	private String typeDictText;
	private String orderLogId;
	/**是否水洗店租赁订单 0否 1是*/
	@Dict(dicCode = "is_delete")
	private Integer washShopFlag;
	/**分类id*/
	private String categoryId;
	/**租赁id*/
	private String LeaseId;
	@TableField(exist = false)
	private List<HotelOrderFlow> hotelOrderFlows;
	@TableField(exist = false)
	private Integer audit;
	/**优惠金额*/
	private BigDecimal discountPrice;
	/**原支付金额*/
	private BigDecimal originalPrice;
	/**物流名称*/
	private String logisticsName;
	/**物流单号*/
	private String logisticsCode;
	/**优惠券id*/
	private String couponId;
	@TableField(exist = false)
	private List<HotelOrderDetail> orderDetails;
	private String payInfo;
	/**换货类型 0用户换货 1水洗店换货*/
	private Integer replaceType;
	/**是否为租赁水布 0否 1是*/
	@Dict(dicCode = "is_delete")
	private Integer leaseFlag;
	/**水洗店佣金*/
	@TableField(exist = false)
	private BigDecimal shopCoin;
	/**物流名称*/
	private String logisticsNameTwo;
	/**物流单号*/
	private String logisticsCodeTwo;

}
