package com.weather.modules.weather.dailydata.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.weather.common.entity.BaseEntity;
import io.swagger.v3.oas.annotations.media.SchemaProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 每日气象监测数据表
 *
 * @author 2333 123
 * @since 1.0.0 2026-03-05
 */
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("weather_daily_data")
public class WeatherDailyDataEntity extends BaseEntity {

    /**
     * 站点ID
     */
	private Long stationId;
    /**
     * 观测日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date observeDate;
    /**
     * 平均气温
     */
	private BigDecimal avgTemp;
    /**
     * 最高气温
     */
	private BigDecimal maxTemp;
    /**
     * 最高气温出现时间(HHmm)
     */
	private Integer maxTempTime;
    /**
     * 最低气温
     */
	private BigDecimal minTemp;
    /**
     * 最低气温出现时间(HHmm)
     */
	private Integer minTempTime;
    /**
     * 20-20时降水量(mm)
     */
    @TableField("rain_20_20")
	private BigDecimal rain2020;
    /**
     * 08-08时降水量(mm)
     */
    @TableField("rain_08_08")
	private BigDecimal rain0808;

    /**
     * 相对湿度
     */
    private BigDecimal relativeHumidity;

    /**
     * 气压
     */
    private BigDecimal atmospheres;

    /**
     * 日平均风速
     */
    private BigDecimal dayAvgWindSpeed;

    /**
     * 日平均风向(角度)
     */
    private Integer dayAvgWindDirection;

    /**
     * 最大风速(m/s)
     */
	private BigDecimal maxWindSpeed;
    /**
     * 最大风速风向(角度)
     */
	private Integer maxWindDirection;
    /**
     * 最大风速出现时间(HHmm)
     */
	private Integer maxWindTime;
    /**
     * 极大风速(m/s)
     */
	private BigDecimal extremeWindSpeed;
    /**
     * 极大风速风向(角度)
     */
	private Integer extremeWindDirection;
    /**
     * 极大风速出现时间(HHmm)
     */
	private Integer extremeWindTime;

    /**
     * 部门ID
     */
    @TableField(fill = FieldFill.INSERT)
    private Long deptId;
    /**
     * 更新者
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updater;
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;
}