using System.Text.Json.Serialization; namespace View_by_Distance.PhotoPrism.Models; public record DatabaseFile( [property: JsonPropertyName("id")] string Id, [property: JsonPropertyName("photo_id")] string 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")] string 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")] string 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")] string FilePrimary, [property: JsonPropertyName("file_sidecar")] string FileSidecar, [property: JsonPropertyName("file_missing")] string FileMissing, [property: JsonPropertyName("file_portrait")] string FilePortrait, [property: JsonPropertyName("file_video")] string FileVideo, [property: JsonPropertyName("file_duration")] string FileDuration, [property: JsonPropertyName("file_fps")] string FileFps, [property: JsonPropertyName("file_frames")] string FileFrames, [property: JsonPropertyName("file_width")] string FileWidth, [property: JsonPropertyName("file_height")] string FileHeight, [property: JsonPropertyName("file_orientation")] string FileOrientation, [property: JsonPropertyName("file_orientation_src")] string FileOrientationSrc, [property: JsonPropertyName("file_projection")] string FileProjection, [property: JsonPropertyName("file_aspect_ratio")] string FileAspectRatio, [property: JsonPropertyName("file_hdr")] string FileHdr, [property: JsonPropertyName("file_watermark")] string 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")] string FileDiff, [property: JsonPropertyName("file_chroma")] string FileChroma, [property: JsonPropertyName("file_software")] string FileSoftware, [property: JsonPropertyName("file_error")] string FileError, [property: JsonPropertyName("mod_time")] string ModTime, [property: JsonPropertyName("created_at")] string CreatedAt, [property: JsonPropertyName("created_in")] string CreatedIn, [property: JsonPropertyName("updated_at")] string UpdatedAt, [property: JsonPropertyName("updated_in")] string UpdatedIn, [property: JsonPropertyName("published_at")] object PublishedAt, [property: JsonPropertyName("deleted_at")] object DeletedAt) { internal static Shared.Models.DatabaseFile Map(DatabaseFile databaseFile) { Shared.Models.DatabaseFile result; (int id, int photoId) = (int.Parse(databaseFile.Id), int.Parse(databaseFile.PhotoId)); (int fileWidth, int fileHeight) = (int.Parse(databaseFile.FileWidth), int.Parse(databaseFile.FileHeight)); result = new(id, photoId, databaseFile.PhotoUid, databaseFile.PhotoTakenAt, databaseFile.TimeIndex, databaseFile.MediaId, databaseFile.MediaUtc, databaseFile.InstanceId, databaseFile.FileUid, databaseFile.FileName, databaseFile.FileRoot, databaseFile.OriginalName, databaseFile.FileHash, databaseFile.FileSize, databaseFile.FileCodec, databaseFile.FileType, databaseFile.MediaType, databaseFile.FileMime, databaseFile.FilePrimary, databaseFile.FileSidecar, databaseFile.FileMissing, databaseFile.FilePortrait, databaseFile.FileVideo, databaseFile.FileDuration, databaseFile.FileFps, databaseFile.FileFrames, fileWidth, fileHeight, databaseFile.FileOrientation, databaseFile.FileOrientationSrc, databaseFile.FileProjection, databaseFile.FileAspectRatio, databaseFile.FileHdr, databaseFile.FileWatermark, databaseFile.FileColorProfile, databaseFile.FileMainColor, databaseFile.FileColors, databaseFile.FileLuminance, databaseFile.FileDiff, databaseFile.FileChroma, databaseFile.FileSoftware, databaseFile.FileError, databaseFile.ModTime, databaseFile.CreatedAt, databaseFile.CreatedIn, databaseFile.UpdatedAt, databaseFile.UpdatedIn, databaseFile.PublishedAt, databaseFile.DeletedAt); return result; } }