package com.yolo.keyboard.dal.dataobject.userquotatotal;

import com.yolo.keyboard.framework.tenant.core.aop.TenantIgnore;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yolo.keyboard.framework.mybatis.core.dataobject.BaseDO;

/**
 * 用户免费功能永久总次数额度表（所有功能共用） DO
 *
 * @author 芋道源码
 */
@TableName("keyboard_user_quota_total")
@KeySequence("keyboard_user_quota_total_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
public class KeyboardUserQuotaTotalDO{

    /**
     * 用户唯一ID，对应系统用户
     */
    @TableId
    private Long userId;
    /**
     * 免费体验的永久总次数上限（可通过运营活动增加）
     */
    private Integer totalQuota;
    /**
     * 已消耗的免费次数
     */
    private Integer usedQuota;
    /**
     * 乐观锁版本号（并发控制预留字段）
     */
    private Integer version;
    /**
     * 首次创建额度记录的时间（通常为注册时间）
     */
    private LocalDateTime createdAt;
    /**
     * 最近一次额度发生变化的时间（消耗或赠送）
     */
    private LocalDateTime updatedAt;


}