package com.ga.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 메뉴+권한 단위 권한 검증.
 *
 * <pre>
 *   @RequirePermission(menu = "ORG_AGENT", perm = "READ")
 *   public ApiResponse&lt;...&gt; list(...) { ... }
 * </pre>
 *
 * 동작: 현재 사용자의 역할 → role_menu_permission 에 (menu, perm) 권한이 있는지 확인.
 *      없으면 BizException(ErrorCode.FORBIDDEN).
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequirePermission {
    String menu();
    String perm() default "READ";
}
