from sqlalchemy import Column, Integer, String, Float, Boolean, DateTime, ForeignKey from sqlalchemy.orm import relationship from datetime import datetime from ..database import Base class Address(Base): __tablename__ = "addresses" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=False) label = Column(String, nullable=False, default="Casa") # e.g. "Casa", "Trabajo" street = Column(String, nullable=False) colony = Column(String, nullable=True) city = Column(String, nullable=False, default="Celaya") lat = Column(Float, nullable=True) lng = Column(Float, nullable=True) route_id = Column(String, nullable=True) # assigned route from geo-matching is_default = Column(Boolean, default=False) created_at = Column(DateTime, default=datetime.utcnow) user = relationship("User", back_populates="addresses") reports = relationship("Report", back_populates="address") ratings = relationship("ServiceRating", back_populates="address")