from sqlalchemy import create_engine, Column, Integer, String, Text, DateTime, Boolean from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from sqlalchemy import JSON from datetime import datetime from dotenv import load_dotenv import os Base = declarative_base() class WebsPorVisitar(Base): __tablename__ = 'webs_por_visitar' id = Column(Integer, primary_key=True, autoincrement=True) url = Column(String(2048), unique=True, nullable=False) agregado_en = Column(DateTime, default=datetime.utcnow, nullable=False) prioridad = Column(Integer, default=1, nullable=False) # Prioridad para rastrear class WebsVisitadas(Base): __tablename__ = 'webs_visitadas' id = Column(Integer, primary_key=True, autoincrement=True) url = Column(String(2048), unique=True, nullable=False) dominio = Column(String(255), nullable=False) titulo = Column(String(255), nullable=True) resumen = Column(Text, nullable=True) # Resumen en texto plano detalles_json = Column(JSON, nullable=True) # JSON estructurado ip = Column(String(45), nullable=True) fecha_creacion = Column(DateTime, default=datetime.utcnow, nullable=False) codigo_http = Column(Integer, nullable=True) contenido_hash = Column(String(64), nullable=True) # Cargar variables de entorno desde el archivo .env load_dotenv() # Obtener la URL de la base de datos desde las variables de entorno database_url = os.getenv('DATABASE_URL') # Crear el motor de base de datos y las tablas engine = create_engine(database_url) Base.metadata.create_all(engine) # Crear una sesión Session = sessionmaker(bind=engine) session = Session()