package com.kexue.skills.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.kexue.skills.annotation.Excel;
import com.kexue.skills.entity.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * (ExchangeCode)实体类
 * 兑换码表
 *
 * @author 系统生成
 * @since 2026-05-14
 */
@Data
public class ExchangeCode extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Schema(description = "主键ID")
    private Long id;

    @Excel(label = "兑换码", sort = 1)
    @Schema(description = "兑换码")
    private String code;

    @Excel(label = "套餐价格", sort = 2)
    @Schema(description = "套餐价格（对应package_config中的price）")
    private BigDecimal packagePrice;

    @Excel(label = "套餐ID", sort = 3)
    @Schema(description = "套餐ID")
    private Long packageId;

    @Excel(label = "状态", sort = 4)
    @Schema(description = "状态：0-未使用，1-已使用，2-已过期")
    private Integer status;

    @Excel(label = "使用用户ID", sort = 5)
    @Schema(description = "使用用户ID")
    private Long usedUserId;

    @Excel(label = "使用时间", sort = 6)
    @Schema(description = "使用时间")
    private Date usedTime;

    @Excel(label = "过期时间", sort = 7)
    @Schema(description = "过期时间")
    private Date expireTime;

    @Excel(label = "创建时间", sort = 8)
    @Schema(description = "创建时间")
    private Date createTime;

    @Excel(label = "更新时间", sort = 9)
    @Schema(description = "更新时间")
    private Date updateTime;

    @Schema(description = "创建人")
    private String createBy;

    @Schema(description = "更新人")
    private String updateBy;

    @Schema(description = "是否删除：0-未删除，1-已删除")
    private Integer deleteFlag;
}