34 lines
897 B
Kotlin
34 lines
897 B
Kotlin
package chats.data.local.database
|
|
|
|
import androidx.room.Database
|
|
import androidx.room.RoomDatabase
|
|
import androidx.room.TypeConverters
|
|
import chats.data.local.dao.ChatDao
|
|
import chats.data.local.dao.MessageDao
|
|
import chats.data.local.dao.UserProfileDao
|
|
|
|
/**
|
|
* Room Database для локального хранения данных мессенджера
|
|
* Реализует паттерн Single Source of Truth
|
|
*/
|
|
@Database(
|
|
entities = [
|
|
MessageEntity::class,
|
|
ChatEntity::class,
|
|
UserProfileEntity::class
|
|
],
|
|
version = 2,
|
|
exportSchema = false
|
|
)
|
|
@TypeConverters(MessageStatusConverter::class)
|
|
abstract class AppDatabase : RoomDatabase() {
|
|
|
|
abstract fun messageDao(): MessageDao
|
|
abstract fun chatDao(): ChatDao
|
|
abstract fun userProfileDao(): UserProfileDao
|
|
|
|
companion object {
|
|
const val DATABASE_NAME = "knot_messenger.db"
|
|
}
|
|
}
|