using System.Collections.ObjectModel;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace View_by_Distance.Shared.Models;

public record ReadOnlyCollections(ReadOnlyCollection<long> JLinkResolvedPersonKeys,
                                  ReadOnlyCollection<PersonContainer> PersonContainers,
                                  ReadOnlyCollection<string> PersonKeyFormattedCollection,
                                  ReadOnlyDictionary<string, string> PersonKeyFormattedToNewestPersonKeyFormatted,
                                  ReadOnlyCollection<long> PersonKeys,
                                  ReadOnlyDictionary<int, List<FilePathAndWholePercentages>> SkipCollection,
                                  ReadOnlyDictionary<int, List<FilePathAndWholePercentages>> SkipNotSkipCollection,
                                  ReadOnlyCollection<string> SkipNotSkipDirectories)
{

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

}

[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
[JsonSerializable(typeof(ReadOnlyCollections))]
public partial class ReadOnlyCollectionsSourceGenerationContext : JsonSerializerContext
{
}