Model.cs
1 namespace OverwatchTranscript 2 { 3 [Serializable] 4 public class OverwatchTranscript 5 { 6 public OverwatchHeader Header { get; set; } = new(); 7 public OverwatchMomentReference[] MomentReferences { get; set; } = Array.Empty<OverwatchMomentReference>(); 8 } 9 10 [Serializable] 11 public class OverwatchMomentReference 12 { 13 public string MomentsFile { get; set; } = string.Empty; 14 public int NumberOfMoments { get; set; } 15 public int NumberOfEvents { get; set; } 16 public DateTime EarliestUtc { get; set; } 17 public DateTime LatestUtc { get; set; } 18 } 19 20 [Serializable] 21 public class OverwatchHeader 22 { 23 public OverwatchCommonHeader Common { get; set; } = new(); 24 public OverwatchHeaderEntry[] Entries { get; set; } = Array.Empty<OverwatchHeaderEntry>(); 25 } 26 27 [Serializable] 28 public class OverwatchCommonHeader 29 { 30 public long NumberOfMoments { get; set; } 31 public long NumberOfEvents { get; set; } 32 public DateTime EarliestUtc { get; set; } 33 public DateTime LatestUtc { get; set; } 34 } 35 36 [Serializable] 37 public class OverwatchHeaderEntry 38 { 39 public string Key { get; set; } = string.Empty; 40 public string Value { get; set; } = string.Empty; 41 } 42 43 [Serializable] 44 public class OverwatchMoment 45 { 46 public DateTime Utc { get; set; } 47 public OverwatchEvent[] Events { get; set; } = Array.Empty<OverwatchEvent>(); 48 } 49 50 [Serializable] 51 public class OverwatchEvent 52 { 53 public string Type { get; set; } = string.Empty; 54 public string Payload { get; set; } = string.Empty; 55 } 56 }