// Path: api/src/main/java/hirez/api/object/MergedAccount.java
// @Data
// public class MergedAccount {
//     @JsonProperty("merge_datetime")
//     @DateTimeFormat("MMM dd yyyy  h:mma")
//     private final Date mergeDatetime;
//     @JsonProperty("playerId")
//     private final long playerId;
//     @JsonProperty("portalId")
//     private final int portalId;
// }
// 
// Path: api/src/main/java/hirez/api/object/interfaces/ReturnedMessage.java
// public interface ReturnedMessage {
//     @JsonProperty("ret_msg")
//     String getReturnedMessage();
// }


import com.fasterxml.jackson.annotation.JsonProperty;
import hirez.api.object.MergedAccount;
import hirez.api.object.adapters.DateTimeFormat;
import hirez.api.object.adapters.DurationTime;
import hirez.api.object.interfaces.ReturnedMessage;
import lombok.Data;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.Date;
@Data
public class Player implements ReturnedMessage {
    @JsonProperty("ActivePlayerId")
    private final long activePlayerId;
    @JsonProperty("AvatarId")
    private final long avatarId;
    @JsonProperty("AvatarURL")
    private final String avatarURL;
    @DateTimeFormat
    @JsonProperty("Created_Datetime")
    private final Date createdDatetime;
    @DurationTime(ChronoUnit.HOURS)
    @JsonProperty("HoursPlayed")
    private final Duration hoursPlayed;
    @JsonProperty("Id")
    private final long id;
    @DateTimeFormat
    @JsonProperty("Last_Login_Datetime")
    private final Date lastLoginDatetime;
    @JsonProperty("Leaves")
    private final int leaves;
    @JsonProperty("Level")
    private final int level;
    @JsonProperty("LoadingFrame")
    private final String loadingFrame;
    @JsonProperty("Losses")
    private final int losses;
    @JsonProperty("MasteryLevel")
    private final int masteryLevel;
    @JsonProperty("MergedPlayers")
// Path: api/src/main/java/hirez/api/object/MergedAccount.java
// @Data
// public class MergedAccount {
//     @JsonProperty("merge_datetime")
//     @DateTimeFormat("MMM dd yyyy  h:mma")
//     private final Date mergeDatetime;
//     @JsonProperty("playerId")
//     private final long playerId;
//     @JsonProperty("portalId")
//     private final int portalId;
// }
// 
// Path: api/src/main/java/hirez/api/object/interfaces/ReturnedMessage.java
// public interface ReturnedMessage {
//     @JsonProperty("ret_msg")
//     String getReturnedMessage();
// }


// Path: paladins/src/main/java/hirez/paladins/object/Player.java
import com.fasterxml.jackson.annotation.JsonProperty;
import hirez.api.object.MergedAccount;
import hirez.api.object.adapters.DateTimeFormat;
import hirez.api.object.adapters.DurationTime;
import hirez.api.object.interfaces.ReturnedMessage;
import lombok.Data;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.Date;

@Data
public class Player implements ReturnedMessage {
    @JsonProperty("ActivePlayerId")
    private final long activePlayerId;
    @JsonProperty("AvatarId")
    private final long avatarId;
    @JsonProperty("AvatarURL")
    private final String avatarURL;
    @DateTimeFormat
    @JsonProperty("Created_Datetime")
    private final Date createdDatetime;
    @DurationTime(ChronoUnit.HOURS)
    @JsonProperty("HoursPlayed")
    private final Duration hoursPlayed;
    @JsonProperty("Id")
    private final long id;
    @DateTimeFormat
    @JsonProperty("Last_Login_Datetime")
    private final Date lastLoginDatetime;
    @JsonProperty("Leaves")
    private final int leaves;
    @JsonProperty("Level")
    private final int level;
    @JsonProperty("LoadingFrame")
    private final String loadingFrame;
    @JsonProperty("Losses")
    private final int losses;
    @JsonProperty("MasteryLevel")
    private final int masteryLevel;
    @JsonProperty("MergedPlayers")
    private final MergedAccount[] mergedPlayers;