package com.mes.interaction.base; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import java.util.Collections; import java.util.HashMap; import java.util.Map; /** * 交互执行结果 */ @Getter @Builder @AllArgsConstructor public class InteractionResult { public enum Status { SUCCESS, WAITING, FAILED } private final Status status; private final String message; @Builder.Default private final Map data = new HashMap<>(); public static InteractionResult success(Map payload) { return InteractionResult.builder() .status(Status.SUCCESS) .message("success") .data(payload != null ? payload : Collections.emptyMap()) .build(); } public static InteractionResult waitResult(String message, Map payload) { return InteractionResult.builder() .status(Status.WAITING) .message(message) .data(payload != null ? payload : Collections.emptyMap()) .build(); } public static InteractionResult fail(String message) { return InteractionResult.builder() .status(Status.FAILED) .message(message) .data(Collections.emptyMap()) .build(); } public boolean isSuccess() { return status == Status.SUCCESS; } public boolean isWaiting() { return status == Status.WAITING; } }