package com.jeesharp.business.modules.member.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.jeesharp.framework.mybatis.core.dataobject.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 会员等级功能权限配置实体类
 * <p>
 * 配置「会员等级」与「功能权限码」的映射关系，支持多等级共享同一功能。
 * 高等级自动拥有低等级功能（通过 level_sort 推导）。
 * </p>
 *
 * @author jeesharp
 * @version 2024-01-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("app_member_level_feature")
@Schema(description = "会员等级功能权限配置实体")
public class MemberLevelFeature extends BaseEntity<MemberLevelFeature> {

    /**
     * 等级编码（NORMAL/SILVER/GOLD/PLATINUM/DIAMOND）
     */
    @Schema(description = "等级编码")
    private String levelCode;

    /**
     * 功能权限码（与 Sa-Token 权限码一致，如 member:feature:coupon_exchange）
     */
    @Schema(description = "功能权限码")
    private String featureCode;

    /**
     * 功能名称（展示用）
     */
    @Schema(description = "功能名称")
    private String featureName;

    /**
     * 功能描述
     */
    @Schema(description = "功能描述")
    private String featureDesc;

    /**
     * 最低等级排序值（冗余，便于按 level_sort 筛选）
     */
    @Schema(description = "最低等级排序值")
    private Integer minLevelSort;

    /**
     * 状态：0-禁用 1-启用
     */
    @Schema(description = "状态：0-禁用 1-启用")
    private Integer status;

    /**
     * 排序号
     */
    @Schema(description = "排序号")
    private Integer sortOrder;
}
