package cn.aqroid.common.annotation;

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

/**
 * 租户忽略注解 - 标注此注解的方法或类不进行租户过滤
 *
 * 使用场景：
 * 1. 平台管理员查看所有租户数据
 * 2. 跨租户统计分析
 * 3. 系统初始化数据
 * 4. 登录认证等不需要租户隔离的操作
 *
 * 使用示例：
 * <pre>
 * // 方法级别
 * &#64;TenantIgnore
 * public List<Tenant> selectAllTenants() { ... }
 * 
 * // 类级别
 * &#64;TenantIgnore
 * public class SystemConfigMapper { ... }
 * 
 * // 显式指定不忽略（用于覆盖类级别注解）
 * &#64;TenantIgnore(value = false)
 * public List<Order> selectOrders() { ... }
 * </pre>
 *
 * @author aqroid
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TenantIgnore {

    /**
     * 是否忽略租户过滤
     * 
     * @return true表示忽略租户过滤，false表示正常过滤
     */
    boolean value() default true;
}
