using System.Text.Json.Serialization;

namespace File_Folder_Helper.Models.Face;

public record FaceFile(int? AreaPermyriad,
                       int? ConfidencePercent,
                       string? DMS,
                       DateTime DateTime,
                       FaceEncoding? FaceEncoding,
                       Dictionary<FacePart, FacePoint[]>? FaceParts,
                       Location? Location,
                       string? Maker,
                       MappingFromPerson? MappingFromPerson,
                       string? Model,
                       OutputResolution? OutputResolution);

[JsonSourceGenerationOptions(WriteIndented = false)]
[JsonSerializable(typeof(FaceFile))]
public partial class FaceFileGenerationContext : JsonSerializerContext
{
}

[JsonSourceGenerationOptions(WriteIndented = false, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
[JsonSerializable(typeof(FaceFile[]))]
public partial class FaceFileCollectionGenerationContext : JsonSerializerContext
{
}

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