import uuid from sqlalchemy import ( Boolean, Column, DateTime, Float, ForeignKey, Integer, String, Text, ) from sqlalchemy.dialects.postgresql import UUID from shared.database import BaseModel class EmergencyAlert(BaseModel): __tablename__ = "emergency_alerts" uuid = Column(UUID(as_uuid=True), default=uuid.uuid4, unique=True, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=False, index=True) # Location at time of alert latitude = Column(Float, nullable=False) longitude = Column(Float, nullable=False) address = Column(String(500)) # Alert details alert_type = Column( String(50), default="general" ) # general, medical, violence, etc. message = Column(Text) is_resolved = Column(Boolean, default=False) resolved_at = Column(DateTime(timezone=True)) resolved_by = Column(Integer, ForeignKey("users.id")) # Response tracking notified_users_count = Column(Integer, default=0) responded_users_count = Column(Integer, default=0) def __repr__(self): return f"" class EmergencyResponse(BaseModel): __tablename__ = "emergency_responses" alert_id = Column( Integer, ForeignKey("emergency_alerts.id"), nullable=False, index=True ) responder_id = Column(Integer, ForeignKey("users.id"), nullable=False, index=True) response_type = Column(String(50)) # help_on_way, contacted_authorities, etc. message = Column(Text) eta_minutes = Column(Integer) # Estimated time of arrival def __repr__(self): return f""