Files
TeleWave/backend/src/TeleWave.Application/Broadcast/Bumpers/BumperPreview.cs
T

19 lines
1.1 KiB
C#

using System.Security.Cryptography;
namespace TeleWave.Application.Broadcast.Bumpers;
/// <summary>
/// Детерминированный id ассета-превью для подблока заставки: один и тот же на каждый повторный рендер,
/// поэтому предпросмотр перезаписывает единственный каталог assets/{id}, а не плодит новые.
/// </summary>
public static class BumperPreview
{
/// <summary>
/// Свёртка id подблока в стабильный id превью. Не защита — просто способ получить из одного GUID
/// другой, воспроизводимо; берём SHA-256 и первые 16 байт, чтобы в коде не оставалось вызовов
/// сломанных хеш-функций, которые потом приходится каждый раз объяснять сканерам.
/// </summary>
public static Guid AssetId(Guid variantId) =>
new(SHA256.HashData(variantId.ToByteArray()).AsSpan(0, 16));
}