package com.gameplatform.server.annotation;

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

/**
 * 重复调用注解
 * 用于标记需要重复执行的方法，无论成功失败都会执行指定次数
 * 主要用于确保脚本端能够可靠接收到请求
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RepeatCall {
    
    /**
     * 重复执行次数（默认3次）
     */
    int times() default 3;
    
    /**
     * 每次调用之间的延迟时间（毫秒，默认0）
     */
    long delayMs() default 0;
    
    /**
     * 是否记录每次调用的详细日志（默认true）
     */
    boolean logEachCall() default true;
    
    /**
     * 描述信息，用于日志记录
     */
    String description() default "";
}
