package com.rosetta.messenger.database import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase @Database( entities = [ EncryptedAccountEntity::class, MessageEntity::class, DialogEntity::class, BlacklistEntity::class ], version = 3, exportSchema = false ) abstract class RosettaDatabase : RoomDatabase() { abstract fun accountDao(): AccountDao abstract fun messageDao(): MessageDao abstract fun dialogDao(): DialogDao abstract fun blacklistDao(): BlacklistDao companion object { @Volatile private var INSTANCE: RosettaDatabase? = null fun getDatabase(context: Context): RosettaDatabase { return INSTANCE ?: synchronized(this) { val instance = Room.databaseBuilder( context.applicationContext, RosettaDatabase::class.java, "rosetta_secure.db" ) .setJournalMode(JournalMode.WRITE_AHEAD_LOGGING) // WAL mode for performance .fallbackToDestructiveMigration() // Для разработки .build() INSTANCE = instance instance } } } }