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 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 = "WorkAssetInfo", description = "作品资产可信信息") @Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2026-05-24T15:05:54.603829+08:00[Asia/Shanghai]", comments = "Generator version: 7.22.0") public class WorkAssetInfo implements Serializable { private static final long serialVersionUID = 1L; private @Nullable String readableScope; private @Nullable Boolean canFavorite; private @Nullable Boolean authorizationRecordAvailable; private @Nullable String publicBoundary; private @Nullable String sourceTrackingSummary; private @Nullable String futureUseGateStatus; public WorkAssetInfo readableScope(@Nullable String readableScope) { this.readableScope = readableScope; return this; } /** * 可阅读范围 * @return readableScope */ @Schema(name = "readableScope", description = "可阅读范围", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("readableScope") public @Nullable String getReadableScope() { return readableScope; } @JsonProperty("readableScope") public void setReadableScope(@Nullable String readableScope) { this.readableScope = readableScope; } public WorkAssetInfo canFavorite(@Nullable Boolean canFavorite) { this.canFavorite = canFavorite; return this; } /** * Get canFavorite * @return canFavorite */ @Schema(name = "canFavorite", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("canFavorite") public @Nullable Boolean getCanFavorite() { return canFavorite; } @JsonProperty("canFavorite") public void setCanFavorite(@Nullable Boolean canFavorite) { this.canFavorite = canFavorite; } public WorkAssetInfo authorizationRecordAvailable(@Nullable Boolean authorizationRecordAvailable) { this.authorizationRecordAvailable = authorizationRecordAvailable; return this; } /** * Get authorizationRecordAvailable * @return authorizationRecordAvailable */ @Schema(name = "authorizationRecordAvailable", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("authorizationRecordAvailable") public @Nullable Boolean getAuthorizationRecordAvailable() { return authorizationRecordAvailable; } @JsonProperty("authorizationRecordAvailable") public void setAuthorizationRecordAvailable(@Nullable Boolean authorizationRecordAvailable) { this.authorizationRecordAvailable = authorizationRecordAvailable; } public WorkAssetInfo publicBoundary(@Nullable String publicBoundary) { this.publicBoundary = publicBoundary; return this; } /** * 正文/设定/片段的公开边界说明 * @return publicBoundary */ @Schema(name = "publicBoundary", description = "正文/设定/片段的公开边界说明", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("publicBoundary") public @Nullable String getPublicBoundary() { return publicBoundary; } @JsonProperty("publicBoundary") public void setPublicBoundary(@Nullable String publicBoundary) { this.publicBoundary = publicBoundary; } public WorkAssetInfo sourceTrackingSummary(@Nullable String sourceTrackingSummary) { this.sourceTrackingSummary = sourceTrackingSummary; return this; } /** * 来源追踪摘要 * @return sourceTrackingSummary */ @Schema(name = "sourceTrackingSummary", description = "来源追踪摘要", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("sourceTrackingSummary") public @Nullable String getSourceTrackingSummary() { return sourceTrackingSummary; } @JsonProperty("sourceTrackingSummary") public void setSourceTrackingSummary(@Nullable String sourceTrackingSummary) { this.sourceTrackingSummary = sourceTrackingSummary; } public WorkAssetInfo futureUseGateStatus(@Nullable String futureUseGateStatus) { this.futureUseGateStatus = futureUseGateStatus; return this; } /** * 后续使用能力(模板化/参考写入/AI上下文)是否未开放及原因 * @return futureUseGateStatus */ @Schema(name = "futureUseGateStatus", description = "后续使用能力(模板化/参考写入/AI上下文)是否未开放及原因", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("futureUseGateStatus") public @Nullable String getFutureUseGateStatus() { return futureUseGateStatus; } @JsonProperty("futureUseGateStatus") public void setFutureUseGateStatus(@Nullable String futureUseGateStatus) { this.futureUseGateStatus = futureUseGateStatus; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } WorkAssetInfo workAssetInfo = (WorkAssetInfo) o; return Objects.equals(this.readableScope, workAssetInfo.readableScope) && Objects.equals(this.canFavorite, workAssetInfo.canFavorite) && Objects.equals(this.authorizationRecordAvailable, workAssetInfo.authorizationRecordAvailable) && Objects.equals(this.publicBoundary, workAssetInfo.publicBoundary) && Objects.equals(this.sourceTrackingSummary, workAssetInfo.sourceTrackingSummary) && Objects.equals(this.futureUseGateStatus, workAssetInfo.futureUseGateStatus); } @Override public int hashCode() { return Objects.hash(readableScope, canFavorite, authorizationRecordAvailable, publicBoundary, sourceTrackingSummary, futureUseGateStatus); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WorkAssetInfo {\n"); sb.append(" readableScope: ").append(toIndentedString(readableScope)).append("\n"); sb.append(" canFavorite: ").append(toIndentedString(canFavorite)).append("\n"); sb.append(" authorizationRecordAvailable: ").append(toIndentedString(authorizationRecordAvailable)).append("\n"); sb.append(" publicBoundary: ").append(toIndentedString(publicBoundary)).append("\n"); sb.append(" sourceTrackingSummary: ").append(toIndentedString(sourceTrackingSummary)).append("\n"); sb.append(" futureUseGateStatus: ").append(toIndentedString(futureUseGateStatus)).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 "); } }