package com.yuchen.saas.park.api.entity.property;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.nest.springwrap.core.tenant.mp.TenantEntity;

import javax.validation.constraints.NotNull;
import java.util.List;

@Data
@TableName("property_buildings")
@ApiModel(value = "楼栋信息", description = "楼栋信息")
public class PropertyBuildings extends TenantEntity  {

    /**
     * id
     */
    @ApiModelProperty(value = "楼栋id")
    private Long id;

    /**
     * 园区id
     */
    @NotNull(message = "园区不能为空")
    @ApiModelProperty(value = "园区id")
    private Long parkId;
    /**
     * 楼栋号
     */
    @NotNull(message = "楼栋号不能为空")
    @ApiModelProperty(value = "楼栋号")
    private String buildingName;
    /**
     * 资源代码
     */
    @ApiModelProperty(value = "资源代码")
    private String resourceCode;
    /**
     * 楼层数
     */
    @ApiModelProperty(value = "楼层数")
    private Integer floorNum;
    /**
     * 房间数
     */
    @ApiModelProperty(value = "房间数")
    private Integer roomNum;
    /**
     * HeightTypeEnum
     * 楼栋类型：1-底层、2-中层、3-中高层、4-高层
     */
    @NotNull(message = "楼栋类型不能为空")
    @ApiModelProperty(value = "楼栋类型：1-底层、2-中层、3-中高层、4-高层")
    private Integer heightType;
    /**
     * UseTypeEnum
     * 用途类型：1-住宅、2-商宅、3-办公楼、4-厂房、99-其他
     */
    //@NotNull(message = "用途类型不能为空")
    @ApiModelProperty(value = "用途类型：1-住宅、2-商宅、3-办公楼、4-厂房、99-其他")
    private Integer useType;
    /**
     * TowardTypeEnum
     * 朝向类型：1-朝南、2-朝北、3-朝西、4-朝东、5-东南、6-西南、7-东北、8-西北
     */
    @NotNull(message = "朝向类型不能为空")
    @ApiModelProperty(value = "朝向类型：1-朝南、2-朝北、3-朝西、4-朝东、5-东南、6-西南、7-东北、8-西北")
    private Integer towardType;
    /**
     * 楼栋管家
     */
    @ApiModelProperty(value = "楼栋管家")
    private String buildingManager;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    private String phone;
    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注信息")
    private String remark;

    @ApiModelProperty(value = "建筑省市区code")
    private String areaCode;

    @ApiModelProperty(value = "省市区名")
    private String areaName;

    @ApiModelProperty(value = "详细地址")
    private String address;

    @ApiModelProperty(value = "产权性质")
    private String propertyRightNature;

    @ApiModelProperty(value = "不动产编号")
    private String propertyNum;

    @ApiModelProperty(value = "产权编号")
    private String propertyRightNum;

    @ApiModelProperty(value = "建筑/楼栋面积 单位 平方米")
    private Double buildingArea;

    @ApiModelProperty(value = "产权面积 单位 平方米")
    private Double propertyRightArea;

    @ApiModelProperty(value = "可租面积 单位 平方米")
    private Double leasableArea;

    @ApiModelProperty(value = "自用面积 单位 平方米")
    private Double selfUseArea;

    @ApiModelProperty(value = "配套面积 单位 平方米")
    private Double facilityArea;

    @ApiModelProperty(value = "车位面积 单位 平方米")
    private Double parkingArea;

    @TableField(exist = false)
    @ApiModelProperty(name = "buildingUnits", value = "建筑单元列表")
    private List<PropertyBuildingUnit> buildingUnits;


    @TableField(exist = false)
    @ApiModelProperty(name = "levels", value = "楼层列表")
    private List<PropertyBuildingsLevel> levels;
    @ApiModelProperty(name = "buildingPhoto", value = "建筑配图")
    private String buildingPhoto;
    @ApiModelProperty(name = "building3dPhoto", value = "建筑3D图")
    private String building3dPhoto;
    @ApiModelProperty(name = "building2dPhoto", value = "建筑2D平面图")
    private String building2dPhoto;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sort;

    @ApiModelProperty(value = "建筑/楼栋编号")
    private Integer buildingNumber;


}
