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 com.red.circle.framework.mybatis.entity.TimestampBaseEntity;
import java.io.Serial;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * google商品最新单据
 * </p>
 *
 * @author pengliang
 * @since 2020-08-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("order_google_latest_purchase")
public class OrderGoogleLatestPurchase extends TimestampBaseEntity implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

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

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

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

  /**
   * 这种类型表示androidpublisher服务中的inappPurchase对象。
   */
  @TableField("kind")
  private String kind;

  /**
   * 产品购买的时间，自该时期（1970年1月1日）以来的毫秒数。
   */
  @TableField("purchase_time_millis")
  private Long purchaseTimeMillis;


  /**
   * 订单的购买状态。可能的值为：0。已购买1.已取消2.待定
   */
  @TableField("purchase_state")
  private Integer purchaseState;

  /**
   * Inapp产品的消费状态。可能的值为：0。尚未消耗1.已消耗
   */
  @TableField("consumption_state")
  private Integer consumptionState;

  /**
   * 开发者指定的字符串，其中包含有关订单的补充信息。
   */
  @TableField("developer_payload")
  private String developerPayload;

  /**
   * 与inapp产品的购买相关的订单ID。
   */
  @TableField("order_id")
  private String orderId;

  /**
   * inapp产品的购买类型。仅当未使用标准应用内结算流程进行购买时，才设置此字段。可能的值为：0。测试（即从许可证测试帐户购买）1.促销（即使用促销代码购买）2.奖励（即观看视频广告而不是付费）
   */
  @TableField("purchase_type")
  private Integer purchaseType;

  /**
   * inapp产品的确认状态。可能的值为：0。尚未确认1.已确认
   */
  @TableField("acknowledgement_state")
  private Integer acknowledgementState;

  /**
   * 生成购买令牌以标识此购买。
   */
  @TableField("purchase_token")
  private String purchaseToken;

}
