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 by helper(::TitleEntity, { setId(UUID.randomUUID()) }) }