package org.jeecg.modules.system.app.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@TableName("nm_order_pro_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(description="订单商品信息")
public class AppOrderProInfo implements Serializable{
    @Serial
    private static final long serialVersionUID = 1L;

    /**id*/
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "id")
    private String id;

    /**订单id*/
    @Excel(name = "订单id", width = 15)
    @Schema(description = "订单id")
    private String orderId;

    /**
     * 订单id
     */
    @Excel(name = "订单编号", width = 15)
    @Schema(description = "订单编号")
    private String orderCode;

    /**产品id;场地/赛事/课程*/
    @Excel(name = "商品id;场地/赛事/课程", width = 15)
    @Schema(description = "产品id;场地/赛事/课程")
    private String productId;

    /**商品名称*/
    @Excel(name = "商品名称", width = 15)
    @Schema(description = "商品名称")
    private String productName;
    @Excel(name = "门店ID", width = 15)
    @Schema(description = "门店ID")
    private String siteId;
    @Excel(name = "地点", width = 15)
    @Schema(description = "地点")
    private String address;
    @Excel(name = "商品图片", width = 15)
    @Schema(description = "商品图片")
    private String productImage;
    @Schema(description = "商品类型（0-学校 1-包场 2-无固定场 3-个人赛 4-团队赛 5-课程 6-保险）")
    private Integer type;
    @Schema(description = "日期")
    private String useDateStr;
    @Schema(description = "时间段")
    private String frameTimeStr;
    @Schema(description = "比赛日期")
    private String gameTimeStr;
    @Schema(description = "过期时间")
    private String expireTime;
    @Schema(description = "券号")
    private String ticketNo;
    @Schema(description = "原价/元")
    private BigDecimal originalPrice;
    @Schema(description = "实际价格/元")
    private BigDecimal price;
    @Schema(description = "0-待付款 1-待使用 2-已使用 3-已到期 4-已取消 5-退款中 6已退款")
    private Integer orderStatus;
    @Schema(description = "售后状态:0-暂无售后 1-待退款 2-已退款 3-失败/异常")
    private Integer afterSaleStatus;
    @Schema(description = "数量")
    private Integer quantity;
    @Schema(description = "使用人ID")
    private String familyUserId;
    @Schema(description = "使用人")
    private String userName;
    @Schema(description = "年级信息")
    private String levelInfo;
    @Schema(description = "手机号")
    private String userPhone;
    @Schema(description = "是否免费试听课（0-否 1-是）")
    private Integer orFreePro;

    /**创建人;创建人*/
    @Schema(description = "创建人;创建人")
    private String createBy;
    /**创建时间;创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间;创建时间")
    private Date createTime;
    /**更新人;更新人*/
    @Schema(description = "更新人;更新人")
    private String updateBy;
    /**更新时间;更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Schema(description = "更新时间;更新时间")
    private Date updateTime;
    /**系统状态;状态(0-正常,1-冻结)*/
    @Excel(name = "系统状态;状态(0-正常,1-冻结)", width = 15)
    @Schema(description = "系统状态;状态(0-正常,1-冻结)")
    private Integer status;
    /**删除标志;删除状态(0-正常,1-已删除)*/
    @Excel(name = "删除标志;删除状态(0-正常,1-已删除)", width = 15)
    @Schema(description = "删除标志;删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag;
}
