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>
 *   @DataChangeLog(menu = "RULE", table = "payout_rule")
 *   public void updatePayoutRule(PayoutRuleVO vo) { ... }
 * </pre>
 *
 * 동작: 메서드 실행 전·후의 대상 데이터를 비교 → data_change_log JSONB 컬럼에 저장.
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DataChangeLog {
    String menu();
    String table();
    /** 액션 유형. 자동 추정 안 될 때 명시 */
    String action() default "";
}
