from sqlalchemy import Column, Integer, JSON,ForeignKey, String, DateTime, func, ARRAY from sqlalchemy.orm import relationship from .database import Base class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) phone_number = Column(String, unique=True, index=True) full_name = Column(String, default="Unknown") agent_id = Column(String, default="") type = Column(String, default="buyer") broker_name = Column(String, default="") active_session_id = Column(String, default="") queued_session_ids = Column(ARRAY(String), default=[]) completed_session_ids = Column(ARRAY(String), default=[]) created_at = Column(DateTime(timezone=True), server_default=func.now()) bookings = relationship("booking", back_populates="buyer_agent") class booking(Base): __tablename__ = "bookings" id = Column(Integer, primary_key=True, index=True) buyer_agent_phone_number = Column(String, ForeignKey("users.phone_number"), nullable=False) address = Column(String, default="") mls_number = Column(String, default="") buyer_selected_date = Column(String, default="") buyer_selected_time = Column(String, default="") listing_selected_date = Column(String, default="") listing_selected_time = Column(String, default="") listing_agent_phone_number = Column(String, default="") listing_agent_session_id = Column(String, default="") status = Column(String, default="pending") created_at = Column(DateTime(timezone=True), server_default=func.now()) buyer_agent = relationship("User", back_populates="bookings")