/*
 * ********************************************************************************************************************
 *
 *                      :*$@@%$*:                         ;:                ;;    ;;
 *                    :@@%!  :!@@%:                       %!             ;%%@@%$ =@@@@@@@%;     @%@@@%%%%@@@@@
 *                   :@%;       :$=                       %%$$$%$$         ;$$  ;$@=   !@$
 *                   =@!                                  %!              @ $=;%   !@@@%:      !$$$$$$$$$$$$$$=
 *                   =@*                                  %!              @ $= % %@=   =%@!      %=
 *              *$%%! @@=        ;=$%%%$*:                %!              @ $= % =%%%%%%@$      *%:         =%
 *            %@@!:    !@@@%=$@@@@%!  :*@@$:              %!              @ $= % $*     ;@      @*          :%*
 *          ;@@!          ;!!!;:         ;@%:      =======@%========*     @ $$ % $%*****$@     :@$=*********=@$
 *          $@*   ;@@@%=!:                *@*
 *          =@$    ;;;!=%@@@@=!           =@!
 *           %@$:      =@%: :*@@@*       %@=                    Copyright (c) 2016-2019.  北京上格云技术有限公司
 *            ;%@@$=$@@%*       *@@@$=%@@%;
 *               ::;::             ::;::                                              All rights reserved.
 *
 * ********************************************************************************************************************
 */


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 com.sybotan.service.models.SBaseEntity
import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import javax.persistence.Column
import javax.persistence.Table

/**
 *风管
 *
 * @author jxing
 */
@ApiModel(description = "风管")
@Table(name = "revit.duct")
@JsonIgnoreProperties(ignoreUnknown = true)
class Duct : BaseComponent(){
    /** 名称 */
    @ApiModelProperty(value = "名称")
    @Column(name = "name")
    @JSONField(name = "Name")
    @JsonProperty("Name")
    var name: String? = null

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

    /** 轮廓路径 */
    @ApiModelProperty(value = "轮廓路径")
    @Column(name = "outline")
    @JSONField(name = "OutLine")
    @JsonProperty("OutLine")
    var outline: ArrayList<ArrayList<Point>>? = null

    /** 所连接的连接件id */
    @ApiModelProperty(value = "所连接的连接件id")
    @Column(name = "connected_ids")
    @JSONField(name = "ConnectedIds")
    @JsonProperty("ConnectedIds")
    var connectedIds: ArrayList<String>? = null

    /** 管道系统类型名称 */
    @ApiModelProperty(value = "管道系统类型名称")
    @Column(name = "mep_system_type")
    @JSONField(name = "MepSystemTypeName")
    @JsonProperty("MepSystemTypeName")
    var mepSystemType: String? = null

    /** 形状 Circle|Rectangle|Ellipse */
    @ApiModelProperty(value = "形状 Circle|Rectangle|Ellipse")
    @Column(name = "shape")
    @JSONField(name = "Shape")
    @JsonProperty("Shape")
    var shape: String? = null

    /** 直径；当形状为Circle时有效 */
    @ApiModelProperty(value = "直径；当形状为Circle时有效")
    @Column(name = "diameter")
    @JSONField(name = "Diameter")
    @JsonProperty("Diameter")
    var diameter: Double? = null

    /** 宽度 当形状为Rectangle或者Ellipse */
    @ApiModelProperty(value = "宽度 当形状为Rectangle或者Ellipse")
    @Column(name = "width")
    @JSONField(name = "Width")
    @JsonProperty("Width")
    var width: Double? = null

    /** 高度 当形状为Rectangle或者Ellipse */
    @ApiModelProperty(value = "高度 当形状为Rectangle或者Ellipse")
    @Column(name = "height")
    @JSONField(name = "Height")
    @JsonProperty("Height")
    var height: Double? = null

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