from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey from sqlalchemy.orm import relationship from datetime import datetime from app.db.base import Base class City(Base): __tablename__ = "cities" id = Column(Integer, primary_key=True, index=True) name = Column(String, index=True) country = Column(String) latitude = Column(Float) longitude = Column(Float) created_at = Column(DateTime, default=datetime.utcnow) weather_data = relationship("WeatherData", back_populates="city") class WeatherData(Base): __tablename__ = "weather_data" id = Column(Integer, primary_key=True, index=True) city_id = Column(Integer, ForeignKey("cities.id")) temperature = Column(Float) feels_like = Column(Float) humidity = Column(Integer) pressure = Column(Integer) wind_speed = Column(Float) wind_direction = Column(Integer) description = Column(String) weather_main = Column(String) weather_icon = Column(String) timestamp = Column(DateTime, default=datetime.utcnow) city = relationship("City", back_populates="weather_data")