forked from SteamWar/SteamWar
Delete event relations when fights and groups are removed
This commit is contained in:
@@ -237,6 +237,7 @@ class EventFight(id: EntityID<Int>) : IntEntity(id), Comparable<EventFight> {
|
|||||||
|
|
||||||
override fun delete() =
|
override fun delete() =
|
||||||
useDb {
|
useDb {
|
||||||
|
EventRelation.deleteRelations(this@EventFight)
|
||||||
super.delete()
|
super.delete()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,10 +159,13 @@ class EventGroup(id: EntityID<Int>) : IntEntity(id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun delete() =
|
override fun delete() =
|
||||||
useDb { super.delete() }
|
useDb {
|
||||||
|
EventRelation.deleteRelations(this@EventGroup)
|
||||||
|
super.delete()
|
||||||
|
}
|
||||||
|
|
||||||
enum class EventGroupType {
|
enum class EventGroupType {
|
||||||
GROUP_STAGE,
|
GROUP_STAGE,
|
||||||
ELIMINATION_STAGE
|
ELIMINATION_STAGE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,8 +24,10 @@ import org.jetbrains.exposed.v1.core.and
|
|||||||
import org.jetbrains.exposed.v1.core.dao.id.EntityID
|
import org.jetbrains.exposed.v1.core.dao.id.EntityID
|
||||||
import org.jetbrains.exposed.v1.core.dao.id.IntIdTable
|
import org.jetbrains.exposed.v1.core.dao.id.IntIdTable
|
||||||
import org.jetbrains.exposed.v1.core.eq
|
import org.jetbrains.exposed.v1.core.eq
|
||||||
|
import org.jetbrains.exposed.v1.core.or
|
||||||
import org.jetbrains.exposed.v1.dao.IntEntity
|
import org.jetbrains.exposed.v1.dao.IntEntity
|
||||||
import org.jetbrains.exposed.v1.dao.IntEntityClass
|
import org.jetbrains.exposed.v1.dao.IntEntityClass
|
||||||
|
import org.jetbrains.exposed.v1.jdbc.deleteWhere
|
||||||
import org.jetbrains.exposed.v1.jdbc.select
|
import org.jetbrains.exposed.v1.jdbc.select
|
||||||
|
|
||||||
object EventRelationTable : IntIdTable("EventRelation") {
|
object EventRelationTable : IntIdTable("EventRelation") {
|
||||||
@@ -59,6 +61,23 @@ class EventRelation(id: EntityID<Int>) : IntEntity(id) {
|
|||||||
fun getGroupRelations(group: EventGroup) =
|
fun getGroupRelations(group: EventGroup) =
|
||||||
useDb { find { (EventRelationTable.fromId eq group.id.value) and (EventRelationTable.fromType eq FromType.GROUP) }.toList() }
|
useDb { find { (EventRelationTable.fromId eq group.id.value) and (EventRelationTable.fromType eq FromType.GROUP) }.toList() }
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun deleteRelations(fight: EventFight) =
|
||||||
|
useDb {
|
||||||
|
EventRelationTable.deleteWhere {
|
||||||
|
(EventRelationTable.fightId eq fight.id) or
|
||||||
|
((EventRelationTable.fromId eq fight.id.value) and (EventRelationTable.fromType eq FromType.FIGHT))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun deleteRelations(group: EventGroup) =
|
||||||
|
useDb {
|
||||||
|
EventRelationTable.deleteWhere {
|
||||||
|
(EventRelationTable.fromId eq group.id.value) and (EventRelationTable.fromType eq FromType.GROUP)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun create(fight: EventFight, fightTeam: FightTeam, fromType: FromType, fromId: Int, fromPlace: Int) =
|
fun create(fight: EventFight, fightTeam: FightTeam, fromType: FromType, fromId: Int, fromPlace: Int) =
|
||||||
useDb {
|
useDb {
|
||||||
@@ -159,4 +178,4 @@ class EventRelation(id: EntityID<Int>) : IntEntity(id) {
|
|||||||
enum class FromType {
|
enum class FromType {
|
||||||
FIGHT, GROUP
|
FIGHT, GROUP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user