package com.spring.infra.db.orm.jpa.annotation;

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

/**
 * 엔티티 클래스가 사용할 데이터베이스를 지정하는 어노테이션입니다.
 * 
 * <p>이 어노테이션은 JPA 엔티티 클래스에 적용되며, 해당 엔티티가 어떤 데이터베이스에서 
 * 사용될지를 지정합니다. 주로 다중 데이터베이스 환경에서 엔티티를 특정 데이터베이스에 
 * 매핑하는 데 사용됩니다.</p>
 * 
 * <p>사용 예:</p>
 * <pre>
 * {@code
 * @Entity
 * @DatabaseSelector("secondary")
 * public class MyEntity {
 *     // 엔티티 필드 및 메소드
 * }
 * }
 * </pre>
 * 
 * @author mindol
 * @version 1.0
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface DatabaseSelector {
    /**
     * 엔티티가 사용할 데이터베이스의 이름을 지정합니다.
     * 
     * @return 데이터베이스 이름
     */
    String value();
}
