using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Shared.Models; public record ImmichAsset([property: JsonPropertyName("id")] string Id, [property: JsonPropertyName("deviceAssetId")] string DeviceAssetId, // [property: JsonPropertyName("ownerId")] string OwnerId, // [property: JsonPropertyName("deviceId")] string DeviceId, // [property: JsonPropertyName("type")] string Type, [property: JsonPropertyName("originalPath")] string OriginalPath, // [property: JsonPropertyName("fileCreatedAt")] DateTime FileCreatedAt, // [property: JsonPropertyName("fileModifiedAt")] DateTime FileModifiedAt, // [property: JsonPropertyName("isFavorite")] bool IsFavorite, // [property: JsonPropertyName("duration")] string? Duration, // [property: JsonPropertyName("encodedVideoPath")] string EncodedVideoPath, // [property: JsonPropertyName("checksum")] string Checksum, // [property: JsonPropertyName("isVisible")] bool IsVisible, // [property: JsonPropertyName("livePhotoVideoId")] object? LivePhotoVideoId, // [property: JsonPropertyName("updatedAt")] DateTime UpdatedAt, // [property: JsonPropertyName("createdAt")] DateTime CreatedAt, // [property: JsonPropertyName("isArchived")] bool IsArchived, [property: JsonPropertyName("originalFileName")] string OriginalFileName, // [property: JsonPropertyName("sidecarPath")] object? SidecarPath, // [property: JsonPropertyName("thumbhash")] string Thumbhash, // [property: JsonPropertyName("isOffline")] bool IsOffline, // [property: JsonPropertyName("libraryId")] string LibraryId, // [property: JsonPropertyName("isExternal")] bool IsExternal, // [property: JsonPropertyName("deletedAt")] object? DeletedAt, // [property: JsonPropertyName("localDateTime")] DateTime LocalDateTime, // [property: JsonPropertyName("stackId")]? object? StackId, [property: JsonPropertyName("duplicateId")] string? DuplicateId, // [property: JsonPropertyName("status")] string Status, [property: JsonPropertyName("path")] string Path) { public override string ToString() { string result = JsonSerializer.Serialize(this, ImmichAssetSourceGenerationContext.Default.ImmichAsset); return result; } } [JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)] [JsonSerializable(typeof(ImmichAsset))] public partial class ImmichAssetSourceGenerationContext : JsonSerializerContext { } [JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)] [JsonSerializable(typeof(ImmichAsset[]))] public partial class ImmichAssetCollectionSourceGenerationContext : JsonSerializerContext { }