using Avalonia.Media.Imaging; using CommunityToolkit.Mvvm.ComponentModel; namespace LANCommander.Launcher.ViewModels.Components; /// Represents a single screenshot or video in the game detail media carousel. public partial class GameMediaItemViewModel : ObservableObject { /// Local file path or remote URL for videos. [ObservableProperty] private string _path = string.Empty; [ObservableProperty] private bool _isVideo; [ObservableProperty] private string _mimeType = string.Empty; /// Pre-loaded bitmap for screenshot display (loaded from local file or remote URL). [ObservableProperty] private Bitmap? _imageSource; /// When true, this item is a loading placeholder that will be replaced with real content. [ObservableProperty] private bool _isSkeleton; }