package com.persagy.ems.pojo.wz;

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.enumeration.EMSDimension;
import com.persagy.core.mvc.pojo.BusinessObject;

/**
 * 小时天气信息
 */
@Dimension(dimension = EMSDimension.Building)
@Entity(name = "HourRecordData")
@Table(name = "t_hour", schema = Schema.EMS, comment = "天气1小时的数据", indexes = {
		@Index(columns = {"c_hour_time", "c_city_id"}, unique = true) })
public class HourRecordData extends BusinessObject {
	private static final long serialVersionUID = 546310440259754238L;
	public boolean flag;
	
	@JsonProperty("cityId")
	@Column(order = 0, name = "c_city_id", length = 50, nullable = false, comment = "城市id")
	private String cityId;

	@JsonProperty("hourTime")
	@Column(order = 0, name = "c_hour_time", length = 0, nullable = false, comment = "数据时间")
	private Date hourTime;
	
	@Column(order = 1, name = "now_last_update", length = 0, nullable = true, comment = "天气实况数据更新时间（该城市的本地时间）")
	@JsonProperty("lastUpdateNow")
	private Date lastUpdateNow;
	
	@Column(order = 2, name = "now_text", length = 20, nullable = true, comment = "天气现象文字")
	@JsonProperty("text")
	private String text;

	@Column(order = 3, name = "now_code", length = 10, nullable = true, comment = "天气现象代码")
	@JsonProperty("code")
	private String code;

	@Column(order = 4, name = "now_temperature", length = 10, nullable = true, comment = "温度，单位为c摄氏度或f华氏度")
	@JsonProperty("temperature")
	private String temperature;

	@Column(order = 5, name = "now_feels_like", length = 10, nullable = true, comment = "体感温度，单位为c摄氏度或f华氏度")
	@JsonProperty("feels_like")
	private String feels_like;

	@Column(order = 6, name = "now_pressure", length = 10, nullable = true, comment = "气压，单位为mb百帕或in英寸")
	@JsonProperty("pressure")
	private String pressure;

	@Column(order = 7, name = "now_humidity", length = 10, nullable = true, comment = "相对湿度，0~100，单位为百分比")
	@JsonProperty("humidity")
	private String humidity;

	@Column(order = 8, name = "now_visibility", length = 10, nullable = true, comment = "能见度，单位为km公里或mi英里")
	@JsonProperty("visibility")
	private String visibility;
	
	@Column(order = 9, name = "now_wind_direction", length = 40, nullable = true, comment = "风向文字")
	@JsonProperty("wind_direction")
	private String wind_direction;
	
	@Column(order = 10, name = "now_wind_direction_degree", length = 40, nullable = true, comment = "风向角度，范围0~360，0为正北，90为正东，180为正南，270为正西")
	@JsonProperty("wind_direction_degree")
	private String wind_direction_degree;
	
	@Column(order = 11, name = "now_wind_speed", length = 20, nullable = true, comment = "风速")
	@JsonProperty("wind_speed")
	private String wind_speed;
	
	@Column(order = 12, name = "now_wind_scale", length = 20, nullable = true, comment = "风力等级")
	@JsonProperty("wind_scale")
	private String wind_scale;
	
	@Column(order = 13, name = "now_clouds", length = 10, nullable = true, comment = "云量，范围0~100，天空被云覆盖的百分比")
	@JsonProperty("clouds")
	private String clouds;
	
	@Column(order = 14, name = "now_dew_point", length = 20, nullable = true, comment = "露点温度")
	@JsonProperty("dew_point")
	private String dew_point;

	@Column(order = 15, name = "air_pm25", length = 10, nullable = true, comment = "PM2.5颗粒物（粒径小于等于2.5μm）1小时平均值。单位：μg/m³")
	@JsonProperty("pm25")
	private String pm25;

	@Column(order = 16, name = "air_pm10", length = 10, nullable = true, comment = "PM10颗粒物（粒径小于等于10μm）1小时平均值。单位：μg/m³")
	@JsonProperty("pm10")
	private String pm10;

	@Column(order = 17, name = "air_so2", length = 10, nullable = true, comment = "二氧化硫1小时平均值。单位：μg/m³")
	@JsonProperty("so2")
	private String so2;

	@Column(order = 18, name = "air_no2", length = 10, nullable = true, comment = "二氧化氮1小时平均值。单位：μg/m³")
	@JsonProperty("no2")
	private String no2;

	@Column(order = 19, name = "air_co", length = 10, nullable = true, comment = "一氧化碳1小时平均值。单位：mg/m³")
	@JsonProperty("co")
	private String co;

