package com.persagy.ems.pojo;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.persagy.core.annotation.Column;
import com.persagy.core.annotation.Dimension;
import com.persagy.core.annotation.Entity;
import com.persagy.core.annotation.Index;
import com.persagy.core.annotation.Table;
import com.persagy.core.enumeration.Schema;
import com.persagy.core.mvc.pojo.BusinessObject;

@Dimension
@Entity(name = "TypicalWeather")
@Table(name = "t_typical_weather", comment = "典型气象年数据表", schema = Schema.EMS, 
		indexes = {
				@Index(columns = { "c_city_code", "c_date" })
	    })
public class TypicalWeather extends BusinessObject{

	private static final long serialVersionUID = 7781297687391969675L;

	@JsonProperty("cityCode")
	@Column(order = 10, name = "c_city_code", length = 10, nullable = false, comment = "数据字典 城市编码")
	private String cityCode;
	
	@JsonProperty("date")
	@Column(order = 20, name = "c_date", length = 10, nullable = false, comment = "日期")
	private Date date;
	
	@JsonProperty("updateDate")
	@Column(order = 21, name = "c_update_date", length = 10, nullable = false, comment = "日期")
	private Date updateDate;
	
	@JsonProperty("fillterStart")
	@Column(order = 22, name = "c_fillterStart", length = 10, nullable = true, comment = "计算典型年所用数据开始时间")
	private Date fillterStart;
	
	@JsonProperty("fillterEnd")
	@Column(order = 23, name = "c_fillterEnd", length = 10, nullable = true, comment = "计算典型年所用数据结束时间")
	private Date fillterEnd;
	
	@JsonProperty("hdd")
	@Column(order = 30, name = "c_hdd", length = 10, nullable = true, comment = "供暖度日数")
	private Double hdd;
	
	@JsonProperty("cdd")
	@Column(order = 31, name = "c_cdd", length = 10, nullable = true, comment = "供冷度日数")
	private Double cdd;

	@Column(order = 40, name = "c_max_temp", length = 10, scale = 2, nullable = true, comment = "最高温度，单位为c摄氏度或f华氏度")
	@JsonProperty("maxTemp")
	private Double maxTemp;
	
	@Column(order = 50, name = "c_min_temp", length = 10, scale = 2, nullable = true, comment = "最低温度，单位为c摄氏度或f华氏度")
	@JsonProperty("minTemp")
	private Double minTemp;
	
	@Column(order = 60, name = "c_avg_temp", length = 10, scale = 2, nullable = true, comment = "平均温度，单位为c摄氏度或f华氏度")
	@JsonProperty("avgTemp")
	private Double avgTemp;

	@Column(order = 70, name = "c_max_wind_speed", length = 10, scale = 2, nullable = true, comment = "最大风速，单位为km/h公里每小时或mph英里每小时")
	@JsonProperty("maxWindSpeed")
	private Double maxWindSpeed;
	
	@Column(order = 80, name = "c_min_wind_speed", length = 10, scale = 2, nullable = true, comment = "最小风速，单位为km/h公里每小时或mph英里每小时")
	@JsonProperty("minWindSpeed")
	private Double minWindSpeed;
	
	@Column(order = 90, name = "c_avg_wind_speed", length = 10, scale = 2, nullable = true, comment = "平均风速，单位为km/h公里每小时或mph英里每小时")
	@JsonProperty("avgWindSpeed")
	private Double avgWindSpeed;
	
	@Column(order = 100, name = "c_max_humidity", length = 10, scale = 2, nullable = true, comment = "最高相对湿度，0~100，单位为百分比")
	@JsonProperty("maxHumidity")
	private Double maxHumidity;
	
	@Column(order = 110, name = "c_avg_humidity", length = 10, scale = 2,  nullable = true, comment = "平均湿度，0~100，单位为百分比")
	@JsonProperty("avgHumidity")
	private Double avgHumidity;
	
	@Column(order = 120, name = "c_min_humidity", length = 10, scale = 2,  nullable = true, comment = "最低相对湿度，0~100，单位为百分比")
	@JsonProperty("minHumidity")
	private Double minHumidity;

	@Column(order = 130, name = "c_max_pressure", length = 10, scale = 2,  nullable = true, comment = "最高气压，单位为mb百帕或in英寸")
	@JsonProperty("maxPressure")
	private Double maxPressure;
	
