using System;
using SQLite;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Entities.Shared;
///
/// Represents a user-defined keyboard shortcut for mail operations.
///
public class KeyboardShortcut
{
[PrimaryKey]
public Guid Id { get; set; }
///
/// The application mode this shortcut applies to.
///
public WinoApplicationMode Mode { get; set; } = WinoApplicationMode.Mail;
///
/// The key combination string (e.g., "D", "Delete", "F1").
///
public string Key { get; set; }
///
/// The modifier keys for this shortcut.
///
public ModifierKeys ModifierKeys { get; set; }
///
/// The shortcut action this shortcut triggers.
///
public KeyboardShortcutAction Action { get; set; }
///
/// Whether this shortcut is enabled.
///
public bool IsEnabled { get; set; } = true;
///
/// When this shortcut was created.
///
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
///
/// User-friendly display name for the shortcut.
///
public string DisplayName
{
get
{
var modifierText = string.Empty;
if (ModifierKeys.HasFlag(ModifierKeys.Control))
modifierText += "Ctrl+";
if (ModifierKeys.HasFlag(ModifierKeys.Alt))
modifierText += "Alt+";
if (ModifierKeys.HasFlag(ModifierKeys.Shift))
modifierText += "Shift+";
if (ModifierKeys.HasFlag(ModifierKeys.Windows))
modifierText += "Win+";
return modifierText + Key;
}
}
}