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

namespace File_Folder_Helper.Models.Exif;

public record ExifDirectory(AviDirectory[] AviDirectories,
                            ExifDirectoryBase[] ExifBaseDirectories,
                            FileMetadataDirectory[] FileMetadataDirectories,
                            GifHeaderDirectory[] GifHeaderDirectories,
                            GpsDirectory[] GpsDirectories,
                            int? Height,
                            int? Id,
                            JpegDirectory[] JpegDirectories,
                            MakernoteDirectory[] MakernoteDirectories,
                            string OriginalFileName,
                            PhotoshopDirectory[] PhotoshopDirectories,
                            PngDirectory[] PngDirectories,
                            QuickTimeMovieHeaderDirectory[] QuickTimeMovieHeaderDirectories,
                            QuickTimeTrackHeaderDirectory[] QuickTimeTrackHeaderDirectories,
                            WebPDirectory[] WebPDirectories,
                            int? Width)
{

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

}

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