using MediaManager.Library; using Newtonsoft.Json; using System; using System.ComponentModel; using System.Runtime.CompilerServices; namespace galacticlip_app.Models { public class NasaMediaItem : INotifyPropertyChanged { private bool _isBookmarked; public string Id { get; set; } public string ThumbnailUrl { get; set; } public string Title { get; set; } public string Description { get; set; } public DateTime DateCreated { get; set; } public string Photographer { get; set; } public string Keywords { get; set; } public string PersonalNote { get; set; } public bool IsBookmarked { get => _isBookmarked; set { _isBookmarked = value; OnPropertyChanged(); } } public static NasaMediaItem FromMediaItem(MediaItem mediaItem) { return new NasaMediaItem { ThumbnailUrl = mediaItem.ImageUri ?? "default-thumbnail-url.jpg", Title = mediaItem.DisplayTitle ?? "Untitled", Description = mediaItem.DisplayDescription ?? "No description available.", DateCreated = mediaItem.Date, Photographer = mediaItem.Artist ?? "Unknown photographer", Keywords = string.Empty, PersonalNote = "" }; } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } }