These three DTOs are incredibly similar and their different usages are a bit confusing because of that. I believe they can be safely condensed into 2 DTOs for clarity. New structures should look like so:
PlayerInfoDTO
Id
OsuId
Username
Country
PlayerDTO : PlayerInfoDTO
RankStandard
RankTaiko
RankCatch
RankMania
EarliestStandardGlobalRank (renamed from EarliestOsuGlobalRank)
EarliestStandardGlobalRankDate (renamed from EarliestOsuGlobalRankDate)
EarliestTaikoGlobalRank
EarliestTaikoGlobalRankDate
EarliestCatchGlobalRank
EarliestCatchGlobalRankDate
EarliestManiaGlobalRank
EarliestManiaGlobalRankDate
Tasks:
[ ] Remove existing PlayerDTO
[ ] Rename existing PlayerInfoDTO to PlayerDTO
[ ] Refactor the DTO structures to match above
[ ] Return new PlayerDTO anywhere the old PlayerRanksDTO was used
These three DTOs are incredibly similar and their different usages are a bit confusing because of that. I believe they can be safely condensed into 2 DTOs for clarity. New structures should look like so:
PlayerInfoDTO
PlayerDTO : PlayerInfoDTO
EarliestOsuGlobalRank
)EarliestOsuGlobalRankDate
)Tasks:
PlayerDTO
PlayerInfoDTO
toPlayerDTO
PlayerDTO
anywhere the oldPlayerRanksDTO
was usedPlayerDTO