package com.qqchen.deploy.backend.workflow.dto.inputmapping;

import lombok.Data;

/**
 * 节点输入映射基类
 * <p>
 * 所有节点的 InputMapping 都应该继承此类，提供通用的配置字段
 *
 * @author qqchen
 * @since 2025-11-07
 */
@Data
public class BaseNodeInputMapping {

    /**
     * 失败时是否继续执行（非阻断模式）
     * <p>
     * - true: 节点失败时标记为 FAILURE，但流程继续执行后续节点
     * - false: 节点失败时抛出 BpmnError，终止流程（默认）
     * <p>
     * ⚠️ 注意：
     * <ul>
     *   <li>仅对<strong>可恢复的业务错误</strong>生效（如通知发送失败、可选步骤失败）</li>
     *   <li>对<strong>致命错误</strong>无效（如配置缺失、系统异常），这些错误会直接终止流程</li>
     *   <li>默认值为 false（阻断模式），确保流程安全</li>
     * </ul>
     * <p>
     * 使用示例：
     * <pre>
     * // 前端配置（通知节点可以失败后继续）
     * {
     *   "title": "部署通知",
     *   "content": "...",
     *   "channelId": 123,
     *   "continueOnFailure": true  // 通知失败不影响流程
     * }
     * </pre>
     */
    private Boolean continueOnFailure = false;

}
