package com.jeesharp.business.modules.marketing.memberTenant.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 会员在店铺内的角色，对应 {@code app_member_tenant.member_role}。
 *
 * @author jeesharp
 * @since 2026-06-25
 */
@Getter
@AllArgsConstructor
public enum MemberTenantRoleEnum {

    /**
     * 普通顾客
     */
    CUSTOMER("CUSTOMER", "顾客"),

    /**
     * 店员（可扫码核销）
     */
    CLERK("CLERK", "店员"),

    /**
     * 店长/管理员（可核销与查看记录）
     */
    MANAGER("MANAGER", "店长");

    private final String value;
    private final String desc;

    public static MemberTenantRoleEnum fromValue(String value) {
        if (value == null) {
            return null;
        }
        for (MemberTenantRoleEnum e : values()) {
            if (e.value.equals(value)) {
                return e;
            }
        }
        return null;
    }

    public static String getDescByValue(String value) {
        MemberTenantRoleEnum e = fromValue(value);
        return e != null ? e.getDesc() : "";
    }

    /**
     * 是否具备店员核销权限。
     */
    public static boolean canVerifyCoupon(String role) {
        return CLERK.getValue().equals(role) || MANAGER.getValue().equals(role);
    }
}
