from .models import BotInteraction, FacebookPageAssistant from pxy_neo4j.neo4j_connector import Neo4jDatabase import logging logger = logging.getLogger(__name__) class InteractionStorageBackend: """Interface: implement `.store(...)`.""" def store(self, *, page_id, object_id, parent_object_id, prompt, bot_response, platform): raise NotImplementedError class Neo4jStorage(InteractionStorageBackend): def __init__(self): self.neo4j_db = Neo4jDatabase() def store(self, *, page_id, object_id, parent_object_id, prompt, bot_response, platform): try: self.neo4j_db.store_interaction( user_id = f"fb_bot_{page_id}", bot_id = f"fb_bot_{page_id}", user_message = prompt, bot_response = bot_response, platform = platform ) except Exception as e: logger.error(f"[Neo4j] Error saving interaction: {e}") class PostgresStorage(InteractionStorageBackend): def store(self, *, page_id, object_id, parent_object_id, prompt, bot_response, platform): try: page = FacebookPageAssistant.objects.get(page_id=page_id) BotInteraction.objects.create( page = page, object_id = object_id or "", parent_object_id = parent_object_id, prompt = prompt, bot_response = bot_response, platform = platform ) except Exception as e: logger.error(f"[Postgres] Error saving BotInteraction: {e}")