package com.qqchen.deploy.backend.framework.annotation.formily;

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

@Retention(RetentionPolicy.RUNTIME)
public @interface FormilyReaction {
    /**
     * 依赖字段
     */
    String[] dependencies() default {};

    /**
     * 触发条件
     */
    String when() default "";

    /**
     * 目标状态
     */
    String state() default "";

    /**
     * 目标值
     */
    String value() default "";

    /**
     * 执行表达式
     */
    String run() default "";

    /**
     * 是否立即执行
     */
    boolean immediate() default false;

    /**
     * 是否在表单挂载时执行
     */
    boolean runOnMounted() default false;

    /**
     * 防抖时间(ms)
     */
    int debounceTime() default 100;

    /**
     * 是否显示加载状态
     */
    boolean showLoading() default true;

    /**
     * 加载状态文本
     */
    String loadingText() default "加载中...";

    /**
     * 错误处理
     */
    String onError() default "";

    /**
     * 成功处理
     */
    String onSuccess() default "";
} 