using System.Collections.Generic;
namespace LaDOSE.DTO
{
///
/// Every recorded meeting between two players, broken down per game.
/// Sets belonging to a bracket with no game attached are not in
/// nor in the totals — they are only counted in .
///
public class PlayerVersusDTO
{
public int PlayerAId { get; set; }
/// Gamertag, falling back to Name, else "#<id>".
public string PlayerA { get; set; }
public int PlayerBId { get; set; }
public string PlayerB { get; set; }
/// Meetings in a bracket whose game is known — the sum of the rows in .
public int Sets { get; set; }
/// Of those, the ones with a determinable winner.
public int DecidedSets { get; set; }
public int WinsA { get; set; }
public int WinsB { get; set; }
/// Meetings dropped because the bracket has no game attached.
public int UnknownGameSets { get; set; }
/// One row per game they met in, most-played first.
public List Games { get; set; }
}
/// One game's slice of a .
public class VersusGameStatsDTO
{
public int GameId { get; set; }
/// Game name, or "#<id>" when the game row is gone.
public string Game { get; set; }
public string GameLongName { get; set; }
/// Meetings in this game, decided or not.
public int Sets { get; set; }
/// Meetings with a determinable winner. Always equals WinsA + WinsB.
public int DecidedSets { get; set; }
public int WinsA { get; set; }
public int WinsB { get; set; }
/// Individual games won inside the decided sets.
public int GamesWonA { get; set; }
public int GamesWonB { get; set; }
}
///
/// A player who can be picked for a versus lookup: one with at least one set in a
/// bracket whose game is known.
///
public class PlayerOptionDTO
{
public int Id { get; set; }
/// Gamertag, falling back to Name, else "#<id>".
public string Name { get; set; }
/// Sets in a bracket with a known game, whoever the opponent was.
public int Sets { get; set; }
}
}