	@Column(order = 20, name = "air_o3", length = 10, nullable = true, comment = "臭氧1小时平均值。单位：μg/m³")
	@JsonProperty("o3")
	private String o3;

	@Column(order = 21, name = "air_quality", length = 20, nullable = true, comment = "空气质量类别，有“优、良、轻度污染、中度污染、重度污染、严重污染”6类")
	@JsonProperty("quality")
	private String quality;

	@Column(order = 22, name = "air_aqi", length = 20, nullable = true, comment = "空气质量指数(AQI)是描述空气质量状况的定量指数")
	@JsonProperty("aqi")
	private String aqi;

	@Column(order = 23, name = "air_primary_pollutant", length = 20, nullable = true, comment = "首要污染物")
	@JsonProperty("primary_pollutant")
	private String primary_pollutant;

	@Column(order = 24, name = "air_last_update", length = 0, nullable = true, comment = "空气质量数据更新时间（该城市的本地时间）")
	@JsonProperty("lastUpdateAir")
	private Date lastUpdateAir;
	
	public String getCityId() {
		return cityId;
	}

	public void setCityId(String cityId) {
		this.cityId = cityId;
	}

	public Date getHourTime() {
		return hourTime;
	}

	public void setHourTime(Date hourTime) {
		this.hourTime = hourTime;
	}

	public Date getLastUpdateNow() {
		return lastUpdateNow;
	}

	public void setLastUpdateNow(Date lastUpdateNow) {
		this.lastUpdateNow = lastUpdateNow;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getTemperature() {
		return temperature;
	}

	public void setTemperature(String temperature) {
		this.temperature = temperature;
	}

	public String getFeels_like() {
		return feels_like;
	}

	public void setFeels_like(String feels_like) {
		this.feels_like = feels_like;
	}

	public String getPressure() {
		return pressure;
	}

	public void setPressure(String pressure) {
		this.pressure = pressure;
	}

	public String getHumidity() {
		return humidity;
	}

	public void setHumidity(String humidity) {
		this.humidity = humidity;
	}

	public String getVisibility() {
		return visibility;
	}

	public void setVisibility(String visibility) {
		this.visibility = visibility;
	}

	public String getWind_direction() {
		return wind_direction;
	}

	public void setWind_direction(String wind_direction) {
		this.wind_direction = wind_direction;
	}

	public String getWind_direction_degree() {
		return wind_direction_degree;
	}

	public void setWind_direction_degree(String wind_direction_degree) {
		this.wind_direction_degree = wind_direction_degree;
	}

	public String getWind_speed() {
		return wind_speed;
	}

	public void setWind_speed(String wind_speed) {
		this.wind_speed = wind_speed;
	}

	public String getWind_scale() {
		return wind_scale;
	}

	public void setWind_scale(String wind_scale) {
		this.wind_scale = wind_scale;
	}

	public String getClouds() {
		return clouds;
	}

	public void setClouds(String clouds) {
		this.clouds = clouds;
	}

	public String getDew_point() {
		return dew_point;
	}

	public void setDew_point(String dew_point) {
		this.dew_point = dew_point;
	}

	public String getPm25() {
		return pm25;
	}

	public void setPm25(String pm25) {
		this.pm25 = pm25;
	}

	public String getPm10() {
		return pm10;
	}

	public void setPm10(String pm10) {
		this.pm10 = pm10;
	}

	public String getSo2() {
		return so2;
	}

	public void setSo2(String so2) {
		this.so2 = so2;
	}

	public String getNo2() {
		return no2;
	}

	public void setNo2(String no2) {
		this.no2 = no2;
	}

	public String getCo() {
		return co;
	}

	public void setCo(String co) {
		this.co = co;
	}

	public String getO3() {
		return o3;
	}

	public void setO3(String o3) {
		this.o3 = o3;
	}

	public String getQuality() {
		return quality;
	}

	public void setQuality(String quality) {
		this.quality = quality;
	}

	public String getAqi() {
		return aqi;
	}

	public void setAqi(String aqi) {
		this.aqi = aqi;
	}

	public String getPrimary_pollutant() {
		return primary_pollutant;
	}

	public void setPrimary_pollutant(String primary_pollutant) {
		this.primary_pollutant = primary_pollutant;
	}

	public Date getLastUpdateAir() {
		return lastUpdateAir;
	}

	public void setLastUpdateAir(Date lastUpdateAir) {
		this.lastUpdateAir = lastUpdateAir;
	}
}
