some change on LiveStatus logics

- add LiveStatus table
- in ChzzkHandler.kt (UserHandler), _isActive variable to bind LiveStatusService
This commit is contained in:
dalbodeule
2024-08-03 23:44:10 +09:00
parent d323bf28db
commit 1be1b69425
5 changed files with 57 additions and 3 deletions

View File

@@ -31,7 +31,8 @@ object Connector {
DailyCounters,
PersonalCounters,
Managers,
TimerConfigs
TimerConfigs,
LiveStatuses
)
transaction {

View File

@@ -0,0 +1,19 @@
package space.mori.chzzk_bot.common.models
import org.jetbrains.exposed.dao.IntEntity
import org.jetbrains.exposed.dao.IntEntityClass
import org.jetbrains.exposed.dao.id.EntityID
import org.jetbrains.exposed.dao.id.IntIdTable
import org.jetbrains.exposed.sql.ReferenceOption
object LiveStatuses: IntIdTable("live_statuses") {
val user = reference("user", Users, onDelete = ReferenceOption.CASCADE)
val status = bool("status")
}
class LiveStatus(id: EntityID<Int>) : IntEntity(id) {
companion object : IntEntityClass<LiveStatus>(LiveStatuses)
var user by User referencedOn LiveStatuses.user
var status by LiveStatuses.status
}

View File

@@ -0,0 +1,30 @@
package space.mori.chzzk_bot.common.services
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.transactions.transaction
import space.mori.chzzk_bot.common.models.LiveStatus
import space.mori.chzzk_bot.common.models.LiveStatuses
import space.mori.chzzk_bot.common.models.User
object LiveStatusService {
fun updateOrCreate(user: User, status: Boolean): LiveStatus {
return transaction {
return@transaction when(val liveStatus = LiveStatus.find(LiveStatuses.user eq user.id).firstOrNull()) {
null -> LiveStatus.new {
this.user = user
this.status = status
}
else -> {
liveStatus.status = status
liveStatus
}
}
}
}
fun getLiveStatus(user: User): LiveStatus? {
return transaction {
LiveStatus.find(LiveStatuses.user eq user.id).firstOrNull()
}
}
}