package cc.essaenko.modules.admin import kotlinx.serialization.Serializable import org.ktorm.entity.Entity import org.ktorm.schema.* import java.time.LocalDateTime interface AdminEntity : Entity { companion object : Entity.Factory() var id: Long var username: String var password: String var createdAt: LocalDateTime var lastLoginAt: LocalDateTime? } @Serializable data class AdminDTO( val id: Long, val username: String, @Serializable(with = JavaLocalDateTimeSerializer::class) val createdAt: LocalDateTime, ) object AdminUsers : Table("t_admins") { val id = long("id").primaryKey().bindTo { it.id } val username = varchar("username").bindTo { it.username } val password = varchar("password_hash").bindTo { it.password } val createdAt = datetime("created_at").bindTo { it.createdAt } val lastLoginAt = datetime("last_login_at").bindTo { it.lastLoginAt } }