PlaguPoster/posts/src/jvmMain/kotlin/exposed/ExposedContentInfoRepo.kt

34 lines
1.1 KiB
Kotlin
Raw Normal View History

2022-08-18 12:59:05 +00:00
package dev.inmo.plaguposter.posts.exposed
import com.benasher44.uuid.uuid4
import dev.inmo.micro_utils.repos.KeyValuesRepo
import dev.inmo.micro_utils.repos.exposed.*
import dev.inmo.plaguposter.posts.models.*
import dev.inmo.tgbotapi.types.ChatId
2022-11-17 09:09:10 +00:00
import dev.inmo.tgbotapi.types.IdChatIdentifier
2022-08-18 12:59:05 +00:00
import org.jetbrains.exposed.sql.*
internal class ExposedContentInfoRepo(
override val database: Database,
postIdColumnReference: Column<String>
) : ExposedRepo, Table(name = "posts_content") {
2022-08-20 16:26:38 +00:00
val postIdColumn = text("post_id").references(postIdColumnReference, ReferenceOption.CASCADE, ReferenceOption.CASCADE)
2022-08-18 12:59:05 +00:00
val chatIdColumn = long("chat_id")
2022-11-17 09:09:10 +00:00
val threadIdColumn = long("thread_id").nullable().default(null)
2022-08-18 12:59:05 +00:00
val messageIdColumn = long("message_id")
val groupColumn = text("group").nullable()
val orderColumn = integer("order")
val ResultRow.asObject
get() = PostContentInfo(
2022-11-17 09:09:10 +00:00
IdChatIdentifier(get(chatIdColumn), get(threadIdColumn)),
2022-08-18 12:59:05 +00:00
get(messageIdColumn),
get(groupColumn),
get(orderColumn)
)
init {
initTable()
}
}