using System.Text.Json;
using System.Text.Json.Serialization;

namespace File_Folder_Helper.Models;

internal record Person(long Id,
                     Name? Name,
                     char? Sex,
                     string? UId,
                     Birth? Birth,
                     string? Title,
                     Death? Death,
                     Change? Change,
                     string[] Lines)
{

    public override string ToString()
    {
        string result = JsonSerializer.Serialize(this, PersonSourceGenerationContext.Default.Person);
        return result;
    }

}

[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
[JsonSerializable(typeof(Person))]
internal partial class PersonSourceGenerationContext : JsonSerializerContext
{
}

[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
[JsonSerializable(typeof(Dictionary<long, Person>))]
internal partial class PeopleSourceGenerationContext : JsonSerializerContext
{
}