package com.artfess.base.vo;

import com.artfess.base.model.Tree;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 树形vo
 */
@Data
@ApiModel(description = "树形vo ")
public class TreeVo implements Tree {


    /**
     * 主键
     */
    @ApiModelProperty(name = "id", notes = "id")
    protected String id;

    /**
     * name_
     */
    @ApiModelProperty(name = "name", notes = "名称")
    protected String name;

    @ApiModelProperty(value = "点位类别【字典】（1：固定点位，2：临时点位）")
    @TableField("CATEGORY_")
    private String category;

    @ApiModelProperty(value = "点位类型【字典】（1：路面，2：结构物，3：安全设施，4：施工现场，5：土地，6：违章建筑及路产侵占，7：广告牌，8：收费站，9：服务区，10：突发事件，11：环保设施）")
    @TableField("TYPE_")
    private String type;

    @ApiModelProperty(value = "点位级别【字典】（1：普通，2：重点）")
    private Integer pointLevel;

    @ApiModelProperty(value = "巡检周期【字典】（1：每天巡检一次，2：每两天巡检一次），3：每三天巡检一次，4：每四天巡检一次，5：每五天巡检一次，6：每周巡检一次，7：每月巡检一次，8：每两月巡检一次，9：每三月巡检一次，10：每季度巡查一次，11：每半年巡检一次，12：每年巡检一次")
    private Integer inspectionCycle;

    @ApiModelProperty(value = "具体内容【字典】（更具点位类别联动）")
    private String content;

    @ApiModelProperty(value = "点位桩号")
    private String peg;

    @ApiModelProperty(value = "点位桩号附加")
    private String pegAdd;

    @ApiModelProperty(value = "点位桩号全值（例如：K23+100）")
    private String pegVal;

    @ApiModelProperty(value = "方向")
    private String direction;

    @ApiModelProperty(value = "方向值")
    private String directionValue;

    @ApiModelProperty(value = "经度")
    private Double lng;

    @ApiModelProperty(value = "纬度")
    private Double lat;

    /**
     * prent_id_
     */
    @ApiModelProperty(name = "parentId", notes = "父节点id")
    protected String parentId;

    /**
     * prent_id_
     */
    @ApiModelProperty(name = "parentCode", notes = "父节点id")
    protected String parentCode;

    /**
     * code_
     */
    @ApiModelProperty(name = "code", notes = "编码")
    protected String code;

    /**
     * 组织类型（ogn,dept）
     */
    @ApiModelProperty(name = "orgKind", notes = "组织类型（单位：ogn,项目：project）")
    protected String orgKind;

    /**
     * 是否有子节点   否0  是1
     */
    @ApiModelProperty(name = "isIsParent", notes = "是否有子节点   否0  是1")
    protected boolean isIsParent;

    @ApiModelProperty(name = "level")
    protected String level;

    @ApiModelProperty(name = "扩展信息")
    protected String expandInfo;


    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    protected List<TreeVo> children = new ArrayList<TreeVo>();

    @Override
    public String getId() {
        return this.id;
    }

    @Override
    public String getParentId() {
        return this.parentId;
    }

    @Override
    public String getText() {
        return null;
    }

    @Override
    public List getChildren() {
        return this.children;
    }

    @Override
    public void setIsParent(String isParent) {

    }

    @Override
    public void setChildren(List list) {
        this.children = list;
    }

}
