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

namespace File_Folder_Helper.Models.Exif;

public record ExifDirectoryBase(string? Aperture,
                                string? ApplicationNotes,
                                string? Artist,
                                string? BitsPerSample,
                                string? BodySerialNumber,
                                string? CameraOwnerName,
                                string? CompressedAverageBitsPerPixel,
                                string? Compression,
                                string? Copyright,
                                DateTime? DateTime,
                                DateTime? DateTimeDigitized,
                                DateTime? DateTimeOriginal,
                                string? DocumentName,
                                string? ExifVersion,
                                string? ExposureTime,
                                string? FileSource,
                                string? ImageDescription,
                                string? ImageHeight,
                                string? ImageNumber,
                                string? ImageUniqueId,
                                string? ImageWidth,
                                string? IsoSpeed,
                                string? LensMake,
                                string? LensModel,
                                string? LensSerialNumber,
                                string? Make,
                                string? MakerNote,
                                string? Model,
                                string? Orientation,
                                int? OrientationValue,
                                string? Rating,
                                string? RatingPercent,
                                string? SecurityClassification,
                                string? ShutterSpeed,
                                string? Software,
                                string? TimeZone,
                                string? TimeZoneDigitized,
                                string? TimeZoneOriginal,
                                string? UserComment,
                                string? WinAuthor,
                                string? WinComment,
                                string? WinKeywords,
                                string? WinSubject,
                                string? WinTitle,
                                string? XResolution,
                                string? YResolution)
{

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

}

[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(ExifDirectoryBase))]
public partial class ExifDirectoryBaseSourceGenerationContext : JsonSerializerContext
{
}