using Newtonsoft.Json.Linq;

namespace EDPlayerJournal.Entries; 
public class Killer {
    public string? Name { get; set; }
    public string? Rank { get; set; }
    public string? Ship { get; set; }
}

public class DiedEntry : Entry {
    private readonly List<Killer> killers = new List<Killer>();

    public List<Killer> Killers => killers;
    public Killer? Killer => killers.Count > 0 ? killers[0] : null;
    public bool WasWing => killers.Count > 1;

    protected override void Initialise() {
        var wing = JSON.Value<JArray>("Killers");
        if (wing != null) {
            /* a wing killed us */
            foreach (JObject child in wing.Children<JObject>()) {
                Killer killer = new Killer {
                    Name = child.Value<string>("Name"),
                    Rank = child.Value<string>("Rank"),
                    Ship = child.Value<string>("Ship")
                };
                killers.Add(killer);
            }
        } else {
            /* a single ship killed us */
            Killer killer = new Killer {
                Name = JSON.Value<string>("KillerName"),
                Rank = JSON.Value<string>("KillerRank"),
                Ship = JSON.Value<string>("KillerShip")
            };
            killers.Add(killer);
        }
    }
}
