package com.qs.mp.user.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.qs.mp.admin.domain.Ticket;
import com.qs.mp.common.enums.CommStatusEnum;
import com.qs.mp.common.enums.TicketTypeEnum;
import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @describe 用户盲票订单实体类
 * @auther quanshu
 * @create 2022-03-07 20:45:43
 */
@TableName("mp_user_ticket_order")
@Data
@ApiModel("用户盲票订单实体类")
public class UserTicketOrder implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * 主键
   */
  @ApiModelProperty("订单id")
  @TableId(value = "order_id", type = IdType.INPUT)
  private String orderId;

  /**
   * 用户ID
   */
  @ApiModelProperty("用户id")
  @TableField("user_id")
  private Long userId;

  /**
   * 标题
   */
  @ApiModelProperty("标题")
  @TableField("title")
  private String title;

  /**
   * 票组ID
   */
  @ApiModelProperty("票组id")
  @TableField("box_id")
  private String boxId;


  @ApiModelProperty("盲票销售价格")
  @TableField("sale_price")
  private Integer salePrice;

  /**
   * 订单金额
   */
  @ApiModelProperty("订单金额")
  @TableField("order_amt")
  private Integer orderAmt;

  /**
   * 优惠金额
   */
  @ApiModelProperty("优惠金额")
  @TableField("discount_amt")
  private Integer discountAmt;

  /**
   * 实付金额
   */
  @ApiModelProperty("实付金额")
  @TableField("pay_amt")
  private Integer payAmt;

  /**
   * 盲票数量
   */
  @ApiModelProperty("盲票数量")
  @TableField("ticket_num")
  private Integer ticketNum;

  @ApiModelProperty("分佣的销售额百分比")
  @TableField("sale_comm_rate")
  private BigDecimal saleCommRate;

  /**
   * 订单备注
   */
  @ApiModelProperty("订单备注")
  @TableField("memo")
  private String memo;

  /**
   * 订单来源
   */
  @ApiModelProperty("订单来源")
  @TableField("resource")
  private TicketTypeEnum resource;

  /**
   * 使用优惠信息
   */
  @ApiModelProperty("使用优惠信息")
  @TableField("coupon_info")
  private String couponInfo;

  /**
   * 分享信息
   */
  @ApiModelProperty("分享信息")
  @TableField("share_info")
  private String shareInfo;

  /**
   * 订单状态;-1 已取消 0:待付款 1:已完成
   */
  @ApiModelProperty("订单状态;-1 已取消 0:待付款 1:已完成")
  @TableField("status")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  private UserTicketOrderStatusEnum status;

  /**
   * 结佣标识，1代表已结佣 0代表未结佣
   */
  @ApiModelProperty("结佣标识，1代表已结佣 0代表未结佣")
  @TableField("comm_status")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  private CommStatusEnum commStatus;

  /**
   * 结佣渠道ID
   */
  @ApiModelProperty("结佣渠道ID")
  @TableField("channel_id")
  private Long channelId;

  @ApiModelProperty("支付时间")
  @TableField("pay_time")
  private Date payTime;

  /**
   * 创建时间
   */
  @ApiModelProperty("创建时间")
  @TableField("created_time")
  private Date createdTime;

  /**
   * 更新时间
   */
  @ApiModelProperty("更新时间")
  @TableField("updated_time")
  @Version
  private Date updatedTime;


}
