package cn.sagacloud.server.algorithm.models.entities

import cn.sagacloud.server.algorithm.models.jsonAnalyzer.Location
import cn.sagacloud.server.algorithm.models.jsonAnalyzer.Parameter
import cn.sagacloud.server.algorithm.models.jsonAnalyzer.Point
import com.alibaba.fastjson.annotation.JSONField
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonProperty
import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import javax.persistence.Column
import javax.persistence.Table

/**
 * 房间
 * @author  Cainga
 * @date  2020/12/4 10:05
 */
@ApiModel(description = "房间")
@Table(name = "revit.room")
@JsonIgnoreProperties(ignoreUnknown = true)
class Room : BaseComponent(){

    /** 轮廓线段 */
//   @Schema(description = "轮廓线段")
    @Column(name = "boundary_segments")
    @JSONField(name = "BoundarySegment")
    @JsonProperty("BoundarySegments")
    var boundarySegment: ArrayList<ArrayList<String>>? = null

    /** 空间高度 */
//   @Schema(description = "空间高度")
    @Column(name = "height")
    @JSONField(name = "Height")
    @JsonProperty("Height")
    var height: Double? = null

    /** 定位点 */
//   @Schema(description = "定位点")
    @Column(name = "location")
    @JSONField(name = "Location")
    @JsonProperty("Location")
    var location: Location? = null

    /** 空间轮廓 */
//   @Schema(description = "空间轮廓")
    @Column(name = "outline")
    @JSONField(name = "Outline")
    @JsonProperty("Outline")
    var outline: ArrayList<ArrayList<Point>>? = null

//    /** 对应Revit模型id */
//   @Schema(description = "对应Revit模型id")
//    @Column(name = "source_id")
//    var sourceId: String? = null

    /** 参数列表 */
//   @Schema(description = "参数列表")
    @Column(name = "parameters")
    @JSONField(name = "Parameters")
    @JsonProperty("Parameters")
    var parameters: ArrayList<Parameter>? = null


//    /** revit模型中的id */
//   @Schema(description = "revit模型中的id")
//    @Column(name = "revit_id")
//    var revitId: String? = null

    /** 名称 */
//   @Schema(description = "名称")
    @Column(name = "name")
    @JSONField(name = "Name")
    @JsonProperty("Name")
    var name: String? = null

    /** 本地名称 */
//   @Schema(description = "本地名称")
    @Column(name = "local_name")
    @JSONField(name = "LocalName")
    @JsonProperty("LocalName")
    var localName: String? = null

    /** 本地编码 */
    @ApiModelProperty(value = "本地编码")
    @JSONField(name = "LocalId")
    @Column(name = "local_id")
    @JsonProperty("LocalId")
    var localId: String? = null

    /** 万达专用信息点 */
    @ApiModelProperty(value = "万达专用信息点")
    @Column(name = "wd_room_func_id")
    @JSONField(name = "WDRoomFuncID")
    @JsonProperty("WDRoomFuncID")
    var wDRoomFuncID: String? = null


    /** 万达专用信息点 */
    @ApiModelProperty(value = "万达专用信息点")
    @Column(name = "wd_room_func_name")
    @JSONField(name = "WDRoomFuncName")
    @JsonProperty("WDRoomFuncName")
    var wDRoomFuncName : String? = null

}