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