#/modules/database/chat_mongo_db.py from .mongo_db import insert_document, find_documents, get_collection from datetime import datetime, timezone import logging from .database_init import get_mongodb # Asegúrate de que esta importación esté al principio del archivo logger = logging.getLogger(__name__) COLLECTION_NAME = 'chat_history-v3' def get_chat_history(username, analysis_type='sidebar', limit=None): """ Recupera el historial del chat """ try: query = { "username": username, "analysis_type": analysis_type } collection = get_collection(COLLECTION_NAME) # Usar get_collection en lugar de get_mongodb if collection is None: logger.error("No se pudo obtener la colección de chat") return [] cursor = collection.find(query).sort("timestamp", -1) if limit: cursor = cursor.limit(limit) return list(cursor) except Exception as e: logger.error(f"Error al recuperar historial de chat: {str(e)}") return [] def store_chat_history(username, messages, analysis_type='sidebar'): """ Guarda el historial del chat """ try: collection = get_collection(COLLECTION_NAME) if collection is None: logger.error("No se pudo obtener la colección de chat") return False chat_document = { 'username': username, 'timestamp': datetime.now(timezone.utc).isoformat(), 'messages': messages, 'analysis_type': analysis_type } result = collection.insert_one(chat_document) if result.inserted_id: logger.info(f"Historial de chat guardado con ID: {result.inserted_id} para el usuario: {username}") return True logger.error("No se pudo insertar el documento") return False except Exception as e: logger.error(f"Error al guardar historial de chat: {str(e)}") return False #def get_chat_history(username, analysis_type=None, limit=10): # query = {"username": username} # if analysis_type: # query["analysis_type"] = analysis_type # return find_documents(COLLECTION_NAME, query, sort=[("timestamp", -1)], limit=limit) # Agregar funciones para actualizar y eliminar chat si es necesario