using System.Text.Json.Serialization;

namespace View_by_Distance.Shared.Models;

public record ImageAmazon(
    [property: JsonPropertyName("colorSpace")] string ColorSpace,
    [property: JsonPropertyName("dateTime")] DateTime DateTime,
    [property: JsonPropertyName("dateTimeDigitized")] DateTime DateTimeDigitized,
    [property: JsonPropertyName("dateTimeOriginal")] DateTime DateTimeOriginal,
    [property: JsonPropertyName("exposureMode")] string ExposureMode,
    [property: JsonPropertyName("exposureProgram")] string ExposureProgram,
    [property: JsonPropertyName("exposureTime")] string ExposureTime,
    [property: JsonPropertyName("flash")] string Flash,
    [property: JsonPropertyName("focalLength")] string FocalLength,
    [property: JsonPropertyName("height")] int Height,
    [property: JsonPropertyName("make")] string Make,
    [property: JsonPropertyName("meteringMode")] string MeteringMode,
    [property: JsonPropertyName("model")] string Model,
    [property: JsonPropertyName("orientation")] string Orientation,
    [property: JsonPropertyName("resolutionUnit")] string ResolutionUnit,
    [property: JsonPropertyName("sensingMethod")] string SensingMethod,
    [property: JsonPropertyName("sharpness")] string Sharpness,
    [property: JsonPropertyName("software")] string Software,
    [property: JsonPropertyName("subSecTime")] string SubSecTime,
    [property: JsonPropertyName("subSecTimeDigitized")] string SubSecTimeDigitized,
    [property: JsonPropertyName("subSecTimeOriginal")] string SubSecTimeOriginal,
    [property: JsonPropertyName("whiteBalance")] string WhiteBalance,
    [property: JsonPropertyName("width")] int Width,
    [property: JsonPropertyName("apertureValue")] string ApertureValue
);

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