Add chat room id on mantra tables
This commit is contained in:
@@ -131,7 +131,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig,
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraArtifact ->
|
||||
database.mantraArtifactDao().upsert(
|
||||
mantraArtifact.copy(
|
||||
@@ -152,7 +153,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraArtifactVersion ->
|
||||
database.mantraArtifactVersionDao().upsert(
|
||||
mantraArtifactVersion.copy(
|
||||
@@ -172,7 +174,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraChapter ->
|
||||
database.mantraChapterDao().upsert(
|
||||
mantraChapter.copy(
|
||||
@@ -192,7 +195,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraChunk ->
|
||||
database.mantraChunkDao().upsert(
|
||||
mantraChunk.copy(
|
||||
@@ -211,7 +215,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraDialect ->
|
||||
database.mantraDialectDao().upsert(
|
||||
mantraDialect.copy(
|
||||
@@ -230,7 +235,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraTranslationArtifactVersion ->
|
||||
database.mantraTranslationArtifactVersionDao().upsert(
|
||||
mantraTranslationArtifactVersion.copy(
|
||||
@@ -253,7 +259,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraTranslationChapter ->
|
||||
database.mantraTranslationChapterDao().upsert(
|
||||
mantraTranslationChapter.copy(
|
||||
@@ -272,7 +279,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraTranslationChunk ->
|
||||
database.mantraTranslationChunkDao().upsert(
|
||||
mantraTranslationChunk.copy(
|
||||
@@ -296,7 +304,8 @@ data class ChatMessage(
|
||||
tags = event.tags,
|
||||
content = event.content,
|
||||
sig = event.sig
|
||||
)
|
||||
),
|
||||
chatRoomId = groupEventResult.groupId,
|
||||
)?.let { mantraTranslation ->
|
||||
database.mantraTranslationDao().upsert(
|
||||
mantraTranslation.copy(
|
||||
|
||||
@@ -25,6 +25,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["dialectId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
]
|
||||
)
|
||||
data class MantraArtifact(
|
||||
@@ -38,6 +44,8 @@ data class MantraArtifact(
|
||||
val license: String,
|
||||
// val artifactApprovalId: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
/**
|
||||
* Signature will be an empty string if this is a rumor
|
||||
*/
|
||||
@@ -79,7 +87,7 @@ data class MantraArtifact(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromArtifactEvent(artifactEvent: ArtifactEvent): MantraArtifact? {
|
||||
fun fromArtifactEvent(artifactEvent: ArtifactEvent, chatRoomId: HexKey, ): MantraArtifact? {
|
||||
return artifactEvent.artifactMetadata?.let { artifactMetadata ->
|
||||
artifactEvent.dialectId()?.let { dialectId ->
|
||||
MantraArtifact(
|
||||
@@ -92,6 +100,7 @@ data class MantraArtifact(
|
||||
visibility = artifactMetadata.visibility,
|
||||
name = artifactEvent.content,
|
||||
signature = artifactEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["artifactId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraArtifactVersion(
|
||||
@@ -43,6 +49,8 @@ data class MantraArtifactVersion(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -73,7 +81,7 @@ data class MantraArtifactVersion(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromArtifactVersionEvent(artifactVersionEvent: ArtifactVersionEvent): MantraArtifactVersion? {
|
||||
fun fromArtifactVersionEvent(artifactVersionEvent: ArtifactVersionEvent, chatRoomId: HexKey, ): MantraArtifactVersion? {
|
||||
return artifactVersionEvent.artifactId()?.let { artifactId ->
|
||||
MantraArtifactVersion(
|
||||
id = artifactVersionEvent.id,
|
||||
@@ -81,7 +89,8 @@ data class MantraArtifactVersion(
|
||||
createdAt = Instant.fromEpochSeconds(artifactVersionEvent.createdAt),
|
||||
artifactId = artifactId,
|
||||
versionLabel = artifactVersionEvent.content,
|
||||
signature = artifactVersionEvent.sig
|
||||
signature = artifactVersionEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["artifactVersionId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraChapter(
|
||||
@@ -45,6 +51,8 @@ data class MantraChapter(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -87,7 +95,7 @@ data class MantraChapter(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromChapterEvent(chapterEvent: ChapterEvent): MantraChapter? {
|
||||
fun fromChapterEvent(chapterEvent: ChapterEvent, chatRoomId: HexKey): MantraChapter? {
|
||||
return chapterEvent.chapterMetadata?.let { chapterMetadata ->
|
||||
chapterEvent.wordStatisticsTag?.let { wordStatisticsTag ->
|
||||
chapterEvent.artifactVersionId()?.let { artifactId ->
|
||||
@@ -102,7 +110,8 @@ data class MantraChapter(
|
||||
index = index,
|
||||
wordCount = wordStatisticsTag.wordCount,
|
||||
characterCount = wordStatisticsTag.characterCount,
|
||||
signature = chapterEvent.sig
|
||||
signature = chapterEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["chapterId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraChunk(
|
||||
@@ -42,6 +48,8 @@ data class MantraChunk(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -77,7 +85,7 @@ data class MantraChunk(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromChunkEvent(chunkEvent: ChunkEvent): MantraChunk? {
|
||||
fun fromChunkEvent(chunkEvent: ChunkEvent, chatRoomId: HexKey): MantraChunk? {
|
||||
return chunkEvent.wordStatisticsTag?.let { wordStatisticsTag ->
|
||||
chunkEvent.index()?.let { index ->
|
||||
chunkEvent.chapterId()?.let { chapterId ->
|
||||
@@ -90,7 +98,8 @@ data class MantraChunk(
|
||||
characterCount = wordStatisticsTag.characterCount,
|
||||
chapterId = chapterId,
|
||||
text = chunkEvent.content,
|
||||
signature = chunkEvent.sig
|
||||
signature = chunkEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package press.mantra.compose.database.model
|
||||
|
||||
import androidx.room3.Entity
|
||||
import androidx.room3.ForeignKey
|
||||
import androidx.room3.PrimaryKey
|
||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
|
||||
@@ -16,7 +17,16 @@ import kotlin.time.Instant
|
||||
/**
|
||||
* 30304
|
||||
*/
|
||||
@Entity
|
||||
@Entity(
|
||||
foreignKeys = [
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
]
|
||||
)
|
||||
data class MantraDialect(
|
||||
@PrimaryKey
|
||||
val id: HexKey,
|
||||
@@ -27,6 +37,8 @@ data class MantraDialect(
|
||||
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -58,7 +70,7 @@ data class MantraDialect(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromDialectEvent(dialectEvent: DialectEvent): MantraDialect? {
|
||||
fun fromDialectEvent(dialectEvent: DialectEvent, chatRoomId: HexKey): MantraDialect? {
|
||||
return dialectEvent.name()?.let { name ->
|
||||
dialectEvent.language()?.let { language ->
|
||||
dialectEvent.country()?.let { country ->
|
||||
@@ -70,7 +82,8 @@ data class MantraDialect(
|
||||
name = name,
|
||||
language = language,
|
||||
country = country,
|
||||
signature = dialectEvent.sig
|
||||
signature = dialectEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["translationArtifactVersionId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraTranslation(
|
||||
@@ -43,6 +49,8 @@ data class MantraTranslation(
|
||||
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -73,7 +81,7 @@ data class MantraTranslation(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromTranslationEvent(translationEvent: TranslationEvent): MantraTranslation? {
|
||||
fun fromTranslationEvent(translationEvent: TranslationEvent, chatRoomId: HexKey): MantraTranslation? {
|
||||
ensure(translationEvent.translationChunkId() != null) { return null}
|
||||
ensure(translationEvent.translationArtifactVersionId() != null) { return null}
|
||||
|
||||
@@ -86,7 +94,8 @@ data class MantraTranslation(
|
||||
text = translationEvent.content,
|
||||
translationChunkId = translationChunkId,
|
||||
translationArtifactVersionId = translationArtifactVersionId,
|
||||
signature = translationEvent.sig
|
||||
signature = translationEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["dialectId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraTranslationArtifactVersion(
|
||||
@@ -49,6 +55,8 @@ data class MantraTranslationArtifactVersion(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -86,7 +94,7 @@ data class MantraTranslationArtifactVersion(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromTranslationArtifactVersionEvent(translationArtifactVersionEvent: TranslationArtifactVersionEvent): MantraTranslationArtifactVersion? {
|
||||
fun fromTranslationArtifactVersionEvent(translationArtifactVersionEvent: TranslationArtifactVersionEvent, chatRoomId: HexKey): MantraTranslationArtifactVersion? {
|
||||
|
||||
return translationArtifactVersionEvent.artifactVersionId()?.let { artifactVersionId ->
|
||||
translationArtifactVersionEvent.dialectId()?.let { dialectId ->
|
||||
@@ -100,7 +108,8 @@ data class MantraTranslationArtifactVersion(
|
||||
name = translationArtifactVersionMetadata.name,
|
||||
visibility = translationArtifactVersionMetadata.visibility,
|
||||
license = translationArtifactVersionMetadata.license,
|
||||
signature = translationArtifactVersionEvent.sig
|
||||
signature = translationArtifactVersionEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["translationArtifactVersionId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraTranslationArtifactVersionContributor(
|
||||
@@ -39,6 +45,8 @@ data class MantraTranslationArtifactVersionContributor(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -51,7 +59,7 @@ data class MantraTranslationArtifactVersionContributor(
|
||||
): OptionalNostrEventEntity, TimestampedEntity {
|
||||
|
||||
companion object {
|
||||
fun toTranslationChapterProofReaderListEvent(mantraTranslationChapterProofReaders: List<MantraTranslationArtifactVersionContributor>): TranslationArtifactVersionContributorListEvent {
|
||||
fun toTranslationChapterProofReaderListEvent(chatRoomId: HexKey, mantraTranslationChapterProofReaders: List<MantraTranslationArtifactVersionContributor>): TranslationArtifactVersionContributorListEvent {
|
||||
// TODO: create TranslationChapterProofReaderListEvent from mantraTranslationChapterProofReaders
|
||||
return TranslationArtifactVersionContributorListEvent(
|
||||
id = "",
|
||||
|
||||
@@ -32,6 +32,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["chapterId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraTranslationChapter(
|
||||
@@ -47,6 +53,8 @@ data class MantraTranslationChapter(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -79,7 +87,7 @@ data class MantraTranslationChapter(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromTranslationChapterEvent(translationChapterEvent: TranslationChapterEvent): MantraTranslationChapter? {
|
||||
fun fromTranslationChapterEvent(translationChapterEvent: TranslationChapterEvent, chatRoomId: HexKey): MantraTranslationChapter? {
|
||||
return translationChapterEvent.chapterId()?.let { chapterId ->
|
||||
translationChapterEvent.translationArtifactVersionId()?.let { translationArtifactVersionId ->
|
||||
translationChapterEvent.index()?.let { index ->
|
||||
@@ -90,7 +98,8 @@ data class MantraTranslationChapter(
|
||||
chapterId = chapterId,
|
||||
translationArtifactVersionId = translationArtifactVersionId,
|
||||
index = index,
|
||||
signature = translationChapterEvent.sig
|
||||
signature = translationChapterEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["translationChapterId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraTranslationChapterContributor(
|
||||
@@ -41,6 +47,8 @@ data class MantraTranslationChapterContributor(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
|
||||
@@ -32,6 +32,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["translationChapterId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraTranslationChunk(
|
||||
@@ -48,6 +54,8 @@ data class MantraTranslationChunk(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
|
||||
@@ -81,7 +89,7 @@ data class MantraTranslationChunk(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun fromTranslationChunkEvent(translationChunkEvent: TranslationChunkEvent): MantraTranslationChunk? {
|
||||
fun fromTranslationChunkEvent(translationChunkEvent: TranslationChunkEvent, chatRoomId: HexKey): MantraTranslationChunk? {
|
||||
return translationChunkEvent.translationChapterId()?.let { translationChapterId ->
|
||||
translationChunkEvent.chunkId()?.let { chunkId ->
|
||||
translationChunkEvent.index()?.let { index ->
|
||||
@@ -93,7 +101,8 @@ data class MantraTranslationChunk(
|
||||
chunkId = chunkId,
|
||||
index = index,
|
||||
text = translationChunkEvent.content,
|
||||
signature = translationChunkEvent.sig
|
||||
signature = translationChunkEvent.sig,
|
||||
chatRoomId = chatRoomId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,12 @@ import kotlin.time.Instant
|
||||
childColumns = ["translationId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
ForeignKey(
|
||||
entity = ChatRoom::class,
|
||||
parentColumns = ["id"],
|
||||
childColumns = ["chatRoomId"],
|
||||
onDelete = ForeignKey.CASCADE,
|
||||
),
|
||||
],
|
||||
)
|
||||
data class MantraTranslationContributor(
|
||||
@@ -41,6 +47,8 @@ data class MantraTranslationContributor(
|
||||
*/
|
||||
val signature: String,
|
||||
|
||||
val chatRoomId: String,
|
||||
|
||||
val relayHint: String? = null,
|
||||
val marmotGroupEventId: HexKey? = null,
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user