89 lines
3.2 KiB
Kotlin
89 lines
3.2 KiB
Kotlin
package ac.aux.compose.database
|
|
|
|
import ac.aux.compose.database.converters.AuxConverters
|
|
import ac.aux.compose.database.dao.BroadcastNostrEventReceiptDao
|
|
import ac.aux.compose.database.dao.BroadcastNostrEventRequestDao
|
|
import ac.aux.compose.database.dao.NostrDao
|
|
import ac.aux.compose.database.dao.NostrEventDao
|
|
import ac.aux.compose.database.dao.PostDao
|
|
import ac.aux.compose.database.dao.ProfileDao
|
|
import ac.aux.compose.database.dao.ReactionDao
|
|
import ac.aux.compose.database.dao.RecentSearchDao
|
|
import ac.aux.compose.database.dao.RelayDao
|
|
import ac.aux.compose.database.dao.RepostDao
|
|
import ac.aux.compose.database.dao.SynchronizeNostrEventRequestDao
|
|
import ac.aux.compose.database.dao.SynchronizeNostrEventResultDao
|
|
import ac.aux.compose.database.dao.UnsignedNostrEventDao
|
|
import ac.aux.compose.database.dao.ZapDao
|
|
import ac.aux.compose.database.model.BroadcastNostrEventReceipt
|
|
import ac.aux.compose.database.model.BroadcastNostrEventRequest
|
|
import ac.aux.compose.database.model.NostrEvent
|
|
import ac.aux.compose.database.model.Post
|
|
import ac.aux.compose.database.model.Profile
|
|
import ac.aux.compose.database.model.Reaction
|
|
import ac.aux.compose.database.model.RecentSearch
|
|
import ac.aux.compose.database.model.Relay
|
|
import ac.aux.compose.database.model.Repost
|
|
import ac.aux.compose.database.model.SynchronizeNostrEventRequest
|
|
import ac.aux.compose.database.model.SynchronizeNostrEventResult
|
|
import ac.aux.compose.database.model.UnsignedNostrEvent
|
|
import ac.aux.compose.database.model.Zap
|
|
import androidx.room.Database
|
|
import androidx.room.RoomDatabase
|
|
import androidx.room.TypeConverters
|
|
import androidx.room.immediateTransaction
|
|
import androidx.room.useWriterConnection
|
|
import kotlin.time.Instant
|
|
|
|
val GENESIS_AT = Instant.fromEpochMilliseconds(1231006505000L)
|
|
|
|
@Database(
|
|
entities = [
|
|
BroadcastNostrEventReceipt::class,
|
|
BroadcastNostrEventRequest::class,
|
|
NostrEvent::class,
|
|
Post::class,
|
|
Profile::class,
|
|
Reaction::class,
|
|
RecentSearch::class,
|
|
Relay::class,
|
|
Repost::class,
|
|
SynchronizeNostrEventRequest::class,
|
|
SynchronizeNostrEventResult::class,
|
|
UnsignedNostrEvent::class,
|
|
Zap::class
|
|
],
|
|
version = 1
|
|
)
|
|
@TypeConverters(AuxConverters::class)
|
|
abstract class AuxDatabase: RoomDatabase() {
|
|
abstract fun broadcastNostrEventReceiptDao(): BroadcastNostrEventReceiptDao
|
|
abstract fun broadcastNostrEventRequestDao(): BroadcastNostrEventRequestDao
|
|
abstract fun nostrDao(): NostrDao
|
|
|
|
abstract fun nostrEventDao(): NostrEventDao
|
|
abstract fun postDao(): PostDao
|
|
abstract fun profileDao(): ProfileDao
|
|
abstract fun reactionDao(): ReactionDao
|
|
|
|
abstract fun recentSearchDao(): RecentSearchDao
|
|
|
|
abstract fun relayDao(): RelayDao
|
|
|
|
abstract fun repostDao(): RepostDao
|
|
|
|
abstract fun synchronizeNostrEventRequestDao(): SynchronizeNostrEventRequestDao
|
|
|
|
abstract fun synchronizeNostrEventResultDao(): SynchronizeNostrEventResultDao
|
|
|
|
abstract fun unsignedNostrEventDao(): UnsignedNostrEventDao
|
|
abstract fun zapDao(): ZapDao
|
|
|
|
suspend fun wipeData() {
|
|
useWriterConnection { transactor ->
|
|
transactor.immediateTransaction {
|
|
// TODO: Actually delete the data...
|
|
}
|
|
}
|
|
}
|
|
} |