package com.red.circle.other.infra.database.rds.entity.game;

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

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.time.LocalDate;

/**
 * 游戏VIP每周等级记录
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("game_vip_level_weekly")
public class GameVipLevelWeekly implements Serializable {

    private static final long serialVersionUID = 1L;

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

    @TableField("user_id")
    private Long userId;

    @TableField("activity_id")
    private Long activityId;

    @TableField("week_number")
    private Integer weekNumber;

    @TableField("week_start_date")
    private LocalDate weekStartDate;

    @TableField("week_end_date")
    private LocalDate weekEndDate;

    @TableField("final_level")
    private Integer finalLevel;

    @TableField("recharge_amount")
    private BigDecimal rechargeAmount;

    @TableField("normalized_week")
    private Integer normalizedWeek;

    @TableField("inherited_amount")
    private BigDecimal inheritedAmount;

    @TableField("created_at")
    private Timestamp createdAt;

    @TableField("updated_at")
    private Timestamp updatedAt;
}
