package com.red.circle.order.infra.database.rds.entity.order;

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 java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 购买记录.
 * </p>
 *
 * @author pengliang
 * @since 2020-03-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("order_purchase_history")
public class OrderPurchaseHistory implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 主键标识
   */
  @TableId(value = "id", type = IdType.INPUT)
  private Long id;

  /**
   * 来源系统
   */
  @TableField("sys_origin")
  private String sysOrigin;

  /**
   * 环境
   */
  @TableField("evn")
  private String evn;

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

  /**
   * 原始订单
   */
  @TableField("original_order_id")
  private String originalOrderId;

  /**
   * 订单id
   */
  @TableField("order_id")
  private String orderId;

  /**
   * 产品id
   */
  @TableField("product_id")
  private String productId;

  /**
   * 购买产品id
   */
  @TableField("purchase_product_id")
  private String purchaseProductId;

  /**
   * 产品描述
   */
  @TableField("product_description")
  private String productDescription;

  /**
   * 产品类型
   */
  @TableField("product_type")
  private String productType;

  /**
   * 来源平台
   */
  @TableField("platform")
  private String platform;

  /**
   * 支付平台
   */
  @TableField("pay_platform")
  private String payPlatform;

  /**
   * USD.美元
   */
  @TableField("unit")
  private String unit;

  /**
   * 单价
   */
  @TableField("unit_price")
  private BigDecimal unitPrice;

  /**
   * 购买时间
   */
  @TableField("purchase_date_ms")
  private Timestamp purchaseDateMs;

  /**
   * 过期时间
   */
  @TableField("expires_date_ms")
  private Timestamp expiresDateMs;

  /**
   * 订阅是否处于免费试用期的指标
   */
  @TableField("is_trial_period")
  private Boolean trialPeriod;

  /**
   * 订单状态
   */
  @TableField("status")
  private String status;

  /**
   * 扩展类型.
   */
  @TableField("expand_type")
  private String expandType;

  /**
   * 创建时间
   */
  @TableField("create_time")
  private Timestamp createTime;

  /**
   * 修改时间
   */
  @TableField("update_time")
  private Timestamp updateTime;


}
