diff --git a/services/data/app/api/traffic.py b/services/data/app/api/traffic.py index 3ca4a2a8..959ba348 100644 --- a/services/data/app/api/traffic.py +++ b/services/data/app/api/traffic.py @@ -82,7 +82,7 @@ async def get_historical_traffic( if request.end_date <= request.start_date: raise HTTPException(status_code=400, detail="End date must be after start date") - if (request.end_date - request.start_date).days > 90: + if (request.end_date - request.start_date).days > 1000: raise HTTPException(status_code=400, detail="Date range cannot exceed 90 days") historical_data = await traffic_service.get_historical_traffic( diff --git a/services/data/app/api/weather.py b/services/data/app/api/weather.py index d9d62ac3..55465352 100644 --- a/services/data/app/api/weather.py +++ b/services/data/app/api/weather.py @@ -128,7 +128,7 @@ async def get_historical_weather( if request.end_date <= request.start_date: raise HTTPException(status_code=400, detail="End date must be after start date") - if (request.end_date - request.start_date).days > 90: + if (request.end_date - request.start_date).days > 1000: raise HTTPException(status_code=400, detail="Date range cannot exceed 90 days") historical_data = await weather_service.get_historical_weather( diff --git a/services/data/app/models/traffic.py b/services/data/app/models/traffic.py index fd25208c..f34df66f 100644 --- a/services/data/app/models/traffic.py +++ b/services/data/app/models/traffic.py @@ -15,14 +15,14 @@ class TrafficData(Base): id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) location_id = Column(String(100), nullable=False, index=True) - date = Column(DateTime, nullable=False, index=True) + date = Column(DateTime(timezone=True), nullable=False, index=True) traffic_volume = Column(Integer, nullable=True) # vehicles per hour pedestrian_count = Column(Integer, nullable=True) # pedestrians per hour congestion_level = Column(String(20), nullable=True) # low/medium/high average_speed = Column(Float, nullable=True) # km/h source = Column(String(50), nullable=False, default="madrid_opendata") raw_data = Column(Text, nullable=True) - created_at = Column(DateTime, default=datetime.utcnow) + created_at = Column(DateTime(timezone=True), default=datetime.utcnow) __table_args__ = ( Index('idx_traffic_location_date', 'location_id', 'date'), diff --git a/services/data/app/models/weather.py b/services/data/app/models/weather.py index e4ac5d74..5ccbc31c 100644 --- a/services/data/app/models/weather.py +++ b/services/data/app/models/weather.py @@ -15,7 +15,7 @@ class WeatherData(Base): id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) location_id = Column(String(100), nullable=False, index=True) - date = Column(DateTime, nullable=False, index=True) + date = Column(DateTime(timezone=True), nullable=False, index=True) temperature = Column(Float, nullable=True) # Celsius precipitation = Column(Float, nullable=True) # mm humidity = Column(Float, nullable=True) # percentage @@ -24,7 +24,7 @@ class WeatherData(Base): description = Column(String(200), nullable=True) source = Column(String(50), nullable=False, default="aemet") raw_data = Column(Text, nullable=True) - created_at = Column(DateTime, default=datetime.utcnow) + created_at = Column(DateTime(timezone=True), default=datetime.utcnow) __table_args__ = ( Index('idx_weather_location_date', 'location_id', 'date'), @@ -35,8 +35,8 @@ class WeatherForecast(Base): id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) location_id = Column(String(100), nullable=False, index=True) - forecast_date = Column(DateTime, nullable=False) - generated_at = Column(DateTime, nullable=False, default=datetime.utcnow) + forecast_date = Column(DateTime(timezone=True), nullable=False) + generated_at = Column(DateTime(timezone=True), nullable=False, default=datetime.utcnow) temperature = Column(Float, nullable=True) precipitation = Column(Float, nullable=True) humidity = Column(Float, nullable=True)