sicamp-helper/src/main/kotlin/ru/sicamp/sicamphelper/model/info/UserInfo.kt

48 lines
1.3 KiB
Kotlin

package ru.sicamp.sicamphelper.model.info
import ru.sicamp.sicamphelper.db.entity.User
import ru.sicamp.sicamphelper.db.table.Users
data class UserInfo(
override val id: Long,
override val type: Type,
var login: String,
var name: String,
var supervisor: EntityRef?,
var tgId: Long?,
var tgUsername: String?,
var role: Users.Role,
var group: EntityRef,
var sex: Users.Sex,
var age: Int,
var enabled: Boolean,
) : Info() {
companion object {
fun from(user: User?) = user?.let {
UserInfo(
user.id.value,
Type.USER,
user.login,
user.name,
user.supervisor?.let {
EntityRef(
type = Type.USER,
id = it.id.value,
name = it.name
)
},
user.tgId,
user.tgUsername,
user.role,
EntityRef(
type = Type.GROUP,
id = user.group.id.value,
name = user.group.name
),
user.sex,
user.age,
user.enabled
)
}
}
}