package cn.com.countrygarden.bi.main.model.phoenix;

import cn.com.countrygarden.bi.main.util.DateDeserializer;
import cn.com.countrygarden.bi.main.util.DateSerializer;
import cn.com.countrygarden.bi.main.util.DateTimeDeserializer;
import cn.com.countrygarden.bi.main.util.DateTimeSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;

@Table(name = "phoenix_sales_on_sale_project")
public class PhoenixSalesOnSaleProject {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    /**
     * 项目
     */
    private String areaname;

    /**
     * 房屋数量
     */
    @Column(name = "room_num")
    private Integer roomNum;

    /**
     * 建筑面积
     */
    @Column(name = "build_area")
    private BigDecimal buildArea;

    /**
     * 套内面积
     */
    @Column(name = "in_area")
    private BigDecimal inArea;

    /**
     * 占地面积(含花园)
     */
    @Column(name = "zd_area")
    private BigDecimal zdArea;

    /**
     * 已发售房屋数量
     */
    @Column(name = "saled_room")
    private Integer saledRoom;

    /**
     * 已发售房屋建筑面积总数
     */
    @Column(name = "saled_build_area")
    private BigDecimal saledBuildArea;

    /**
     * 已发售房屋套内面积总数
     */
    @Column(name = "saled_in_area")
    private BigDecimal saledInArea;

    /**
     * 已发售房屋占地面积(花园)总数
     */
    @Column(name = "saled_zd_area")
    private BigDecimal saledZdArea;

    /**
     * 预售证时间（开盘时间）
     */
    @Column(name = "ht_yszdate")
    @JsonSerialize(using = DateSerializer.class)
    @JsonDeserialize(using = DateDeserializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date htYszdate;

    /**
     * 预计收楼日期
     */
    @JsonSerialize(using = DateSerializer.class)
    @JsonDeserialize(using = DateDeserializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date yjsldate;

    /**
     * @return id
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取项目
     *
     * @return areaname - 项目
     */
    public String getAreaname() {
        return areaname;
    }

    /**
     * 设置项目
     *
     * @param areaname 项目
     */
    public void setAreaname(String areaname) {
        this.areaname = areaname == null ? null : areaname.trim();
    }

    /**
     * 获取房屋数量
     *
     * @return room_num - 房屋数量
     */
    public Integer getRoomNum() {
        return roomNum;
    }

    /**
     * 设置房屋数量
     *
     * @param romeNum 房屋数量
     */
    public void setRoomNum(Integer romeNum) {
        this.roomNum = romeNum;
    }

    /**
     * 获取建筑面积
     *
     * @return build_area - 建筑面积
     */
    public BigDecimal getBuildArea() {
        return buildArea;
    }

    /**
     * 设置建筑面积
     *
     * @param buildArea 建筑面积
     */
    public void setBuildArea(BigDecimal buildArea) {
        this.buildArea = buildArea;
    }

    /**
     * 获取套内面积
     *
     * @return in_area - 套内面积
     */
    public BigDecimal getInArea() {
        return inArea;
    }

    /**
     * 设置套内面积
     *
     * @param inArea 套内面积
     */
    public void setInArea(BigDecimal inArea) {
        this.inArea = inArea;
    }

    /**
     * 获取占地面积(含花园)
     *
     * @return zd_area - 占地面积(含花园)
     */
    public BigDecimal getZdArea() {
        return zdArea;
    }

    /**
     * 设置占地面积(含花园)
     *
     * @param zdArea 占地面积(含花园)
     */
    public void setZdArea(BigDecimal zdArea) {
        this.zdArea = zdArea;
    }

    /**
     * 获取已发售房屋数量
     *
     * @return saled_room - 已发售房屋数量
     */
    public Integer getSaledRoom() {
        return saledRoom;
    }

    /**
     * 设置已发售房屋数量
     *
     * @param saledRoom 已发售房屋数量
     */
    public void setSaledRoom(Integer saledRoom) {
        this.saledRoom = saledRoom;
    }

    /**
     * 获取已发售房屋建筑面积总数
     *
     * @return saled_build_area - 已发售房屋建筑面积总数
     */
    public BigDecimal getSaledBuildArea() {
        return saledBuildArea;
    }

    /**
     * 设置已发售房屋建筑面积总数
     *
     * @param saledBuildArea 已发售房屋建筑面积总数
     */
    public void setSaledBuildArea(BigDecimal saledBuildArea) {
        this.saledBuildArea = saledBuildArea;
    }

    /**
     * 获取已发售房屋套内面积总数
     *
     * @return saled_in_area - 已发售房屋套内面积总数
     */
    public BigDecimal getSaledInArea() {
        return saledInArea;
    }

    /**
     * 设置已发售房屋套内面积总数
     *
     * @param saledInArea 已发售房屋套内面积总数
     */
    public void setSaledInArea(BigDecimal saledInArea) {
        this.saledInArea = saledInArea;
    }

    /**
     * 获取已发售房屋占地面积(花园)总数
     *
     * @return saled_zd_area - 已发售房屋占地面积(花园)总数
     */
    public BigDecimal getSaledZdArea() {
        return saledZdArea;
    }

    /**
     * 设置已发售房屋占地面积(花园)总数
     *
     * @param saledZdArea 已发售房屋占地面积(花园)总数
     */
    public void setSaledZdArea(BigDecimal saledZdArea) {
        this.saledZdArea = saledZdArea;
    }

    /**
     * 获取预售证时间（开盘时间）
     *
     * @return ht_yszdate - 预售证时间（开盘时间）
     */
    public Date getHtYszdate() {
        return htYszdate;
    }

    /**
     * 设置预售证时间（开盘时间）
     *
     * @param htYszdate 预售证时间（开盘时间）
     */
    public void setHtYszdate(Date htYszdate) {
        this.htYszdate = htYszdate;
    }

    /**
     * 获取预计收楼日期
     *
     * @return yjsldate - 预计收楼日期
     */
    public Date getYjsldate() {
        return yjsldate;
    }

    /**
     * 设置预计收楼日期
     *
     * @param yjsldate 预计收楼日期
     */
    public void setYjsldate(Date yjsldate) {
        this.yjsldate = yjsldate;
    }
}