Anibus 47a01f17cd - Add addon requirements
- Add config to reload mods
2025-06-01 20:10:54 +03:00

66 lines
2.0 KiB
Kotlin

package com.dowstats.data.entities
import com.dowstats.data.dto.controllers.building.AddonRequirementDto
import com.dowstats.data.dto.controllers.building.BuildingAddonDto
import com.dowstats.data.dto.controllers.building.BuildingAddonShortDto
import com.fasterxml.jackson.annotation.JsonIgnore
import jakarta.persistence.*
@Entity
@Table(name = "building_addons")
class BuildingAddon {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Long? = null
@ManyToOne
@JoinColumn(name = "building_id", nullable = false)
@JsonIgnore
var building: Building? = null
var name: String? = null
var description: String? = null
var filename: String? = null
var addonCostRequisition: Double? = null
var addonCostPower: Double? = null
var addonCostPopulation: Double? = null
var addonCostFaith: Double? = null
var addonCostSouls: Double? = null
var addonCostTime: Int? = null
@OneToMany(mappedBy = "addon", cascade = [CascadeType.ALL])
var addonModifiers: MutableSet<AddonModifiers>? = null
@OneToMany(mappedBy = "addon", cascade = [CascadeType.ALL])
var addonRequirements: MutableSet<AddonRequirements>? = null
var icon: String? = null
var modId: Long? = null
fun toDto(addonRequirementDto: AddonRequirementDto?): BuildingAddonDto = BuildingAddonDto(
id = id,
name = name,
description = description,
filename = filename,
addonCostRequisition = addonCostRequisition,
addonCostPower = addonCostPower,
addonCostPopulation = addonCostPopulation,
addonCostFaith = addonCostFaith,
addonCostSouls = addonCostSouls,
addonCostTime = addonCostTime,
addonModifiers = addonModifiers?.map { it.toDto() }?.toSet() ?: emptySet(),
addonRequirement = addonRequirementDto,
icon = icon
)
fun toShortDto(): BuildingAddonShortDto = BuildingAddonShortDto(
id = id,
buildingId = building?.id,
name = name,
icon = icon
)
}