Refactor EventRelation, EventGroup, and EventFight classes: ensure database operations are enclosed in useDb, add default values for group points, and override delete methods. Update Gradle build script to include lombok dependencies.

Signed-off-by: Chaoscaot <max@maxsp.de>
This commit is contained in:
2025-11-08 22:44:22 +01:00
parent ebc6f50261
commit 5d36393643
4 changed files with 23 additions and 6 deletions
@@ -150,7 +150,7 @@ class EventFight(id: EntityID<Int>) : IntEntity(id), Comparable<EventFight> {
var spielmodus by EventFightTable.gamemode
var map by EventFightTable.map
var groupId by EventFightTable.groupId
val group by lazy { Optional.ofNullable(groupId).map { EventGroup[it] } }
val group by lazy { useDb { Optional.ofNullable(groupId).map { EventGroup[it] } } }
var spectatePort by EventFightTable.spectatePort
private var fightStat by EventFightTable.fight.transform({ it?.let { EntityID(it, EventFightTable) } }, { it?.value })
var fight: Int?
@@ -191,4 +191,8 @@ class EventFight(id: EntityID<Int>) : IntEntity(id), Comparable<EventFight> {
this@EventFight.teamRed = teamRed
this@EventFight.spectatePort = spectatePort
}
override fun delete() = useDb {
super.delete()
}
}
@@ -31,9 +31,9 @@ object EventGroupTable : IntIdTable("EventGroup", "Id") {
val event = reference("EventID", EventTable)
val name = varchar("Name", 64)
val type = enumeration("Type", EventGroup.EventGroupType::class)
val pointsPerWin = integer("PointsPerWin")
val pointsPerLoss = integer("PointsPerLoss")
val pointsPerDraw = integer("PointsPerDraw")
val pointsPerWin = integer("PointsPerWin").default(3)
val pointsPerLoss = integer("PointsPerLoss").default(0)
val pointsPerDraw = integer("PointsPerDraw").default(1)
}
class EventGroup(id: EntityID<Int>) : IntEntity(id) {
@@ -144,6 +144,8 @@ class EventGroup(id: EntityID<Int>) : IntEntity(id) {
this@EventGroup.pointsPerDraw = pointsPerDraw
}
override fun delete() = useDb { super.delete() }
enum class EventGroupType {
GROUP_STAGE,
ELIMINATION_STAGE
@@ -89,7 +89,7 @@ class EventRelation(id: EntityID<Int>) : IntEntity(id) {
fromId = value!!
}
val fromFight: EventFight?
get() = fromFightId?.let { EventFight[it] }
get() = fromFightId?.let { useDb { EventFight[it] } }
var fromGroupId: Int?
get() = if (fromType == FromType.GROUP) fromId else null
set(value) = useDb {
@@ -97,7 +97,7 @@ class EventRelation(id: EntityID<Int>) : IntEntity(id) {
fromId = value!!
}
val fromGroup: EventGroup?
get() = fromGroupId?.let { EventGroup[it] }
get() = fromGroupId?.let { useDb { EventGroup[it] } }
var fromPlace by EventRelationTable.fromPlace
private set
@@ -136,6 +136,10 @@ class EventRelation(id: EntityID<Int>) : IntEntity(id) {
return true
}
override fun delete() = useDb {
super.delete()
}
enum class FightTeam {
BLUE, RED
}
+7
View File
@@ -64,4 +64,11 @@ sourceSets {
exclude("**/*.java", "**/*.kt")
}
}
}
dependencies {
annotationProcessor libs.lombok
compileOnly libs.lombok
testCompileOnly libs.lombok
testAnnotationProcessor libs.lombok
}