package com.ruoyi.bst.vipOrder.domain;

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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 卡券订单对象 bst_vip_order
 *
 * @author ruoyi
 * @date 2025-05-24
 */
@Data
public class VipOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long id;

    @Excel(name = "订单编号")
    @ApiModelProperty("订单编号")
    private String no;

    @Excel(name = "下单用户ID")
    @ApiModelProperty("下单用户ID")
    private Long userId;

    @Excel(name = "状态", readConverterExp = "1=未支付,2=已支付,3=已取消")
    @ApiModelProperty("状态")
    private String status;

    @Excel(name = "VIP ID")
    @ApiModelProperty("VIP ID")
    private Long vipId;

    @Excel(name = "VIP名称")
    @ApiModelProperty("VIP名称")
    private String vipName;

    @Excel(name = "VIP运营区ID")
    @ApiModelProperty("VIP运营区ID")
    private Long vipAreaId;

    @Excel(name = "VIP类型")
    @ApiModelProperty("VIP类型")
    private String vipType;

    @Excel(name = "VIP售价")
    @ApiModelProperty("VIP售价")
    private BigDecimal vipPrice;

    @Excel(name = "VIP优惠值")
    @ApiModelProperty("VIP优惠值")
    private BigDecimal vipDiscountValue;

    @Excel(name = "VIP有效期", readConverterExp = "天=")
    @ApiModelProperty("VIP有效期")
    private Long vipValidDays;

    @Excel(name = "VIP是否限制频率")
    @ApiModelProperty("VIP是否限制频率")
    private Boolean vipEnableLimit;

    @Excel(name = "VIP可用次数")
    @ApiModelProperty("VIP可用次数")
    private Integer vipLimitTotal;

    @Excel(name = "VIP限制频率次数")
    @ApiModelProperty("VIP限制频率次数")
    private Integer vipLimitCount;

    @Excel(name = "VIP限制频率周期")
    @ApiModelProperty("VIP限制频率周期")
    private Integer vipLimitRound;

    @Excel(name = "VIP限制频率单位")
    @ApiModelProperty("VIP限制频率单位")
    private String vipLimitUnit;

    @Excel(name = "VIP最低使用门槛")
    @ApiModelProperty("VIP最低使用门槛")
    private BigDecimal vipMinAmount;

    @Excel(name = "支付ID")
    @ApiModelProperty("支付ID")
    private Long payId;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("取消时间")
    private Date cancelTime;

    @Excel(name = "取消备注")
    @ApiModelProperty("取消备注")
    private String cancelRemark;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "订单支付过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("订单支付过期时间")
    private Date payExpireTime;

}
