Room Database setup

This commit is contained in:
Kgothatso Ngako
2026-03-26 00:20:20 +02:00
parent f8e7a20b98
commit 3dea688eea
16 changed files with 242 additions and 50 deletions

View File

@@ -0,0 +1,3 @@
package ac.aux.compose
actual class PlatformContext

View File

@@ -0,0 +1,32 @@
package ac.aux.compose.database.builder
import ac.aux.compose.PlatformContext
import ac.aux.compose.database.AuxDatabase
import androidx.room.Room
import androidx.room.RoomDatabase
import kotlinx.cinterop.ExperimentalForeignApi
import platform.Foundation.NSDocumentDirectory
import platform.Foundation.NSFileManager
import platform.Foundation.NSUserDomainMask
actual object PlatformDatabaseBuilder {
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<AuxDatabase> {
val dbFilePath = documentDirectory() + "/aux.db"
return Room.databaseBuilder<AuxDatabase>(
name = dbFilePath,
)
}
@OptIn(ExperimentalForeignApi::class)
private fun documentDirectory(): String {
val documentDirectory = NSFileManager.defaultManager.URLForDirectory(
directory = NSDocumentDirectory,
inDomain = NSUserDomainMask,
appropriateForURL = null,
create = false,
error = null,
)
return requireNotNull(documentDirectory?.path)
}
}