package cn.sagacloud.server.algorithm.models.jsonAnalyzer

import cn.sagacloud.server.algorithm.models.entities.*
import cn.sagacloud.server.algorithm.models.entities.Unit
import com.alibaba.fastjson.annotation.JSONField
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonProperty

/**
 *
 *
 * @author jxing
 */

class AllComponents{

    @JSONField(name = "Units")
    @JsonProperty("Units")
    val units : ArrayList<Unit>? = null

    @JSONField(name = "BoundarySegments")
    @JsonProperty("BoundarySegments")
    val boundarySegments : ArrayList<BoundarySegment>? = null

    @JSONField(name = "Pipes")
    @JsonProperty("Pipes")
    val pipes : ArrayList<Pipe>? = null

    @JSONField(name = "FlexPipes")
    @JsonProperty("FlexPipes")
    val flexPipes : ArrayList<Pipe>? = null

    @JSONField(name = "Connectors")
    @JsonProperty("Connectors")
    val connectors : ArrayList<Connector>? = null

    @JSONField(name = "Ducts")
    @JsonProperty("Ducts")
    val ducts : ArrayList<Duct>? = null

    @JSONField(name = "FlexDucts")
    @JsonProperty("FlexDucts")
    val flexDucts : ArrayList<Duct>? = null

    @JSONField(name = "Equipments")
    @JsonProperty("Equipments")
    val equipments : ArrayList<Equipment>? = null

    @JSONField(name = "EquipParts")
    @JsonProperty("EquipParts")
    val equipParts : ArrayList<EquipPart>? = null

    @JSONField(name = "Others")
    @JsonProperty("Others")
    val others : ArrayList<Other>? = null

    @JSONField(name = "JoinObjects")
    @JsonProperty("JoinObjects")
    val joinObjects : ArrayList<JoinObject>? = null

    @JSONField(name = "Levels")
    @JsonProperty("Levels")
    val levels : ArrayList<Level>? = null

    @JSONField(name = "Grids")
    @JsonProperty("Grids")
    val grids : ArrayList<Grid>? = null

    @JSONField(name = "Spaces")
    @JsonProperty("Spaces")
    var spaces : ArrayList<Space>? = null

    @JSONField(name = "Walls")
    @JsonProperty("Walls")
    var walls : ArrayList<Wall>? = null

    @JSONField(name = "VirtualWalls")
    @JsonProperty("VirtualWalls")
    var virtualWalls : ArrayList<VirtualWall>? = null

    @JSONField(name = "Columns")
    @JsonProperty("Columns")
    var columns : ArrayList<Column>? = null

    @JSONField(name = "Doors")
    @JsonProperty("Doors")
    var doors : ArrayList<Door>? = null

    @JSONField(name = "Windows")
    @JsonProperty("Windows")
    var windows : ArrayList<Window>? = null

//    @JSONField(name = "Rooms")
//    @JsonProperty("Rooms")
//    var rooms : ArrayList<Room>? = null

    //---------------------------------------------------------
    //12.20临时演示方案，room当作space
    @JSONField(name = "Rooms")
    @JsonProperty("Rooms")
    var rooms : ArrayList<Space>? = null
}