From 87ea0d33336410947b656be9532030be9839debb Mon Sep 17 00:00:00 2001 From: Brutus5000 Date: Fri, 26 Jun 2026 18:42:06 +0200 Subject: [PATCH] Add Player.currentAvatar DTO field and deprecate AvatarAssignment.selected Mirror the faf-java-api change that tracks the selected avatar via the login.avatar_id column exposed as the player.currentAvatar relationship. The AvatarAssignment.selected flag is now deprecated for removal. Co-Authored-By: Claude Opus 4.8 --- .../com/faforever/commons/api/dto/AvatarAssignment.java | 6 ++++++ api/src/main/java/com/faforever/commons/api/dto/Player.java | 3 +++ 2 files changed, 9 insertions(+) diff --git a/api/src/main/java/com/faforever/commons/api/dto/AvatarAssignment.java b/api/src/main/java/com/faforever/commons/api/dto/AvatarAssignment.java index 68ed29e9..a6b7f934 100644 --- a/api/src/main/java/com/faforever/commons/api/dto/AvatarAssignment.java +++ b/api/src/main/java/com/faforever/commons/api/dto/AvatarAssignment.java @@ -14,6 +14,12 @@ @EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = true) @Type("avatarAssignment") public class AvatarAssignment extends AbstractEntity { + /** + * @deprecated The selected avatar is now tracked via {@link Player#getCurrentAvatar()} + * (the {@code login.avatar_id} column). Read/update that relationship instead; this flag is + * kept only for backwards compatibility with older clients and will be removed. + */ + @Deprecated(forRemoval = true) @ToString.Include private Boolean selected; private OffsetDateTime expiresAt; diff --git a/api/src/main/java/com/faforever/commons/api/dto/Player.java b/api/src/main/java/com/faforever/commons/api/dto/Player.java index ae47c6e5..7847652b 100644 --- a/api/src/main/java/com/faforever/commons/api/dto/Player.java +++ b/api/src/main/java/com/faforever/commons/api/dto/Player.java @@ -51,6 +51,9 @@ public class Player extends AbstractEntity { @JsonIgnore private List avatarAssignments; + @Relationship("currentAvatar") + private Avatar currentAvatar; + @JsonBackReference @Relationship("reporterOnModerationReports") private Set reporterOnModerationReports;