31 lines
977 B
Kotlin
31 lines
977 B
Kotlin
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<AdminEntity> {
|
|
companion object : Entity.Factory<AdminEntity>()
|
|
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<AdminEntity>("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 }
|
|
} |