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()) } }