using System.Text;
namespace Deal.Telegram.Dialogs;
///
/// Детерминированный цвет диалога из палитры DIALOG_HUES.
///
public static class DialogHue
{
private static readonly string[] Palette =
[
"#3b82f6",
"#38bdf8",
"#f472b6",
"#f59e0b",
"#a78bfa",
"#34d399",
"#fb7185",
"#22c55e",
];
///
/// Цвет источника по id диалога и имени
///
/// Подписанный id диалога.
/// Отображаемое имя (title/first_name); пустое — как в.
/// Цвет палитры, hex "#rrggbb".
public static string Compute(string dialogId, string name)
{
int hash = 0;
foreach (Rune rune in (dialogId + name).EnumerateRunes())
{
hash = (hash * 31 + rune.Value) % Palette.Length;
}
return Palette[hash];
}
}