pipeline issues fix
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2025-09-25 11:59:54 +09:00
parent dc50a9858e
commit 4e3768a6ee
39 changed files with 1297 additions and 739 deletions

View File

@@ -1,46 +1,48 @@
from sqlalchemy import Column, Integer, Float, DateTime, ForeignKey, Index
from sqlalchemy.dialects.postgresql import UUID
from shared.database import BaseModel
import uuid
from sqlalchemy import Column, DateTime, Float, ForeignKey, Index, Integer
from sqlalchemy.dialects.postgresql import UUID
from shared.database import BaseModel
class UserLocation(BaseModel):
__tablename__ = "user_locations"
uuid = Column(UUID(as_uuid=True), default=uuid.uuid4, unique=True, index=True)
user_id = Column(Integer, ForeignKey("users.id"), nullable=False, index=True)
latitude = Column(Float, nullable=False)
longitude = Column(Float, nullable=False)
accuracy = Column(Float) # GPS accuracy in meters
altitude = Column(Float)
speed = Column(Float) # Speed in m/s
heading = Column(Float) # Direction in degrees
# Indexes for geospatial queries
__table_args__ = (
Index('idx_location_coords', 'latitude', 'longitude'),
Index('idx_location_user_time', 'user_id', 'created_at'),
Index("idx_location_coords", "latitude", "longitude"),
Index("idx_location_user_time", "user_id", "created_at"),
)
def __repr__(self):
return f"<UserLocation user_id={self.user_id} lat={self.latitude} lng={self.longitude}>"
class LocationHistory(BaseModel):
__tablename__ = "location_history"
user_id = Column(Integer, ForeignKey("users.id"), nullable=False, index=True)
latitude = Column(Float, nullable=False)
longitude = Column(Float, nullable=False)
accuracy = Column(Float)
recorded_at = Column(DateTime(timezone=True), nullable=False)
# Partition by date for better performance
__table_args__ = (
Index('idx_history_user_date', 'user_id', 'recorded_at'),
Index('idx_history_coords_date', 'latitude', 'longitude', 'recorded_at'),
Index("idx_history_user_date", "user_id", "recorded_at"),
Index("idx_history_coords_date", "latitude", "longitude", "recorded_at"),
)
def __repr__(self):
return f"<LocationHistory user_id={self.user_id} at={self.recorded_at}>"
return f"<LocationHistory user_id={self.user_id} at={self.recorded_at}>"