using MongoDB.Bson.Serialization.Attributes;
using WotBlitzStatisticsPro.Common.Model;
namespace WotBlitzStatisticsPro.DataAccess.Model.Accounts
{
public class TankInfoHistory: IStatistics
{
public TankInfoHistory()
{
TankInfoHistoryId = new TankInfoHistoryKey();
}
public TankInfoHistory(long accountId, long tankId, int lastBattleTime)
{
TankInfoHistoryId = new TankInfoHistoryKey(accountId, tankId, lastBattleTime);
}
[BsonId]
public TankInfoHistoryKey TankInfoHistoryId { get; set; }
///
/// Player account identifier
///
[BsonIgnore]
public long AccountId => TankInfoHistoryId.AccountId;
///
/// Tank identifier
///
[BsonIgnore]
public long TankId => TankInfoHistoryId.TankId;
///
/// Last battle
///
[BsonIgnore]
public int LastBattleTime => TankInfoHistoryId.LastBattleTime;
///
/// Battles count
///
public long? Battles { get; set; }
///
/// Base capture points
///
public long? CapturePoints { get; set; }
///
/// Damage dealt
///
public long? DamageDealt { get; set; }
///
/// Damage received
///
public long? DamageReceived { get; set; }
///
/// Base dropped capture points
///
public long? DroppedCapturePoints { get; set; }
///
/// Frags count
///
public long? Frags { get; set; }
///
/// Frags count after 8 tier
///
public long? Frags8P { get; set; }
///
/// Hits count
///
public long? Hits { get; set; }
///
/// Losses count
///
public long? Losses { get; set; }
///
/// Max frags per battle
///
public long? MaxFrags { get; set; }
///
/// Max XP per battle
///
public long? MaxXp { get; set; }
///
/// Shots count
///
public long? Shots { get; set; }
///
/// Spotted vehicles count
///
public long? Spotted { get; set; }
///
/// Amount of survived battles
///
public long? SurvivedBattles { get; set; }
///
/// Amount of survived and wined battles
///
public long? WinAndSurvived { get; set; }
///
/// Wins count
///
public long? Wins { get; set; }
///
/// Total experience
///
public long? Xp { get; set; }
///
/// Wn7 coefficient
///
public double Wn7 { get; set; }
#region redudant fields
public long? MaxFragsTankId { get; set; }
public long? MaxXpTankId { get; set; }
public double AvgTier { get; set; }
#endregion
}
}