package com.yupi.project.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 激活码表实体类
 */
@TableName(value = "activation_code")
@Data
public class ActivationCode implements Serializable {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 激活码字符串，确保全局唯一
     */
    private String code;

    /**
     * 激活码对应的面值（金额）
     */
    private BigDecimal value;

    /**
     * 是否已使用：0-未使用，1-已使用
     */
    private Integer isUsed;

    /**
     * 使用者用户ID (如果已使用)
     */
    private Long userId;

    /**
     * 激活码使用时间 (如果已使用)
     */
    private LocalDateTime useTime;

    /**
     * 激活码过期时间 (NULL表示永不过期)
     */
    private LocalDateTime expireTime;

    /**
     * 生成批次号，方便管理员追踪管理
     */
    private String batchId;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标志：0-未删除，1-已删除
     */
    @TableLogic
    private Integer isDelete;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
} 