package org.wfc.user.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import org.wfc.common.mybatis.domain.BaseData;

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

/**
 * <p>
 * 用户平台-账户套餐表
 * </p>
 *
 * @author sys
 * @since 2025-02-10
 */
@Getter
@Setter
@TableName("u_account_package")
@Schema(name = "UAccountPackage", description = "用户平台-账户套餐表")
public class UAccountPackage extends BaseData {

    private static final long serialVersionUID = 1L;

    @Schema(description = "账户ID")
    private Long accountId;

    @Schema(description = "套餐ID")
    private Long packageId;

    @Schema(description = "流量")
    private Long traffic;

    @Schema(description = "时长")
    private Long duration;

    @Schema(description = "在线设备数")
    private Integer clientNum;

    @Schema(description = "失效时间")
    private Date expiredTime;

    @Schema(description = "套餐名称")
    private String packageName;

    @Schema(description = "有效期数")
    private Integer periodNum;

    @Schema(description = "有效期类型")
    private Integer periodType;

    @Schema(description = "价格")
    private BigDecimal price;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "带宽是否限制")
    private Boolean rateLimitEnable;

    @Schema(description = "流量是否限制")
    private Boolean trafficEnable;

    @Schema(description = "时长是否限制")
    private Boolean durationEnable;

    @Schema(description = "在线设备数是否限制")
    private Boolean clientNumEnable;

    @Schema(description = "限速名称")
    private String rateLimitName;

    @Schema(description = "下行限速")
    private Long downLimit;

    @Schema(description = "下行限速启用")
    private Boolean downLimitEnable;

    @Schema(description = "上行限速")
    private Long upLimit;

    @Schema(description = "上行限速启用")
    private Boolean upLimitEnable;
}
