using SharedLibraryCore.Database.Models; using SharedLibraryCore.Helpers; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace IW4MAdmin.Plugins.Stats.Models { /// /// This class houses the information for anticheat snapshots (used for validating a ban) /// public class EFACSnapshot : SharedEntity { [Key] public int SnapshotId { get; set; } public int ClientId { get; set; } [ForeignKey("ClientId")] public EFClient Client { get; set; } public DateTime When { get; set; } public int CurrentSessionLength { get; set; } public int TimeSinceLastEvent { get; set; } public double EloRating { get; set; } public int SessionScore { get; set; } public double SessionSPM { get; set; } public int Hits { get; set; } public int Kills { get; set; } public int Deaths { get; set; } public double CurrentStrain { get; set; } public double StrainAngleBetween { get; set; } public double SessionAngleOffset { get; set; } public int LastStrainAngleId { get; set; } [ForeignKey("LastStrainAngleId")] public Vector3 LastStrainAngle { get; set; } public int HitOriginId { get; set; } [ForeignKey("HitOriginId")] public Vector3 HitOrigin { get; set; } public int HitDestinationId { get; set; } [ForeignKey("HitDestinationId")] public Vector3 HitDestination { get; set; } public double Distance { get; set; } public int CurrentViewAngleId { get; set; } [ForeignKey("CurrentViewAngleId")] public Vector3 CurrentViewAngle { get; set; } public IW4Info.WeaponName WeaponId { get; set; } public IW4Info.HitLocation HitLocation { get; set; } public IW4Info.MeansOfDeath HitType { get; set; } public virtual ICollection PredictedViewAngles { get; set; } } }