Кэш чатов

This commit is contained in:
Халимов Рустам
2026-04-20 00:25:40 +03:00
parent 945134f029
commit 7c66e1c0c0
35 changed files with 2131 additions and 92 deletions
@@ -0,0 +1,39 @@
package core.database.data
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase
/**
* Миграция с версии 1 на версию 2
* Добавляет поля для офлайн-синхронизации:
* - syncStatus (TEXT, по умолчанию 'SYNCED')
* - isDeletedLocally (INTEGER, по умолчанию 0)
* - isEditedLocally (INTEGER, по умолчанию 0)
* - editedContent (TEXT, nullable)
* - lastUpdated (INTEGER, по умолчанию текущее время)
*/
val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
// Добавляем новые колонки для синхронизации
database.execSQL("""
ALTER TABLE messages ADD COLUMN syncStatus TEXT NOT NULL DEFAULT 'SYNCED'
""".trimIndent())
database.execSQL("""
ALTER TABLE messages ADD COLUMN isDeletedLocally INTEGER NOT NULL DEFAULT 0
""".trimIndent())
database.execSQL("""
ALTER TABLE messages ADD COLUMN isEditedLocally INTEGER NOT NULL DEFAULT 0
""".trimIndent())
database.execSQL("""
ALTER TABLE messages ADD COLUMN editedContent TEXT
""".trimIndent())
// lastUpdated по умолчанию 0, будет обновлён при первой синхронизации
database.execSQL("""
ALTER TABLE messages ADD COLUMN lastUpdated INTEGER NOT NULL DEFAULT 0
""".trimIndent())
}
}