mirror of
https://github.com/InsanusMokrassar/PlaguPoster.git
synced 2026-07-06 17:44:54 +00:00
add posts
This commit is contained in:
1
posts/src/commonMain/kotlin/PackageInfo.kt
Normal file
1
posts/src/commonMain/kotlin/PackageInfo.kt
Normal file
@@ -0,0 +1 @@
|
||||
package dev.inmo.plaguposter.posts
|
||||
20
posts/src/commonMain/kotlin/models/Post.kt
Normal file
20
posts/src/commonMain/kotlin/models/Post.kt
Normal file
@@ -0,0 +1,20 @@
|
||||
package dev.inmo.plaguposter.posts.models
|
||||
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
sealed interface Post {
|
||||
val content: List<PostContentInfo>
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class NewPost(
|
||||
override val content: List<PostContentInfo>
|
||||
) : Post
|
||||
|
||||
@Serializable
|
||||
data class RegisteredPost(
|
||||
val id: PostId,
|
||||
override val content: List<PostContentInfo>
|
||||
) : Post
|
||||
13
posts/src/commonMain/kotlin/models/PostContentInfo.kt
Normal file
13
posts/src/commonMain/kotlin/models/PostContentInfo.kt
Normal file
@@ -0,0 +1,13 @@
|
||||
package dev.inmo.plaguposter.posts.models
|
||||
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.MessageIdentifier
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class PostContentInfo(
|
||||
val chatId: ChatId,
|
||||
val messageId: MessageIdentifier,
|
||||
val group: String?,
|
||||
val order: Int
|
||||
)
|
||||
10
posts/src/commonMain/kotlin/models/PostId.kt
Normal file
10
posts/src/commonMain/kotlin/models/PostId.kt
Normal file
@@ -0,0 +1,10 @@
|
||||
package dev.inmo.plaguposter.posts.models
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlin.jvm.JvmInline
|
||||
|
||||
@Serializable
|
||||
@JvmInline
|
||||
value class PostId(
|
||||
val string: String
|
||||
)
|
||||
7
posts/src/commonMain/kotlin/repo/PostsRepo.kt
Normal file
7
posts/src/commonMain/kotlin/repo/PostsRepo.kt
Normal file
@@ -0,0 +1,7 @@
|
||||
package dev.inmo.plaguposter.posts.repo
|
||||
|
||||
import dev.inmo.micro_utils.repos.CRUDRepo
|
||||
import dev.inmo.plaguposter.posts.models.*
|
||||
|
||||
interface PostsRepo : CRUDRepo<RegisteredPost, PostId, NewPost>, ReadPostsRepo, WritePostsRepo {
|
||||
}
|
||||
6
posts/src/commonMain/kotlin/repo/ReadPostsRepo.kt
Normal file
6
posts/src/commonMain/kotlin/repo/ReadPostsRepo.kt
Normal file
@@ -0,0 +1,6 @@
|
||||
package dev.inmo.plaguposter.posts.repo
|
||||
|
||||
import dev.inmo.micro_utils.repos.ReadCRUDRepo
|
||||
import dev.inmo.plaguposter.posts.models.*
|
||||
|
||||
interface ReadPostsRepo : ReadCRUDRepo<RegisteredPost, PostId>
|
||||
7
posts/src/commonMain/kotlin/repo/WritePostsRepo.kt
Normal file
7
posts/src/commonMain/kotlin/repo/WritePostsRepo.kt
Normal file
@@ -0,0 +1,7 @@
|
||||
package dev.inmo.plaguposter.posts.repo
|
||||
|
||||
import dev.inmo.micro_utils.repos.ReadCRUDRepo
|
||||
import dev.inmo.micro_utils.repos.WriteCRUDRepo
|
||||
import dev.inmo.plaguposter.posts.models.*
|
||||
|
||||
interface WritePostsRepo : WriteCRUDRepo<RegisteredPost, PostId, NewPost>
|
||||
Reference in New Issue
Block a user