crowdata / app /reports /models.py
YOSOYYONOSOYOTRO's picture
Upload folder using huggingface_hub (part 2)
4223796 verified
Raw
History Blame Contribute Delete
1.82 kB
from sqlalchemy import Column, String, Text, DateTime, Boolean, Integer
from sqlalchemy.sql import func
from app.database import Base
class ReportCache(Base):
__tablename__ = "report_cache"
id = Column(String(36), primary_key=True)
cache_key = Column(String(255), unique=True, index=True, nullable=False)
report_type = Column(String(50), nullable=False) # persona | empresa | vehiculo
identifier = Column(String(100), nullable=False, index=True) # cuit / dominio
data = Column(Text, nullable=False) # JSON string
sources_used = Column(String(500)) # comma-separated sources
created_at = Column(DateTime(timezone=True), server_default=func.now())
expires_at = Column(DateTime(timezone=True))
hit_count = Column(Integer, default=0)
class SearchHistory(Base):
__tablename__ = "search_history"
id = Column(Integer, primary_key=True, index=True)
user_id = Column(String(36), index=True, nullable=False)
identifier = Column(String(100), nullable=False) # CUIT / Dominio
type = Column(String(50)) # persona | empresa | vehiculo
name = Column(String(255)) # Razon social / Nombre
created_at = Column(DateTime(timezone=True), server_default=func.now())
report_id = Column(String(36)) # Link to cache
class MonitorTask(Base):
__tablename__ = "monitor_tasks"
id = Column(Integer, primary_key=True, index=True)
user_id = Column(String(36), index=True, nullable=False)
identifier = Column(String(100), nullable=False) # CUIT / Dominio
type = Column(String(50)) # persona | empresa | vehiculo
last_check = Column(DateTime(timezone=True), server_default=func.now())
active = Column(Boolean, default=True)
alert_count = Column(Integer, default=0)
created_at = Column(DateTime(timezone=True), server_default=func.now())