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, F_PhotoPrism.HexStringToString(databaseFile.PhotoUid), F_PhotoPrism.HexStringToString(databaseFile.PhotoTakenAt), F_PhotoPrism.HexStringToString(databaseFile.TimeIndex), F_PhotoPrism.HexStringToString(databaseFile.MediaId), F_PhotoPrism.HexStringToString(databaseFile.MediaUtc), F_PhotoPrism.HexStringToString(databaseFile.InstanceId), F_PhotoPrism.HexStringToString(databaseFile.FileUid), F_PhotoPrism.HexStringToString(databaseFile.FileName), F_PhotoPrism.HexStringToString(databaseFile.FileRoot), F_PhotoPrism.HexStringToString(databaseFile.OriginalName), F_PhotoPrism.HexStringToString(databaseFile.FileHash), F_PhotoPrism.HexStringToString(databaseFile.FileSize), F_PhotoPrism.HexStringToString(databaseFile.FileCodec), F_PhotoPrism.HexStringToString(databaseFile.FileType), F_PhotoPrism.HexStringToString(databaseFile.MediaType), F_PhotoPrism.HexStringToString(databaseFile.FileMime), F_PhotoPrism.HexStringToString(databaseFile.FilePrimary), F_PhotoPrism.HexStringToString(databaseFile.FileSidecar), F_PhotoPrism.HexStringToString(databaseFile.FileMissing), F_PhotoPrism.HexStringToString(databaseFile.FilePortrait), F_PhotoPrism.HexStringToString(databaseFile.FileVideo), F_PhotoPrism.HexStringToString(databaseFile.FileDuration), F_PhotoPrism.HexStringToString(databaseFile.FileFps), F_PhotoPrism.HexStringToString(databaseFile.FileFrames), fileWidth, fileHeight, F_PhotoPrism.HexStringToString(databaseFile.FileOrientation), F_PhotoPrism.HexStringToString(databaseFile.FileOrientationSrc), F_PhotoPrism.HexStringToString(databaseFile.FileProjection), F_PhotoPrism.HexStringToString(databaseFile.FileAspectRatio), F_PhotoPrism.HexStringToString(databaseFile.FileHdr), F_PhotoPrism.HexStringToString(databaseFile.FileWatermark), F_PhotoPrism.HexStringToString(databaseFile.FileColorProfile), F_PhotoPrism.HexStringToString(databaseFile.FileMainColor), F_PhotoPrism.HexStringToString(databaseFile.FileColors), F_PhotoPrism.HexStringToString(databaseFile.FileLuminance), F_PhotoPrism.HexStringToString(databaseFile.FileDiff), F_PhotoPrism.HexStringToString(databaseFile.FileChroma), F_PhotoPrism.HexStringToString(databaseFile.FileSoftware), F_PhotoPrism.HexStringToString(databaseFile.FileError), F_PhotoPrism.HexStringToString(databaseFile.ModTime), F_PhotoPrism.HexStringToString(databaseFile.CreatedAt), F_PhotoPrism.HexStringToString(databaseFile.CreatedIn), F_PhotoPrism.HexStringToString(databaseFile.UpdatedAt), F_PhotoPrism.HexStringToString(databaseFile.UpdatedIn), databaseFile.PublishedAt, databaseFile.DeletedAt); return result; } }