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.net.URI; 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 = "AdminAccountUserSummary", 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 AdminAccountUserSummary implements Serializable { private static final long serialVersionUID = 1L; private String userId; private String nickname; private @Nullable URI avatar; /** * 账号状态 */ public enum StatusEnum { ACTIVE("active"), RESTRICTED("restricted"), SUSPENDED("suspended"); 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 String entitlementSource; /** * 配额状态 */ public enum QuotaStatusEnum { NORMAL("normal"), LOW("low"), EXHAUSTED("exhausted"), EXPIRED("expired"); private final String value; QuotaStatusEnum(String value) { this.value = value; } @JsonValue public String getValue() { return value; } @Override public String toString() { return String.valueOf(value); } @JsonCreator public static QuotaStatusEnum fromValue(String value) { for (QuotaStatusEnum b : QuotaStatusEnum.values()) { if (b.value.equals(value)) { return b; } } throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } private QuotaStatusEnum quotaStatus; /** * New-API 网关绑定状态 */ public enum NewApiBindingStatusEnum { BOUND("bound"), UNBOUND("unbound"), SYNC_FAILED("sync_failed"), PENDING("pending"); private final String value; NewApiBindingStatusEnum(String value) { this.value = value; } @JsonValue public String getValue() { return value; } @Override public String toString() { return String.valueOf(value); } @JsonCreator public static NewApiBindingStatusEnum fromValue(String value) { for (NewApiBindingStatusEnum b : NewApiBindingStatusEnum.values()) { if (b.value.equals(value)) { return b; } } throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } private @Nullable NewApiBindingStatusEnum newApiBindingStatus; @Valid private List riskFlags = new ArrayList<>(); @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private @Nullable OffsetDateTime createdAt; @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private @Nullable OffsetDateTime lastActiveAt; public AdminAccountUserSummary() { super(); } /** * Constructor with only required parameters */ public AdminAccountUserSummary(String userId, String nickname, StatusEnum status, String entitlementSource, QuotaStatusEnum quotaStatus) { this.userId = userId; this.nickname = nickname; this.status = status; this.entitlementSource = entitlementSource; this.quotaStatus = quotaStatus; } public AdminAccountUserSummary userId(String userId) { this.userId = userId; return this; } /** * 用户 ID * @return userId */ @NotNull @Schema(name = "userId", description = "用户 ID", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("userId") public String getUserId() { return userId; } @JsonProperty("userId") public void setUserId(String userId) { this.userId = userId; } public AdminAccountUserSummary nickname(String nickname) { this.nickname = nickname; return this; } /** * 用户昵称 * @return nickname */ @NotNull @Schema(name = "nickname", description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("nickname") public String getNickname() { return nickname; } @JsonProperty("nickname") public void setNickname(String nickname) { this.nickname = nickname; } public AdminAccountUserSummary avatar(@Nullable URI avatar) { this.avatar = avatar; return this; } /** * 头像 URL * @return avatar */ @Valid @Schema(name = "avatar", description = "头像 URL", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("avatar") public @Nullable URI getAvatar() { return avatar; } @JsonProperty("avatar") public void setAvatar(@Nullable URI avatar) { this.avatar = avatar; } public AdminAccountUserSummary 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 AdminAccountUserSummary entitlementSource(String entitlementSource) { this.entitlementSource = entitlementSource; return this; } /** * 权益来源(套餐名或管理员授权) * @return entitlementSource */ @NotNull @Schema(name = "entitlementSource", description = "权益来源(套餐名或管理员授权)", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("entitlementSource") public String getEntitlementSource() { return entitlementSource; } @JsonProperty("entitlementSource") public void setEntitlementSource(String entitlementSource) { this.entitlementSource = entitlementSource; } public AdminAccountUserSummary quotaStatus(QuotaStatusEnum quotaStatus) { this.quotaStatus = quotaStatus; return this; } /** * 配额状态 * @return quotaStatus */ @NotNull @Schema(name = "quotaStatus", description = "配额状态", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("quotaStatus") public QuotaStatusEnum getQuotaStatus() { return quotaStatus; } @JsonProperty("quotaStatus") public void setQuotaStatus(QuotaStatusEnum quotaStatus) { this.quotaStatus = quotaStatus; } public AdminAccountUserSummary newApiBindingStatus(@Nullable NewApiBindingStatusEnum newApiBindingStatus) { this.newApiBindingStatus = newApiBindingStatus; return this; } /** * New-API 网关绑定状态 * @return newApiBindingStatus */ @Schema(name = "newApiBindingStatus", description = "New-API 网关绑定状态", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("newApiBindingStatus") public @Nullable NewApiBindingStatusEnum getNewApiBindingStatus() { return newApiBindingStatus; } @JsonProperty("newApiBindingStatus") public void setNewApiBindingStatus(@Nullable NewApiBindingStatusEnum newApiBindingStatus) { this.newApiBindingStatus = newApiBindingStatus; } public AdminAccountUserSummary riskFlags(List riskFlags) { this.riskFlags = riskFlags; return this; } public AdminAccountUserSummary addRiskFlagsItem(String riskFlagsItem) { if (this.riskFlags == null) { this.riskFlags = new ArrayList<>(); } this.riskFlags.add(riskFlagsItem); return this; } /** * 风险标记列表 * @return riskFlags */ @Schema(name = "riskFlags", description = "风险标记列表", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("riskFlags") public List getRiskFlags() { return riskFlags; } @JsonProperty("riskFlags") public void setRiskFlags(List riskFlags) { this.riskFlags = riskFlags; } public AdminAccountUserSummary createdAt(@Nullable OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } /** * 注册时间 * @return createdAt */ @Valid @Schema(name = "createdAt", description = "注册时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("createdAt") public @Nullable OffsetDateTime getCreatedAt() { return createdAt; } @JsonProperty("createdAt") public void setCreatedAt(@Nullable OffsetDateTime createdAt) { this.createdAt = createdAt; } public AdminAccountUserSummary lastActiveAt(@Nullable OffsetDateTime lastActiveAt) { this.lastActiveAt = lastActiveAt; return this; } /** * 最近活跃时间 * @return lastActiveAt */ @Valid @Schema(name = "lastActiveAt", description = "最近活跃时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("lastActiveAt") public @Nullable OffsetDateTime getLastActiveAt() { return lastActiveAt; } @JsonProperty("lastActiveAt") public void setLastActiveAt(@Nullable OffsetDateTime lastActiveAt) { this.lastActiveAt = lastActiveAt; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } AdminAccountUserSummary adminAccountUserSummary = (AdminAccountUserSummary) o; return Objects.equals(this.userId, adminAccountUserSummary.userId) && Objects.equals(this.nickname, adminAccountUserSummary.nickname) && Objects.equals(this.avatar, adminAccountUserSummary.avatar) && Objects.equals(this.status, adminAccountUserSummary.status) && Objects.equals(this.entitlementSource, adminAccountUserSummary.entitlementSource) && Objects.equals(this.quotaStatus, adminAccountUserSummary.quotaStatus) && Objects.equals(this.newApiBindingStatus, adminAccountUserSummary.newApiBindingStatus) && Objects.equals(this.riskFlags, adminAccountUserSummary.riskFlags) && Objects.equals(this.createdAt, adminAccountUserSummary.createdAt) && Objects.equals(this.lastActiveAt, adminAccountUserSummary.lastActiveAt); } @Override public int hashCode() { return Objects.hash(userId, nickname, avatar, status, entitlementSource, quotaStatus, newApiBindingStatus, riskFlags, createdAt, lastActiveAt); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AdminAccountUserSummary {\n"); sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); sb.append(" nickname: ").append(toIndentedString(nickname)).append("\n"); sb.append(" avatar: ").append(toIndentedString(avatar)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" entitlementSource: ").append(toIndentedString(entitlementSource)).append("\n"); sb.append(" quotaStatus: ").append(toIndentedString(quotaStatus)).append("\n"); sb.append(" newApiBindingStatus: ").append(toIndentedString(newApiBindingStatus)).append("\n"); sb.append(" riskFlags: ").append(toIndentedString(riskFlags)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" lastActiveAt: ").append(toIndentedString(lastActiveAt)).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 "); } }