66 lines
2.0 KiB
Kotlin
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
|
|
)
|
|
|
|
}
|