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

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

import java.time.LocalDateTime;

/**
 * 会员卡类型实体 - 对应 member_card 表
 * 
 * @author 付嘉
 * @date 2026-05-27
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Table("member_card")
public class MemberCard extends BaseEntity {

    // 会员卡ID
    @Column("member_card_id")
    private Long memberCardId;

    // 会员卡名称
    @Column("member_card_name")
    private String memberCardName;

    // 会员卡类型：TIME_CARD-时长卡, COUNT_CARD-次卡, STORED_VALUE_CARD-储值卡
    @Column("member_card_type")
    private String memberCardType;

    // 会员卡价格
    @Column("member_card_price")
    private Double memberCardPrice;

    // 有效天数（时长卡用）
    @Column("member_card_validity_days")
    private Integer memberCardValidityDays;

    // 总次数（次卡用）
    @Column("member_card_total_times")
    private Integer memberCardTotalTimes;

    // 面额（储值卡用）
    @Column("member_card_amount")
    private Double memberCardAmount;

    // 状态：0-下架, 1-上架
    @Column("member_card_status")
    private Integer memberCardStatus;

    // 扩展配置（JSON格式）
    @Column("extra_config")
    private String extraConfig;

}
