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()
|
|
|
|
}
|
|
|
|
}
|