package com.muse.dto; import java.net.URI; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.lang.Nullable; import java.io.Serializable; import java.time.OffsetDateTime; import jakarta.validation.Valid; import jakarta.validation.constraints.*; import io.swagger.v3.oas.annotations.media.Schema; import java.util.*; import jakarta.annotation.Generated; /** * 外部调用详情 */ @Schema(name = "IntegrationCallDetail", description = "外部调用详情") @Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2026-05-24T16:47:40.290595+08:00[Asia/Shanghai]", comments = "Generator version: 7.22.0") public class IntegrationCallDetail implements Serializable { private static final long serialVersionUID = 1L; private String correlationId; /** * 调用状态 */ public enum StatusEnum { SUCCESS("success"), FAILED("failed"), RETRYING("retrying"), DEDUPLICATED("deduplicated"), ATTRIBUTED("attributed"), PENDING_ATTRIBUTION("pending_attribution"); private final String value; StatusEnum(String value) { this.value = value; } @JsonValue public String getValue() { return value; } @Override public String toString() { return String.valueOf(value); } @JsonCreator public static StatusEnum fromValue(String value) { for (StatusEnum b : StatusEnum.values()) { if (b.value.equals(value)) { return b; } } throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } private StatusEnum status; private @Nullable String requestType; @Valid private List retryGroup = new ArrayList<>(); /** * 归属状态 */ public enum AttributionStatusEnum { ATTRIBUTED("attributed"), PENDING("pending"), FAILED("failed"); private final String value; AttributionStatusEnum(String value) { this.value = value; } @JsonValue public String getValue() { return value; } @Override public String toString() { return String.valueOf(value); } @JsonCreator public static AttributionStatusEnum fromValue(String value) { for (AttributionStatusEnum b : AttributionStatusEnum.values()) { if (b.value.equals(value)) { return b; } } throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } private @Nullable AttributionStatusEnum attributionStatus; private @Nullable String attributedUserId; @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime createdAt; @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private @Nullable OffsetDateTime lastRetryAt; private @Nullable String errorMessage; public IntegrationCallDetail() { super(); } /** * Constructor with only required parameters */ public IntegrationCallDetail(String correlationId, StatusEnum status, OffsetDateTime createdAt) { this.correlationId = correlationId; this.status = status; this.createdAt = createdAt; } public IntegrationCallDetail correlationId(String correlationId) { this.correlationId = correlationId; return this; } /** * 外部调用关联 ID * @return correlationId */ @NotNull @Schema(name = "correlationId", description = "外部调用关联 ID", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("correlationId") public String getCorrelationId() { return correlationId; } @JsonProperty("correlationId") public void setCorrelationId(String correlationId) { this.correlationId = correlationId; } public IntegrationCallDetail status(StatusEnum status) { this.status = status; return this; } /** * 调用状态 * @return status */ @NotNull @Schema(name = "status", description = "调用状态", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("status") public StatusEnum getStatus() { return status; } @JsonProperty("status") public void setStatus(StatusEnum status) { this.status = status; } public IntegrationCallDetail requestType(@Nullable String requestType) { this.requestType = requestType; return this; } /** * 请求类型(额度配置/余额查询等) * @return requestType */ @Schema(name = "requestType", description = "请求类型(额度配置/余额查询等)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("requestType") public @Nullable String getRequestType() { return requestType; } @JsonProperty("requestType") public void setRequestType(@Nullable String requestType) { this.requestType = requestType; } public IntegrationCallDetail retryGroup(List retryGroup) { this.retryGroup = retryGroup; return this; } public IntegrationCallDetail addRetryGroupItem(String retryGroupItem) { if (this.retryGroup == null) { this.retryGroup = new ArrayList<>(); } this.retryGroup.add(retryGroupItem); return this; } /** * 重试组内的调用 ID 列表 * @return retryGroup */ @Schema(name = "retryGroup", description = "重试组内的调用 ID 列表", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("retryGroup") public List getRetryGroup() { return retryGroup; } @JsonProperty("retryGroup") public void setRetryGroup(List retryGroup) { this.retryGroup = retryGroup; } public IntegrationCallDetail attributionStatus(@Nullable AttributionStatusEnum attributionStatus) { this.attributionStatus = attributionStatus; return this; } /** * 归属状态 * @return attributionStatus */ @Schema(name = "attributionStatus", description = "归属状态", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("attributionStatus") public @Nullable AttributionStatusEnum getAttributionStatus() { return attributionStatus; } @JsonProperty("attributionStatus") public void setAttributionStatus(@Nullable AttributionStatusEnum attributionStatus) { this.attributionStatus = attributionStatus; } public IntegrationCallDetail attributedUserId(@Nullable String attributedUserId) { this.attributedUserId = attributedUserId; return this; } /** * 归属用户 ID * @return attributedUserId */ @Schema(name = "attributedUserId", description = "归属用户 ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("attributedUserId") public @Nullable String getAttributedUserId() { return attributedUserId; } @JsonProperty("attributedUserId") public void setAttributedUserId(@Nullable String attributedUserId) { this.attributedUserId = attributedUserId; } public IntegrationCallDetail createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } /** * 首次调用时间 * @return createdAt */ @NotNull @Valid @Schema(name = "createdAt", description = "首次调用时间", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("createdAt") public OffsetDateTime getCreatedAt() { return createdAt; } @JsonProperty("createdAt") public void setCreatedAt(OffsetDateTime createdAt) { this.createdAt = createdAt; } public IntegrationCallDetail lastRetryAt(@Nullable OffsetDateTime lastRetryAt) { this.lastRetryAt = lastRetryAt; return this; } /** * 最近重试时间 * @return lastRetryAt */ @Valid @Schema(name = "lastRetryAt", description = "最近重试时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("lastRetryAt") public @Nullable OffsetDateTime getLastRetryAt() { return lastRetryAt; } @JsonProperty("lastRetryAt") public void setLastRetryAt(@Nullable OffsetDateTime lastRetryAt) { this.lastRetryAt = lastRetryAt; } public IntegrationCallDetail errorMessage(@Nullable String errorMessage) { this.errorMessage = errorMessage; return this; } /** * 错误信息(仅失败时返回) * @return errorMessage */ @Schema(name = "errorMessage", description = "错误信息(仅失败时返回)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("errorMessage") public @Nullable String getErrorMessage() { return errorMessage; } @JsonProperty("errorMessage") public void setErrorMessage(@Nullable String errorMessage) { this.errorMessage = errorMessage; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } IntegrationCallDetail integrationCallDetail = (IntegrationCallDetail) o; return Objects.equals(this.correlationId, integrationCallDetail.correlationId) && Objects.equals(this.status, integrationCallDetail.status) && Objects.equals(this.requestType, integrationCallDetail.requestType) && Objects.equals(this.retryGroup, integrationCallDetail.retryGroup) && Objects.equals(this.attributionStatus, integrationCallDetail.attributionStatus) && Objects.equals(this.attributedUserId, integrationCallDetail.attributedUserId) && Objects.equals(this.createdAt, integrationCallDetail.createdAt) && Objects.equals(this.lastRetryAt, integrationCallDetail.lastRetryAt) && Objects.equals(this.errorMessage, integrationCallDetail.errorMessage); } @Override public int hashCode() { return Objects.hash(correlationId, status, requestType, retryGroup, attributionStatus, attributedUserId, createdAt, lastRetryAt, errorMessage); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IntegrationCallDetail {\n"); sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" requestType: ").append(toIndentedString(requestType)).append("\n"); sb.append(" retryGroup: ").append(toIndentedString(retryGroup)).append("\n"); sb.append(" attributionStatus: ").append(toIndentedString(attributionStatus)).append("\n"); sb.append(" attributedUserId: ").append(toIndentedString(attributedUserId)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" lastRetryAt: ").append(toIndentedString(lastRetryAt)).append("\n"); sb.append(" errorMessage: ").append(toIndentedString(errorMessage)).append("\n"); sb.append("}"); return sb.toString(); } /** * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ private String toIndentedString(@Nullable Object o) { return o == null ? "null" : o.toString().replace("\n", "\n "); } }