package com.huiju.estateagents.entity;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 项目表
 * </p>
 *
 * @author jobob
 * @since 2019-05-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class TaBuilding implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 项目ID
     */
    @TableId(value = "building_id", type = IdType.UUID)
    private String buildingId;

    /**
     * 项目名称
     */
    private String buildingName;

    /**
     * 别名
     */
    private String name;

    /**
     * 价格
     */
    private String price;

    /**
     * 开盘时间
     */
    private String openingDate;

    /**
     * 项目地址
     */
    private String address;

    /**
     * 项目坐标
     */
    private String coordinate;

    /**
     * 物业类型
     */
    private String propertyType;

    /**
     * 最近动态
     */
    private String dynamic;

    /**
     * 电话
     */
    private String tel;

    /**
     * 创建时间
     */
    private LocalDateTime createDate;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 编号
     */
    private String code;

    /**
     * 发布时间
     */
    private LocalDateTime releaseTime;

    /**
     * 销售状态
     */
    private String marketStatus;

    /**
     * 备注
     */
    private String remark;

    /**
     * 显示顺序
     */
    @TableField(strategy = FieldStrategy.IGNORED)
    private Integer orderNo;

    /**
     * 楼盘优惠信息
     */
    private String discount;

    /**
     * 是否主推楼盘
     */
    private Integer isMain;

    /**
     * 楼盘状态
     */
    private String buildingStatus;

    /**
     * 楼盘区域
     */
    private String buildingArea;

    /**
     * 楼盘地图图片
     */
    private String mapImg;

    /**
     * 海报底图
     */
    private String poster;

    private String buildingTransport;

    private String buildingMall;

    private String buildingEdu;

    private String buildingHospital;

    private String buildingBank;

    private String buildingRestaurant;

    private String greeningRate;

    private String buildingType;

    private String serviceCompany;

    private String serviceFee;

    private String decoration;

    private LocalDateTime receivedDate;

    private String preSalePermit;

    private Integer rightsYear;

    private Integer familyNum;

    private String parkingRate;

    private String volumeRate;

    private Integer favorNum;
    private Integer pvNum;
    private Integer saveNum;
    private Integer shareNum;

    /**
     * 公司Id
     */
    private Integer orgId;

    /**
     * 视频url
     */
    private String videoUrl;

    /**
     * 地图范围
     */
    private Integer mapScope;

    /**
     * 开发商
     */
    private String propertyDeveloper;

    /**
     * 楼栋总数
     */
    private Integer buildingNum;

    /**
     * 备案名
     */
    private String recordName;

    /**
     * 地图数据
     */
    @TableField(exist = false)
    private String mapJson;

    /**
     * 视频封面
     */
    @TableField(exist = false)
    private List<TaBuildingImg> videoImage;

    /**
     * 图片
     */
    @TableField(exist = false)
    private List<TaBuildingImg> BuildingImg;

    /**
     * 标签
     */
    @TableField(exist = false)
    private List<TaBuildingTag> BuildingTag;

    /**
     * 户型
     */
    @TableField(exist = false)
    private List<TaBuildingApartment> buildingApartment;

    /**
     * 来访记录
     */
//    @TableField(exist = false)
//    private List<TaVisit> visits;

    @TableField(exist = false)
    private IPage<TaUv> uvList;

    @TableField(exist = false)
    private IPage<TaShare> shareList;


    @TableField(exist = false)
    private List<Map<String, Object>> consultants;

    private Integer cityId;

    @TableField(exist = false)
    private Integer isSave;

    @TableField(exist = false)
    private List<TaBuildingProjectType> buildingProjectType;

    @TableField(exist = false)
    private List<TaPoster> posters;

    @TableField(exist = false)
    private List<TaShareContent> shareContents;

    /**
     * 助力活动
     */
    @TableField(exist = false)
    private List<HelpActivity> helpActivityList;

    /**
     * 拼团活动
     */
    @TableField(exist = false)
    private List<TaShareActivity> shareActivityList;

    /**
     * 拼团活动
     */
    @TableField(exist = false)
    private List<TaLiveActivity> liveActivityList;

    /**
     * 列表图
     */
    @TableField(exist = false)
    private List<TaBuildingImg> buildingListImg;

    /**
     * 列表封面图
     */
    @TableField(exist = false)
    private String listPoster;

    /**
     * 标签列表, 逗哈分隔
     */
    @TableField(exist = false)
    private String tags;

    /**
     * 全景图
     */
    @TableField(exist = false)
    private List<TaBuildingPanorama> panoramaList;

    /**
     * 户型类型id
     */
    private Integer buildingTypeId;

    /**
     * 价格类型
     */
    @TableField(exist = false)
    private String priceType;

    /**
     * 项目亮点
     */
    private String highlights;

    /**
     * 项目公众号链接
     */
    private String highlightsLink;

    /**
     * 项目亮点类型
     */
    private String highlightsType;

    /**
     * 项目亮点封面
     */
    @TableField(strategy = FieldStrategy.IGNORED)
    private String highlightsCover;

    @TableField(exist = false)
    private List<TaSalesBatch> salesBatch;

    @TableField(exist = false)
    private List<ExtendContent> extendContent;
}
