uptime / storage /models.py
HuB
Deploy webguard to Hugging Face Space
b987c84
from sqlalchemy import Column, Integer, String, Float, Boolean, DateTime, Text
from sqlalchemy.orm import declarative_base
from datetime import datetime
Base = declarative_base()
class CheckResult(Base):
__tablename__ = "check_results"
id = Column(Integer, primary_key=True, index=True)
url = Column(String, index=True)
check_type = Column(String) # http, dns, ssl, domain, ...
status = Column(String) # ok, warning, error
value = Column(Text, nullable=True) # human-readable result
detail = Column(Text, nullable=True) # full JSON detail
duration = Column(Float, nullable=True) # ms
created_at = Column(DateTime, default=datetime.utcnow)
class Screenshot(Base):
__tablename__ = "screenshots"
id = Column(Integer, primary_key=True, index=True)
url = Column(String, index=True)
path = Column(String)
issue_detected = Column(Boolean, default=False)
created_at = Column(DateTime, default=datetime.utcnow)
class CrawlPage(Base):
__tablename__ = "crawl_pages"
id = Column(Integer, primary_key=True, index=True)
site_url = Column(String, index=True)
page_url = Column(String)
status = Column(String) # ok / broken / redirect
status_code= Column(Integer, nullable=True)
error = Column(Text, nullable=True)
created_at = Column(DateTime, default=datetime.utcnow)
class AlertLog(Base):
__tablename__ = "alert_logs"
id = Column(Integer, primary_key=True, index=True)
url = Column(String, index=True)
severity = Column(String) # info / warning / critical
message = Column(Text)
sent_at = Column(DateTime, default=datetime.utcnow)