/**
 * Форматирует сообщение для тоста после сохранения slepok-чувствительных
 * правок проекта.
 *
 * Бизнес-инвариант: applies_from = N.21:00 МСК — час, когда поставщик
 * фиксирует свой slepok (см. docs/superpowers/specs/2026-05-26-slepok-routing-protection-design.md).
 * Поэтому в UI всегда показываем «21:00 МСК», а календарную дату берём
 * по часовому поясу Москвы — независимо от локали браузера клиента.
 */
const moscowDateFmt = new Intl.DateTimeFormat('ru-RU', {
    timeZone: 'Europe/Moscow',
    day: '2-digit',
    month: '2-digit',
    year: 'numeric',
});

export function formatAppliesFromMessage(appliesFrom: string | null | undefined): string {
    if (!appliesFrom) {
        return 'Сохранено.';
    }
    const date = moscowDateFmt.format(new Date(appliesFrom));
    return `Сохранено. Изменения вступят в силу ${date} в 21:00 МСК.`;
}
