
- Implemented FastAPI application structure - Added OpenWeatherMap API integration - Created SQLite database with SQLAlchemy - Setup Alembic for database migrations - Added health check endpoint - Created comprehensive README generated with BackendIM... (backend.im)
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
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") |