full reborn
This commit is contained in:
18
features/roles/manager/common/build.gradle
Normal file
18
features/roles/manager/common/build.gradle
Normal file
@@ -0,0 +1,18 @@
|
||||
plugins {
|
||||
id "org.jetbrains.kotlin.multiplatform"
|
||||
id "org.jetbrains.kotlin.plugin.serialization"
|
||||
id "com.android.library"
|
||||
}
|
||||
|
||||
apply from: "$mppProjectWithSerializationPresetPath"
|
||||
|
||||
kotlin {
|
||||
sourceSets {
|
||||
commonMain {
|
||||
dependencies {
|
||||
api project(":postssystem.features.common.common")
|
||||
api project(":postssystem.features.roles.common")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,32 @@
|
||||
package dev.inmo.postssystem.features.roles.manager.common
|
||||
|
||||
import dev.inmo.postssystem.features.roles.common.UserRole
|
||||
import dev.inmo.postssystem.features.roles.common.UserRoleSerializer
|
||||
import dev.inmo.micro_utils.serialization.typed_serializer.TypedSerializer
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable(RolesManagerRoleSerializer::class)
|
||||
interface RolesManagerRole : UserRole {
|
||||
companion object {
|
||||
fun serializer() = RolesManagerRoleSerializer
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
object GeneralRolesManagerRole : RolesManagerRole {
|
||||
override fun toString(): String = "GeneralRolesManagerRole"
|
||||
}
|
||||
|
||||
private const val KEY = "roles_manager"
|
||||
|
||||
object RolesManagerRoleSerializer : TypedSerializer<RolesManagerRole>(
|
||||
RolesManagerRole::class,
|
||||
mapOf(
|
||||
"${KEY}_general" to GeneralRolesManagerRole.serializer()
|
||||
)
|
||||
) {
|
||||
init {
|
||||
UserRoleSerializer.includeSerializer(KEY, RolesManagerRoleSerializer)
|
||||
serializers.forEach { (k, v) -> UserRoleSerializer.includeSerializer(k, v) }
|
||||
}
|
||||
}
|
@@ -0,0 +1,16 @@
|
||||
package dev.inmo.postssystem.features.roles.manager.common
|
||||
|
||||
import dev.inmo.postssystem.features.common.common.default
|
||||
import dev.inmo.postssystem.features.roles.common.UsersRolesStorage
|
||||
import dev.inmo.postssystem.features.roles.common.keyvalue.*
|
||||
import kotlinx.serialization.StringFormat
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
class RolesManagerRoleStorage(
|
||||
keyValuesRepo: KeyValuesUsersRolesOriginalRepo,
|
||||
format: StringFormat = Json.default
|
||||
) : UsersRolesStorage<RolesManagerRole>, KeyValueUsersRolesStorage<RolesManagerRole>(
|
||||
keyValuesRepo,
|
||||
RolesManagerRole.serializer(),
|
||||
format
|
||||
)
|
@@ -0,0 +1 @@
|
||||
<manifest package="dev.inmo.postssystem.features.roles.manager.common"/>
|
Reference in New Issue
Block a user