from pydantic import BaseModel, Field from sqlalchemy import * from db.base import Base class LOT_DATA(BaseModel): create_time: int = Field(None, description='创建时间(时间戳) ') wind_speed: float = Field(None, description='风速:(0到30)m/s ') wind_direction: float = Field(None, description='风向:0~360°') ambient_temperature: float = Field(None, description='环境温度:℃') ambient_humidity: float = Field(None, description='环境湿度:%RH') carbon_dioxide: float = Field(None, description='二氧化碳:0~5000ppm') ambient_air_pressure: float = Field(None, description='环境气压:0~120KPa') rainfall: float = Field(None, description='雨量:mm') ambient_lighting: float = Field(None, description='环境光照:0-65535Lux;0-20万Lux') soil_temperature: float = Field(None, description='土壤温度:-40~80℃') soil_moisture: float = Field(None, description='土壤湿度:0-100%RH') soil_conductivity: float = Field(None, description='土壤电导率:0-20000μS/cm') soil_PH: float = Field(None, description='土壤PH:3~9PH') soil_potassium_phosphate_nitrogen: float = Field(None, description='土壤磷酸钾:氮的标准值在140-225mg/kg') soil_potassium_phosphate_phosphorus: float = Field(None, description='土壤磷酸钾:磷的标准值在57-100mg/kg,') soil_potassium_phosphate_potassium: float = Field(None, description='土壤磷酸钾:钾的标准值在106-150mg/kg') class LOT_DATA_MODEL(Base): """ 物联网数据模型 """ __tablename__ = 'LOT_DATA_MODEL' id = Column(Integer, primary_key=True, autoincrement=True, comment='ID') create_time = Column(Integer, comment="创建时间") wind_speed = Column(Float, comment='风速:(0到30)m/s ') wind_direction = Column(Float, comment='风向:0~360°') ambient_temperature = Column(Float, comment='环境温度:℃') ambient_humidity = Column(Float, comment='环境湿度:%RH') carbon_dioxide = Column(Float, comment='二氧化碳:0~5000ppm') ambient_air_pressure = Column(Float, comment='环境气压:0~120KPa') rainfall = Column(Float, comment='雨量:mm') ambient_lighting = Column(Float, comment='环境光照:0-65535Lux;0-20万Lux') soil_temperature = Column(Float, comment='土壤温度:-40~80℃') soil_moisture = Column(Float, comment='土壤湿度:0-100%RH') soil_conductivity = Column(Float, comment='土壤电导率:0-20000μS/cm') soil_PH = Column(Float, comment='土壤PH:3~9PH') soil_potassium_phosphate_nitrogen = Column(Float, comment='土壤磷酸钾:氮的标准值在140-225mg/kg') soil_potassium_phosphate_phosphorus = Column(Float, comment='土壤磷酸钾:磷的标准值在57-100mg/kg,') soil_potassium_phosphate_potassium = Column(Float, comment='土壤磷酸钾:钾的标准值在106-150mg/kg') def __repr__(self): return f"LOT_DATA_MODEL(id={self.id}, wind_speed={self.wind_speed}, wind_direction={self.wind_direction}, ambient_temperature={self.ambient_temperature}, ambient_humidity={self.ambient_humidity}, carbon_dioxide={self.carbon_dioxide}, ambient_air_pressure={self.ambient_air_pressure}, rainfall={self.rainfall}, ambient_lighting={self.ambient_lighting}, soil_temperature={self.soil_temperature}, soil_moisture={self.soil_moisture}, soil_conductivity={self.soil_conductivity}, Soil_PH={self.soil_PH}, soil_potassium_phosphate_nitrogen={self.soil_potassium_phosphate_nitrogen}, soil_potassium_phosphate_phosphorus={self.soil_potassium_phosphate_phosphorus}, soil_potassium_phosphate_potassium={self.soil_potassium_phosphate_potassium})"