diff --git a/boot/common-framework/src/main/java/com/klaro/acquirecore/framework/TxResult.java b/boot/common-framework/src/main/java/com/klaro/acquirecore/framework/TxResult.java new file mode 100644 index 0000000..ef14935 --- /dev/null +++ b/boot/common-framework/src/main/java/com/klaro/acquirecore/framework/TxResult.java @@ -0,0 +1,55 @@ +package com.klaro.acquirecore.framework; + +import java.io.Serializable; + +/** + * Transaction result DTO - wraps operation outcomes. + * Migrated from txcore.h TX_RESULT. + */ +public class TxResult implements Serializable { + + private static final long serialVersionUID = 1L; + + private boolean success; + private T data; + private String errorCode; + private String errorMessage; + private TxContext context; + + public TxResult() {} + + private TxResult(boolean success, T data, String errorCode, String errorMessage, TxContext context) { + this.success = success; + this.data = data; + this.errorCode = errorCode; + this.errorMessage = errorMessage; + this.context = context; + } + + public static TxResult success(T data, TxContext context) { + return new TxResult<>(true, data, null, null, context); + } + + public static TxResult success(T data) { + return success(data, null); + } + + public static TxResult failure(String errorCode, String errorMessage) { + return new TxResult<>(false, null, errorCode, errorMessage, null); + } + + public static TxResult failure(String errorCode, String errorMessage, TxContext context) { + return new TxResult<>(false, null, errorCode, errorMessage, context); + } + + public boolean isSuccess() { return success; } + public void setSuccess(boolean success) { this.success = success; } + public T getData() { return data; } + public void setData(T data) { this.data = data; } + public String getErrorCode() { return errorCode; } + public void setErrorCode(String errorCode) { this.errorCode = errorCode; } + public String getErrorMessage() { return errorMessage; } + public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } + public TxContext getContext() { return context; } + public void setContext(TxContext context) { this.context = context; } +}