using System.Text.Json.Serialization;

namespace View_by_Distance.Map.Models;

public record DatabaseFile(
        [property: JsonPropertyName("id")] int Id,
        [property: JsonPropertyName("photo_id")] int PhotoId,
        [property: JsonPropertyName("photo_uid")] string PhotoUid,
        [property: JsonPropertyName("photo_taken_at")] string PhotoTakenAt,
        [property: JsonPropertyName("time_index")] string TimeIndex,
        [property: JsonPropertyName("media_id")] string MediaId,
        [property: JsonPropertyName("media_utc")] object MediaUtc,
        [property: JsonPropertyName("instance_id")] string InstanceId,
        [property: JsonPropertyName("file_uid")] string FileUid,
        [property: JsonPropertyName("file_name")] string FileName,
        [property: JsonPropertyName("file_root")] string FileRoot,
        [property: JsonPropertyName("original_name")] string OriginalName,
        [property: JsonPropertyName("file_hash")] string FileHash,
        [property: JsonPropertyName("file_size")] int FileSize,
        [property: JsonPropertyName("file_codec")] string FileCodec,
        [property: JsonPropertyName("file_type")] string FileType,
        [property: JsonPropertyName("media_type")] string MediaType,
        [property: JsonPropertyName("file_mime")] string FileMime,
        [property: JsonPropertyName("file_primary")] long FilePrimary,
        [property: JsonPropertyName("file_sidecar")] long FileSidecar,
        [property: JsonPropertyName("file_missing")] long FileMissing,
        [property: JsonPropertyName("file_portrait")] long FilePortrait,
        [property: JsonPropertyName("file_video")] long FileVideo,
        [property: JsonPropertyName("file_duration")] long FileDuration,
        [property: JsonPropertyName("file_fps")] object FileFps,
        [property: JsonPropertyName("file_frames")] object FileFrames,
        [property: JsonPropertyName("file_width")] int FileWidth,
        [property: JsonPropertyName("file_height")] int FileHeight,
        [property: JsonPropertyName("file_orientation")] int FileOrientation,
        [property: JsonPropertyName("file_projection")] string FileProjection,
        [property: JsonPropertyName("file_aspect_ratio")] double FileAspectRatio,
        [property: JsonPropertyName("file_hdr")] long FileHdr,
        [property: JsonPropertyName("file_watermark")] long FileWatermark,
        [property: JsonPropertyName("file_color_profile")] string FileColorProfile,
        [property: JsonPropertyName("file_main_color")] string FileMainColor,
        [property: JsonPropertyName("file_colors")] string FileColors,
        [property: JsonPropertyName("file_luminance")] string FileLuminance,
        [property: JsonPropertyName("file_diff")] long FileDiff,
        [property: JsonPropertyName("file_chroma")] long FileChroma,
        [property: JsonPropertyName("file_software")] string FileSoftware,
        [property: JsonPropertyName("file_error")] string FileError,
        [property: JsonPropertyName("mod_time")] long ModTime,
        [property: JsonPropertyName("created_at")] string CreatedAt,
        [property: JsonPropertyName("created_in")] long CreatedIn,
        [property: JsonPropertyName("updated_at")] string UpdatedAt,
        [property: JsonPropertyName("updated_in")] long UpdatedIn,
        [property: JsonPropertyName("published_at")] object PublishedAt,
        [property: JsonPropertyName("deleted_at")] object DeletedAt
    );