Spaces:
Paused
Paused
| 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()) | |