sdf
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-09-26 12:22:14 +09:00
parent ca32dc8867
commit 7c22664daf
33 changed files with 3267 additions and 1429 deletions

View File

@@ -27,9 +27,7 @@ class EmergencyAlert(BaseModel):
address = Column(String(500))
# Alert details
alert_type = Column(
String(50), default="general"
) # general, medical, violence, etc.
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))
@@ -46,9 +44,7 @@ class EmergencyAlert(BaseModel):
class EmergencyResponse(BaseModel):
__tablename__ = "emergency_responses"
alert_id = Column(
Integer, ForeignKey("emergency_alerts.id"), nullable=False, index=True
)
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.
@@ -56,4 +52,41 @@ class EmergencyResponse(BaseModel):
eta_minutes = Column(Integer) # Estimated time of arrival
def __repr__(self):
return f"<EmergencyResponse {self.id}>"
return f"<EmergencyResponse {self.uuid}>"
# New models for additional features
class EmergencyReport(BaseModel):
__tablename__ = "emergency_reports"
uuid = Column(UUID(as_uuid=True), default=uuid.uuid4, unique=True, index=True)
user_id = Column(Integer, ForeignKey("users.id"), nullable=True, index=True) # Nullable for anonymous reports
# Location
latitude = Column(Float, nullable=False)
longitude = Column(Float, nullable=False)
address = Column(String(500))
# Report details
report_type = Column(String(50), nullable=False)
description = Column(Text, nullable=False)
is_anonymous = Column(Boolean, default=False)
severity = Column(Integer, default=3) # 1-5 scale
status = Column(String(20), default="pending") # pending, investigating, resolved
def __repr__(self):
return f"<EmergencyReport {self.uuid}>"
class SafetyCheck(BaseModel):
__tablename__ = "safety_checks"
uuid = Column(UUID(as_uuid=True), default=uuid.uuid4, unique=True, index=True)
user_id = Column(Integer, ForeignKey("users.id"), nullable=False, index=True)
message = Column(String(200))
location_latitude = Column(Float)
location_longitude = Column(Float)
def __repr__(self):
return f"<SafetyCheck {self.uuid}>"