Spaces:
Paused
Paused
File size: 1,824 Bytes
4223796 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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())
|