package com.utic.center.common.annotation;

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



// SQL 연산을 정의하는 사용자 지정 어노테이션
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SqlOperation {
    SqlType type();  // SQL 연산 타입
    String table();  // 테이블 이름
    String param() default "";  // 특정 파라미터명을 저장하는 속성 추가
    String param2() default "";  // 특정 파라미터명을 저장하는 속성 추가
    boolean logging() default true;  // 로깅 여부

    // SQL 연산 타입을 안전하게 관리하는 Enum
    enum SqlType {
        SELECT("SEL"),
        INSERT("INS"),
        UPDATE("UPD"),
        DELETE("DEL"),
        TRUNCATE("TRC"),
        MERGE("MRG");

        private final String shortName;

        SqlType(String code) {
            this.shortName = code;
        }

        public String getShortName() {
            return shortName;
        }
    }


}

