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())