	@Column(order = 140, name = "c_min_pressure", length = 10, scale = 2, nullable = true, comment = "最低气压，单位为mb百帕或in英寸")
	@JsonProperty("minPressure")
	private Double minPressure;
	
	@Column(order = 150, name = "c_avg_pressure", length = 10, scale = 2, nullable = true, comment = "平均气压，单位为mb百帕或in英寸")
	@JsonProperty("avgPressure")
	private Double avgPressure;
	
	@Column(order = 160, name = "c_max_vidibility", length = 10, scale = 2, nullable = true, comment = "最高能见度，单位为km公里或mi英里")
	@JsonProperty("maxVidibility")
	private Double maxVidibility;
	
	@Column(order = 170, name = "c_min_vidibility", length = 10, nullable = true, comment = "最低能见度，单位为km公里或mi英里")
	@JsonProperty("minVidibility")
	private Double minVidibility;
	
	@Column(order = 180, name = "c_avg_visibility", length = 10, nullable = true, comment = "平均能见度，单位为km公里或mi英里")
	@JsonProperty("avgVidibility")
	private Double avgVidibility;

	public String getCityCode() {
		return cityCode;
	}

	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}
	
	public Date getUpdateDate() {
		return updateDate;
	}

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

	public void setFillterStart(Date fillterStart) {
		this.fillterStart = fillterStart;
	}

	public Date getFillterEnd() {
		return fillterEnd;
	}

	public void setFillterEnd(Date fillterEnd) {
		this.fillterEnd = fillterEnd;
	}

	public Double getHdd() {
		return hdd;
	}

	public void setHdd(Double hdd) {
		this.hdd = hdd;
	}

	public Double getCdd() {
		return cdd;
	}

	public void setCdd(Double cdd) {
		this.cdd = cdd;
	}

	public Double getMaxTemp() {
		return maxTemp;
	}

	public void setMaxTemp(Double maxTemp) {
		this.maxTemp = maxTemp;
	}

	public Double getMinTemp() {
		return minTemp;
	}

	public void setMinTemp(Double minTemp) {
		this.minTemp = minTemp;
	}

	public Double getAvgTemp() {
		return avgTemp;
	}

	public void setAvgTemp(Double avgTemp) {
		this.avgTemp = avgTemp;
	}

	public Double getMaxWindSpeed() {
		return maxWindSpeed;
	}

	public void setMaxWindSpeed(Double maxWindSpeed) {
		this.maxWindSpeed = maxWindSpeed;
	}

	public Double getMinWindSpeed() {
		return minWindSpeed;
	}

	public void setMinWindSpeed(Double minWindSpeed) {
		this.minWindSpeed = minWindSpeed;
	}

	public Double getAvgWindSpeed() {
		return avgWindSpeed;
	}

	public void setAvgWindSpeed(Double avgWindSpeed) {
		this.avgWindSpeed = avgWindSpeed;
	}

	public Double getMaxHumidity() {
		return maxHumidity;
	}

	public void setMaxHumidity(Double maxHumidity) {
		this.maxHumidity = maxHumidity;
	}

	public Double getAvgHumidity() {
		return avgHumidity;
	}

	public void setAvgHumidity(Double avgHumidity) {
		this.avgHumidity = avgHumidity;
	}

	public Double getMinHumidity() {
		return minHumidity;
	}

	public void setMinHumidity(Double minHumidity) {
		this.minHumidity = minHumidity;
	}

	public Double getMaxPressure() {
		return maxPressure;
	}

	public void setMaxPressure(Double maxPressure) {
		this.maxPressure = maxPressure;
	}

	public Double getMinPressure() {
		return minPressure;
	}

	public void setMinPressure(Double minPressure) {
		this.minPressure = minPressure;
	}

	public Double getAvgPressure() {
		return avgPressure;
	}

	public void setAvgPressure(Double avgPressure) {
		this.avgPressure = avgPressure;
	}

	public Double getMaxVidibility() {
		return maxVidibility;
	}

	public void setMaxVidibility(Double maxVidibility) {
		this.maxVidibility = maxVidibility;
	}

	public Double getMinVidibility() {
		return minVidibility;
	}

	public void setMinVidibility(Double minVidibility) {
		this.minVidibility = minVidibility;
	}

	public Double getAvgVidibility() {
		return avgVidibility;
	}

	public void setAvgVidibility(Double avgVidibility) {
		this.avgVidibility = avgVidibility;
	}

}
