using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization;
using StabilityMatrix.Core.Converters.Json;
namespace StabilityMatrix.Core.Models.Settings;
///
/// Notification Names
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[JsonConverter(typeof(StringJsonConverter))]
public record NotificationKey(string Value) : StringValue(Value)
{
public NotificationOption DefaultOption { get; init; }
public string? DisplayName { get; init; }
public static NotificationKey Inference_PromptCompleted =>
new("Inference_PromptCompleted")
{
DefaultOption = NotificationOption.NativePush,
DisplayName = "Inference Prompt Completed"
};
public static NotificationKey Download_Completed =>
new("Download_Completed")
{
DefaultOption = NotificationOption.NativePush,
DisplayName = "Download Completed"
};
public static NotificationKey Download_Failed =>
new("Download_Failed")
{
DefaultOption = NotificationOption.NativePush,
DisplayName = "Download Failed"
};
public static NotificationKey Download_Canceled =>
new("Download_Canceled")
{
DefaultOption = NotificationOption.NativePush,
DisplayName = "Download Canceled"
};
public static Dictionary All { get; } = GetValues();
///
public override string ToString() => base.ToString();
}