ManageCourseCertificatesPage). Изменения затрагивают только будущие выдачи — уже выданные сертификаты остаются неизменными, потому что строятся из снимка данных, сделанного в момент выдачи.
Что можно изменить
Фирменный цвет (brandColor)
Поле «Фирменный цвет» задаётся через компонент выбора цвета (ColorPicker) и хранится как HEX-строка. Цвет используется шаблоном как акцентный. На стороне backend значение валидируется как корректный HEX.
Переменные шаблона
Сертификат собирается из снимка данных (snapshot) — словаря «переменная → значение». Ключи снимка соответствуют плейсхолдерам {{...}} в HTML-шаблоне. Пустые необязательные значения не записываются, а соответствующие блоки шаблона скрываются через {{#if}}.
Выводимые значения в снимке не хранятся — они вычисляются при отображении: даты форматируются из
issuedAt / expireAt, ссылка проверки и QR-код строятся из uuid, номер сертификата — это его id.
Пример фрагмента снимка: