package com.cool.bang.modules.business.domain;

import com.cool.bang.common.base.BaseDomain;
import com.cool.bang.common.constant.enums.StatusType;
import com.cool.bang.modules.system.domain.po.Resource;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 房屋信息
 *
 * @author Sy
 * 2024-10-22 09:20
 */
public class LpbHouse extends BaseDomain {

    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 小区主键
     */
    private Long communityId;

    /**
     * 楼幢主键
     */
    private Long buildingId;

    /**
     * 单元主键
     */
    private Long unitId;

    /**
     * 房屋编号
     */
    private String houseNumber;

    /**
     * 房屋名称
     */
    private String houseName;

    /**
     * 门店名称
     */
    private String storeName;

    /**
     * 楼幢名称
     */
    private String buildingName;

    /**
     * 单元名称
     */
    private String unitName;

    /**
     * 房屋地址
     */
    private String houseAddress;

    /**
     * 房屋性质 0其他 1住宅 2商业 3商住 4商业、办公
     */
    private Integer houseUse;

    /**
     * 房屋类型 1平层户型 2复式户型 3LOFT户型 4跃层户型
     */
    private Integer houseType;

    /**
     * 户型
     */
    private String roomType;

    /**
     * 房屋价格 元/月
     */
    private BigDecimal price;

    /**
     * 总楼层
     */
    private Integer floorTotal;

    /**
     * 所在楼层
     */
    private Integer floor;

    /**
     * 房屋朝向 1东 2西 3南 4北
     */
    private Integer houseFace;

    /**
     * 建筑面积
     */
    private BigDecimal buildArea;

    /**
     * 套内面积
     */
    private BigDecimal ownArea;

    /**
     * 房屋室
     */
    private Integer houseRoom;

    /**
     * 房屋厅
     */
    private Integer houseLiving;

    /**
     * 房屋卫
     */
    private Integer houseToilet;

    /**
     * 装修情况 1精装 2简装 3毛坯
     */
    private Integer decoration;

    /**
     * 基础设施 1无线网络 2卫浴设施 3天然气 4暖气
     */
    private String infrastructure;

    /**
     * 家具家电 1床 2沙发茶几 3餐桌餐椅 4厨具 5衣橱衣柜 6洗衣机 7冰箱 8电视 9空调
     */
    private String furniture;

    /**
     * 优选短租 1是 0否
     */
    private Integer preferredState;

    /**
     * 出租状态（1:未租 2:已租）
     */
    private Integer state;

    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date createDate;

    /**
     * 修改日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date updateDate;

    /**
     * 删除标识（0:无效 1:正常）
     */
    private Integer delFlag;

    //非数据库字段
    /**
     * 是否收藏（1:是 2:否）
     */
    private Integer collectType;
    /**
     * 微信id
     */
    private String openid;
    /** 资源 */
    private List<Resource> resources;

    @Override
    public void insertConfigure() {
        super.insertConfigure();
        this.delFlag = StatusType.ENABLE.ordinal();
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getPreferredState() {
        return preferredState;
    }

    public void setPreferredState(Integer preferredState) {
        this.preferredState = preferredState;
    }

    public List<Resource> getResources() {
        return resources;
    }

    public void setResources(List<Resource> resources) {
        this.resources = resources;
    }

    public Integer getCollectType() {
        return collectType;
    }

    public void setCollectType(Integer collectType) {
        this.collectType = collectType;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getHouseAddress() {
        return houseAddress;
    }

    public void setHouseAddress(String houseAddress) {
        this.houseAddress = houseAddress;
    }

    public Long getCommunityId() {
        return communityId;
    }

    public void setCommunityId(Long communityId) {
        this.communityId = communityId;
    }

    public Long getBuildingId() {
        return buildingId;
    }

    public void setBuildingId(Long buildingId) {
        this.buildingId = buildingId;
    }

    public Long getUnitId() {
        return unitId;
    }

    public void setUnitId(Long unitId) {
        this.unitId = unitId;
    }

    public String getHouseNumber() {
        return houseNumber;
    }

    public void setHouseNumber(String houseNumber) {
        this.houseNumber = houseNumber;
    }

    public String getHouseName() {
        return houseName;
    }

    public void setHouseName(String houseName) {
        this.houseName = houseName;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public String getBuildingName() {
        return buildingName;
    }

    public void setBuildingName(String buildingName) {
        this.buildingName = buildingName;
    }

    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    public Integer getHouseUse() {
        return houseUse;
    }

    public void setHouseUse(Integer houseUse) {
        this.houseUse = houseUse;
    }

    public Integer getHouseType() {
        return houseType;
    }

    public void setHouseType(Integer houseType) {
        this.houseType = houseType;
    }

    public String getRoomType() {
        return roomType;
    }

    public void setRoomType(String roomType) {
        this.roomType = roomType;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public Integer getFloorTotal() {
        return floorTotal;
    }

    public void setFloorTotal(Integer floorTotal) {
        this.floorTotal = floorTotal;
    }

    public Integer getFloor() {
        return floor;
    }

    public void setFloor(Integer floor) {
        this.floor = floor;
    }

    public Integer getHouseFace() {
        return houseFace;
    }

    public void setHouseFace(Integer houseFace) {
        this.houseFace = houseFace;
    }

    public BigDecimal getBuildArea() {
        return buildArea;
    }

    public void setBuildArea(BigDecimal buildArea) {
        this.buildArea = buildArea;
    }

    public BigDecimal getOwnArea() {
        return ownArea;
    }

    public void setOwnArea(BigDecimal ownArea) {
        this.ownArea = ownArea;
    }

    public Integer getHouseRoom() {
        return houseRoom;
    }

    public void setHouseRoom(Integer houseRoom) {
        this.houseRoom = houseRoom;
    }

    public Integer getHouseLiving() {
        return houseLiving;
    }

    public void setHouseLiving(Integer houseLiving) {
        this.houseLiving = houseLiving;
    }

    public Integer getHouseToilet() {
        return houseToilet;
    }

    public void setHouseToilet(Integer houseToilet) {
        this.houseToilet = houseToilet;
    }

    public Integer getDecoration() {
        return decoration;
    }

    public void setDecoration(Integer decoration) {
        this.decoration = decoration;
    }

    public String getInfrastructure() {
        return infrastructure;
    }

    public void setInfrastructure(String infrastructure) {
        this.infrastructure = infrastructure;
    }

    public String getFurniture() {
        return furniture;
    }

    public void setFurniture(String furniture) {
        this.furniture = furniture;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }
}
