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 java.time.OffsetDateTime; 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 = "PlanningSection", 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 PlanningSection implements Serializable { private static final long serialVersionUID = 1L; private String sectionKey; private @Nullable String sectionName; private @Nullable Object content; private Integer revision; private @Nullable Integer schemaVersion; private @Nullable Integer projectionVersion; @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private @Nullable OffsetDateTime updatedAt; public PlanningSection() { super(); } /** * Constructor with only required parameters */ public PlanningSection(String sectionKey, Integer revision) { this.sectionKey = sectionKey; this.revision = revision; } public PlanningSection sectionKey(String sectionKey) { this.sectionKey = sectionKey; return this; } /** * 规划项标识,如 setting、worldview、character、plot-beat * @return sectionKey */ @NotNull @Schema(name = "sectionKey", description = "规划项标识,如 setting、worldview、character、plot-beat", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("sectionKey") public String getSectionKey() { return sectionKey; } @JsonProperty("sectionKey") public void setSectionKey(String sectionKey) { this.sectionKey = sectionKey; } public PlanningSection sectionName(@Nullable String sectionName) { this.sectionName = sectionName; return this; } /** * Get sectionName * @return sectionName */ @Schema(name = "sectionName", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("sectionName") public @Nullable String getSectionName() { return sectionName; } @JsonProperty("sectionName") public void setSectionName(@Nullable String sectionName) { this.sectionName = sectionName; } public PlanningSection content(@Nullable Object content) { this.content = content; return this; } /** * 规划项内容(结构化 JSON) * @return content */ @Schema(name = "content", description = "规划项内容(结构化 JSON)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("content") public @Nullable Object getContent() { return content; } @JsonProperty("content") public void setContent(@Nullable Object content) { this.content = content; } public PlanningSection revision(Integer revision) { this.revision = revision; return this; } /** * 该规划项的 revision * @return revision */ @NotNull @Schema(name = "revision", description = "该规划项的 revision", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("revision") public Integer getRevision() { return revision; } @JsonProperty("revision") public void setRevision(Integer revision) { this.revision = revision; } public PlanningSection schemaVersion(@Nullable Integer schemaVersion) { this.schemaVersion = schemaVersion; return this; } /** * 使用的 MetaSchema 版本 * @return schemaVersion */ @Schema(name = "schemaVersion", description = "使用的 MetaSchema 版本", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("schemaVersion") public @Nullable Integer getSchemaVersion() { return schemaVersion; } @JsonProperty("schemaVersion") public void setSchemaVersion(@Nullable Integer schemaVersion) { this.schemaVersion = schemaVersion; } public PlanningSection projectionVersion(@Nullable Integer projectionVersion) { this.projectionVersion = projectionVersion; return this; } /** * 使用的投影版本 * @return projectionVersion */ @Schema(name = "projectionVersion", description = "使用的投影版本", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("projectionVersion") public @Nullable Integer getProjectionVersion() { return projectionVersion; } @JsonProperty("projectionVersion") public void setProjectionVersion(@Nullable Integer projectionVersion) { this.projectionVersion = projectionVersion; } public PlanningSection updatedAt(@Nullable OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } /** * Get updatedAt * @return updatedAt */ @Valid @Schema(name = "updatedAt", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("updatedAt") public @Nullable OffsetDateTime getUpdatedAt() { return updatedAt; } @JsonProperty("updatedAt") public void setUpdatedAt(@Nullable OffsetDateTime updatedAt) { this.updatedAt = updatedAt; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } PlanningSection planningSection = (PlanningSection) o; return Objects.equals(this.sectionKey, planningSection.sectionKey) && Objects.equals(this.sectionName, planningSection.sectionName) && Objects.equals(this.content, planningSection.content) && Objects.equals(this.revision, planningSection.revision) && Objects.equals(this.schemaVersion, planningSection.schemaVersion) && Objects.equals(this.projectionVersion, planningSection.projectionVersion) && Objects.equals(this.updatedAt, planningSection.updatedAt); } @Override public int hashCode() { return Objects.hash(sectionKey, sectionName, content, revision, schemaVersion, projectionVersion, updatedAt); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class PlanningSection {\n"); sb.append(" sectionKey: ").append(toIndentedString(sectionKey)).append("\n"); sb.append(" sectionName: ").append(toIndentedString(sectionName)).append("\n"); sb.append(" content: ").append(toIndentedString(content)).append("\n"); sb.append(" revision: ").append(toIndentedString(revision)).append("\n"); sb.append(" schemaVersion: ").append(toIndentedString(schemaVersion)).append("\n"); sb.append(" projectionVersion: ").append(toIndentedString(projectionVersion)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).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 "); } }