package com.lingniu.ingest.gateway;

/**
 * 统一命令响应 envelope。
 *
 * @param success    是否成功
 * @param code       业务状态码（0=成功，其它=失败原因）
 * @param message    人类可读消息
 * @param data       可选负载（设备应答对象、JSON 节点等）
 */
public record CommandResult(boolean success, int code, String message, Object data) {

    public static CommandResult ok(Object data) {
        return new CommandResult(true, 0, "ok", data);
    }

    public static CommandResult notImplemented(String hint) {
        return new CommandResult(false, 501, "not_implemented: " + hint, null);
    }

    public static CommandResult failure(int code, String message) {
        return new CommandResult(false, code, message, null);
    }
}
