package com.bio.bio_backend.domain.user.member.enums;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 회원 역할을 정의하는 Enum
 */
@Getter
@RequiredArgsConstructor
public enum MemberRole {
    
    MEMBER("MEMBER", "일반 회원"),
    ADMIN("ADMIN", "관리자"),
    USER("USER", "사용자"),
    SYSTEM_ADMIN("SYSTEM_ADMIN", "시스템 관리자");
    
    private final String value;
    private final String description;
    
    /**
     * 문자열 값으로부터 MemberRole을 찾는 메서드
     */
    public static MemberRole fromValue(String value) {
        for (MemberRole role : values()) {
            if (role.value.equals(value)) {
                return role;
            }
        }
        throw new IllegalArgumentException("Unknown MemberRole value: " + value);
    }
    
    /**
     * 기본 역할 반환
     */
    public static MemberRole getDefault() {
        return MEMBER;
    }
}
