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