using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace AxCopilot.ViewModels;

public class ThemeCardModel : INotifyPropertyChanged
{
	private bool _isSelected;

	public string Key { get; init; } = "";

	public string Name { get; init; } = "";

	public string PreviewBackground { get; init; } = "#1A1B2E";

	public string PreviewText { get; init; } = "#F0F0FF";

	public string PreviewSubText { get; init; } = "#7A7D9C";

	public string PreviewAccent { get; init; } = "#4B5EFC";

	public string PreviewItem { get; init; } = "#252637";

	public string PreviewBorder { get; init; } = "#2E2F4A";

	public bool IsSelected
	{
		get
		{
			return _isSelected;
		}
		set
		{
			_isSelected = value;
			OnPropertyChanged("IsSelected");
		}
	}

	public event PropertyChangedEventHandler? PropertyChanged;

	protected void OnPropertyChanged([CallerMemberName] string? n = null)
	{
		this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(n));
	}
}
