package com.red.circle.console.infra.database.rds.entity.app.vip;

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.sql.Timestamp;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * GM VIP赠送记录.
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("gm_vip_gift_record")
public class GmVipGiftRecord extends TimestampBaseEntity {

  @Serial
  private static final long serialVersionUID = 1L;

  @TableId(value = "id", type = IdType.INPUT)
  private Long id;

  @TableField("user_id")
  private Long userId;

  @TableField("sys_origin")
  private String sysOrigin;

  @TableField("from_level")
  private Integer fromLevel;

  @TableField("vip_level")
  private Integer vipLevel;

  @TableField("level_code")
  private String levelCode;

  @TableField("display_name")
  private String displayName;

  @TableField("duration_days")
  private Integer durationDays;

  @TableField("price_gold")
  private Long priceGold;

  @TableField("start_at")
  private Timestamp startAt;

  @TableField("expire_at")
  private Timestamp expireAt;

  @TableField("order_id")
  private Long orderId;

  @TableField("event_id")
  private String eventId;

  @TableField("status")
  private String status;

  @TableField("applicant_id")
  private Long applicantId;

  @TableField("applicant_name")
  private String applicantName;

  @TableField("remarks")
  private String remarks;

  @TableField("executed_time")
  private Timestamp executedTime;
}
