package com.inspect.annotation;

import java.lang.annotation.*;

/**
 * 任务状态变更注解
 * 用于标记任务状态变更的方法，支持状态过滤
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TaskStatusChange {
    /**
     * 目标状态
     * 只有当任务状态变更到指定状态时才触发切面逻辑
     */
    String targetState() default "";

    /**
     * 状态字段名称
     * 方法参数中表示任务状态的字段名
     */
    String stateField() default "taskState";

    /**
     * 任务ID字段名称
     * 方法参数中表示任务ID的字段名
     */
    String taskIdField() default "taskPatrolledId";

    /**
     * 是否异步执行
     * 如果为true，切面逻辑将异步执行
     */
    boolean async() default true;
}
