package cn.novalon.gym.manage.member.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 会员卡类型响应 VO
 *
 * @author 付嘉
 * @date 2026-05-27
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberCardInfoVO {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 会员卡ID
     */
    private Long memberCardId;

    /**
     * 会员卡名称
     */
    private String memberCardName;

    /**
     * 会员卡类型：TIME_CARD-时长卡, COUNT_CARD-次卡, STORED_VALUE_CARD-储值卡
     */
    private String memberCardType;

    /**
     * 卡类型描述
     */
    private String memberCardTypeDesc;

    /**
     * 会员卡价格
     */
    private BigDecimal memberCardPrice;

    /**
     * 有效天数（时长卡用）
     */
    private Integer memberCardValidityDays;

    /**
     * 总次数（次卡用）
     */
    private Integer memberCardTotalTimes;

    /**
     * 面额（储值卡用）
     */
    private BigDecimal memberCardAmount;

    /**
     * 状态：0-下架, 1-上架
     */
    private Integer memberCardStatus;

    /**
     * 状态描述
     */
    private String memberCardStatusDesc;

    /**
     * 扩展配置（JSON格式）
     */
    private String extraConfig;

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

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
}