package com.rosetta.messenger.data

/**
 * Release notes for "Rosetta Updates" system messages.
 *
 * When releasing a new version, update [RELEASE_NOTICE] below.
 * The text will be sent once to each user after they update the app.
 */
object ReleaseNotes {

    /**
     * Current release notice shown to users after update.
     * [VERSION_PLACEHOLDER] will be replaced with the actual version from BuildConfig.
     */
    const val VERSION_PLACEHOLDER = "{version}"

    val RELEASE_NOTICE = """
        Update v$VERSION_PLACEHOLDER

        - Выполнен крупный рефакторинг runtime сети и сессии: SessionStore/Reducer, декомпозиция ProtocolManager и выделение профильных coordinator/service слоев
        - Стабилизированы первичное подключение, авторизация и восстановление после сбоев навигации в auth-flow
        - Улучшены sync/send-потоки и retry-пайплайн: меньше регрессий при переподключениях и фоновых отправках
        - Текстовые сообщения теперь отправляются параллельно с загрузкой голосовых и вложений
        - Панель записи ГС приведена к Telegram-поведению: lock flow, анимации, blob-эффекты в lock, корректные pause/play и центрирование иконок
        - Исправлена анимация waveform после перемотки: прогресс продолжается с текущей позиции без отката к началу
        - Улучшены QR-сканер и in-app camera: более плавный выход и стабильнее обработка UI-состояний
        - Добавлен расширенный сетевой debug-канал rosettadev1 с выводом в crash logs для ускоренной диагностики
    """.trimIndent()

    fun getNotice(version: String): String =
        RELEASE_NOTICE.replace(VERSION_PLACEHOLDER, version)

    /** Hash of current notice text — used to re-send if text changed within the same version */
    val noticeHash: String
        get() = RELEASE_NOTICE.hashCode().toString(16)
}
