2026-03-24 04:47:19 +02:00
|
|
|
package ac.aux.compose.database
|
|
|
|
|
|
2026-03-30 01:17:44 +02:00
|
|
|
import ac.aux.compose.database.converters.AuxConverters
|
2026-03-25 01:59:19 +02:00
|
|
|
import ac.aux.compose.database.dao.BroadcastNostrEventReceiptDao
|
|
|
|
|
import ac.aux.compose.database.dao.BroadcastNostrEventRequestDao
|
2026-03-24 04:47:19 +02:00
|
|
|
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
|
2026-04-02 00:18:29 +02:00
|
|
|
import ac.aux.compose.database.dao.RecentSearchDao
|
2026-04-18 21:58:32 +02:00
|
|
|
import ac.aux.compose.database.dao.RelayDao
|
2026-03-24 04:47:19 +02:00
|
|
|
import ac.aux.compose.database.dao.RepostDao
|
2026-03-29 22:22:16 +02:00
|
|
|
import ac.aux.compose.database.dao.SynchronizeNostrEventRequestDao
|
|
|
|
|
import ac.aux.compose.database.dao.SynchronizeNostrEventResultDao
|
2026-03-25 04:19:06 +02:00
|
|
|
import ac.aux.compose.database.dao.UnsignedNostrEventDao
|
2026-03-24 04:47:19 +02:00
|
|
|
import ac.aux.compose.database.dao.ZapDao
|
2026-03-25 04:19:06 +02:00
|
|
|
import ac.aux.compose.database.model.BroadcastNostrEventReceipt
|
|
|
|
|
import ac.aux.compose.database.model.BroadcastNostrEventRequest
|
2026-03-24 04:47:19 +02:00
|
|
|
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
|
2026-04-02 00:18:29 +02:00
|
|
|
import ac.aux.compose.database.model.RecentSearch
|
2026-04-18 02:41:31 +02:00
|
|
|
import ac.aux.compose.database.model.Relay
|
2026-03-24 04:47:19 +02:00
|
|
|
import ac.aux.compose.database.model.Repost
|
2026-03-29 22:22:16 +02:00
|
|
|
import ac.aux.compose.database.model.SynchronizeNostrEventRequest
|
|
|
|
|
import ac.aux.compose.database.model.SynchronizeNostrEventResult
|
2026-03-25 04:19:06 +02:00
|
|
|
import ac.aux.compose.database.model.UnsignedNostrEvent
|
2026-03-24 04:47:19 +02:00
|
|
|
import ac.aux.compose.database.model.Zap
|
|
|
|
|
import androidx.room.Database
|
|
|
|
|
import androidx.room.RoomDatabase
|
|
|
|
|
import androidx.room.TypeConverters
|
2026-03-26 02:52:08 +02:00
|
|
|
import androidx.room.immediateTransaction
|
|
|
|
|
import androidx.room.useWriterConnection
|
2026-03-31 21:36:17 +02:00
|
|
|
import kotlin.time.Instant
|
|
|
|
|
|
|
|
|
|
val GENESIS_AT = Instant.fromEpochMilliseconds(1231006505000L)
|
2026-03-24 04:47:19 +02:00
|
|
|
|
|
|
|
|
@Database(
|
|
|
|
|
entities = [
|
2026-03-25 04:19:06 +02:00
|
|
|
BroadcastNostrEventReceipt::class,
|
|
|
|
|
BroadcastNostrEventRequest::class,
|
2026-03-24 04:47:19 +02:00
|
|
|
NostrEvent::class,
|
|
|
|
|
Post::class,
|
|
|
|
|
Profile::class,
|
|
|
|
|
Reaction::class,
|
2026-04-02 00:18:29 +02:00
|
|
|
RecentSearch::class,
|
2026-04-18 02:41:31 +02:00
|
|
|
Relay::class,
|
2026-03-24 04:47:19 +02:00
|
|
|
Repost::class,
|
2026-03-29 22:22:16 +02:00
|
|
|
SynchronizeNostrEventRequest::class,
|
|
|
|
|
SynchronizeNostrEventResult::class,
|
2026-03-25 04:19:06 +02:00
|
|
|
UnsignedNostrEvent::class,
|
2026-03-24 04:47:19 +02:00
|
|
|
Zap::class
|
|
|
|
|
],
|
|
|
|
|
version = 1
|
|
|
|
|
)
|
2026-03-30 01:17:44 +02:00
|
|
|
@TypeConverters(AuxConverters::class)
|
2026-03-24 04:47:19 +02:00
|
|
|
abstract class AuxDatabase: RoomDatabase() {
|
2026-03-25 01:59:19 +02:00
|
|
|
abstract fun broadcastNostrEventReceiptDao(): BroadcastNostrEventReceiptDao
|
|
|
|
|
abstract fun broadcastNostrEventRequestDao(): BroadcastNostrEventRequestDao
|
2026-03-24 04:47:19 +02:00
|
|
|
abstract fun nostrDao(): NostrDao
|
|
|
|
|
|
|
|
|
|
abstract fun nostrEventDao(): NostrEventDao
|
|
|
|
|
abstract fun postDao(): PostDao
|
|
|
|
|
abstract fun profileDao(): ProfileDao
|
|
|
|
|
abstract fun reactionDao(): ReactionDao
|
2026-04-02 00:18:29 +02:00
|
|
|
|
|
|
|
|
abstract fun recentSearchDao(): RecentSearchDao
|
2026-04-18 21:58:32 +02:00
|
|
|
|
|
|
|
|
abstract fun relayDao(): RelayDao
|
|
|
|
|
|
2026-03-24 04:47:19 +02:00
|
|
|
abstract fun repostDao(): RepostDao
|
2026-03-25 04:19:06 +02:00
|
|
|
|
2026-03-29 22:22:16 +02:00
|
|
|
abstract fun synchronizeNostrEventRequestDao(): SynchronizeNostrEventRequestDao
|
|
|
|
|
|
|
|
|
|
abstract fun synchronizeNostrEventResultDao(): SynchronizeNostrEventResultDao
|
|
|
|
|
|
2026-03-25 04:19:06 +02:00
|
|
|
abstract fun unsignedNostrEventDao(): UnsignedNostrEventDao
|
2026-03-24 04:47:19 +02:00
|
|
|
abstract fun zapDao(): ZapDao
|
2026-03-26 02:52:08 +02:00
|
|
|
|
|
|
|
|
suspend fun wipeData() {
|
|
|
|
|
useWriterConnection { transactor ->
|
|
|
|
|
transactor.immediateTransaction {
|
|
|
|
|
// TODO: Actually delete the data...
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-03-24 04:47:19 +02:00
|
|
|
}
|