package cn.iocoder.yudao.module.server.utils;

import java.lang.annotation.*;

/**
 * 多级频率限制注解
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MultiRateLimit {

    /**
     * 限制名称（用于区分不同接口）
     */
    String name() default "";

    /**
     * 1分钟内的最大请求次数（默认2次）
     */
    int minuteLimit() default 2;

    /**
     * 1小时内的最大请求次数（默认30次）
     */
    int hourLimit() default 30;

    /**
     * 24小时内的最大请求次数（默认100次）
     */
    int dayLimit() default 100;

    /**
     * 限制维度：IP、USER等
     */
    String dimension() default "IP";
}