using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Data.Models.Client.Stats.Reference;
using Data.Models.Server;
using Stats.Models;
namespace Data.Models.Client.Stats
{
public class EFClientHitStatistic : AuditFields
{
[Key]
public int ClientHitStatisticId { get; set; }
[Required]
public int ClientId { get; set; }
[ForeignKey(nameof(ClientId))]
public virtual EFClient Client { get; set; }
public long? ServerId { get; set; }
[ForeignKey(nameof(ServerId))]
public virtual EFServer Server { get; set; }
public int? HitLocationId { get; set; }
[ForeignKey(nameof(HitLocationId))]
public virtual EFHitLocation HitLocation { get; set; }
public int? MeansOfDeathId { get; set; }
[ForeignKey(nameof(MeansOfDeathId))]
public virtual EFMeansOfDeath MeansOfDeath { get; set; }
public int? WeaponId { get; set; }
[ForeignKey(nameof(WeaponId))]
public virtual EFWeapon Weapon { get; set; }
public int? WeaponAttachmentComboId { get; set; }
[ForeignKey(nameof(WeaponAttachmentComboId))]
public virtual EFWeaponAttachmentCombo WeaponAttachmentCombo { get; set; }
///
/// how many hits the player got
///
public int HitCount { get; set; }
///
/// how many kills the player got
///
public int KillCount { get; set; }
///
/// how much damage the player inflicted
///
public int DamageInflicted { get; set; }
///
/// how many hits the player received
///
public int ReceivedHitCount { get; set; }
///
/// how many kills the player received
///
public int DeathCount { get; set; }
///
/// how much damage the player received
///
public int DamageReceived { get; set; }
///
/// how many times the player killed themself
///
public int SuicideCount { get; set; }
///
/// estimation of time spent with the configuration
///
public int? UsageSeconds { get; set; }
///
/// total in-game score
///
public int? Score { get; set; }
}
}