You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.3 KiB
Kotlin

package moe.odango.index.entity
import io.requery.*
import moe.odango.index.utils.EntityHelper
import moe.odango.index.utils.InfoSource
import moe.odango.index.utils.helper
import java.util.*
@Entity
interface Title : Persistable {
@get:Key
val id: UUID
@get:Index
var name: String
@get:ManyToOne
@get:ForeignKey
val anime: Anime
val source: InfoSource
@get:Column(name = "lang")
val language: String?
val type: TitleType
var hidden: Boolean
enum class TitleType {
Synonym,
TitleCard,
Kana,
Short,
Official,
Main;
fun toAniDBString() = when (this) {
Main -> "main"
Synonym -> "syn"
TitleCard -> "card"
Kana -> "kana"
Short -> "short"
Official -> "official"
}
companion object {
fun fromAniDBString(type: String) = when (type) {
"card" -> TitleCard
"official" -> Official
"short" -> Short
"syn" -> Synonym
"kana" -> Kana
"main" -> Main
else -> Synonym
}
}
}
companion object : EntityHelper<TitleEntity> by helper(::TitleEntity, {
setId(UUID.randomUUID())
})
}