package com.seer.teach.common.annotation;

import java.lang.annotation.*;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RepeatSubmit {
    /**
     * 防重复时间窗口（毫秒）
     * 默认5秒内不允许重复提交
     */
    long interval() default 5000;

    /**
     * 唯一标识生成策略
     * 支持：TOKEN（令牌模式）、PARAMS（参数特征模式）
     */
    KeyType keyType() default KeyType.TOKEN;

    /**
     * 自定义错误消息
     */
    String message() default "请勿重复提交请求";

    enum KeyType {
        TOKEN,  // 基于Token+URI
        PARAMS  // 基于参数摘要+URI
    }
}
