""" Mock Database Module - Works without real database connection This allows your app to run and test AI features without needing a working database connection. """ from typing import Optional, Dict, Any from datetime import datetime import asyncio class MockAsyncSession: """Mock session that simulates database operations.""" def __init__(self): # Simulate a simple in-memory "database" self.users = {} self.sessions = {} self.conversations = {} self.messages = {} self._user_counter = 1 self._session_counter = 1 async def execute(self, query): """Mock execute method.""" return MockResult() async def commit(self): """Mock commit method.""" pass async def rollback(self): """Mock rollback method.""" pass def add(self, obj): """Mock add method.""" pass async def refresh(self, obj): """Mock refresh method.""" pass class MockResult: """Mock query result.""" def scalar_one_or_none(self): """Return None to simulate no existing user.""" return None def fetchval(self, *args): """Mock fetchval.""" return None def fetchrow(self, *args): """Mock fetchrow.""" return None class MockEngine: """Mock database engine.""" def dispose(self): """Mock dispose method.""" pass # Mock functions that replace the real database functions async def get_session(): """Return a mock session.""" return MockAsyncSession() async def init_db(): """Mock database initialization.""" print("[MOCK] Database initialized (mock mode)") async def dispose_engine(): """Mock engine disposal.""" print("[MOCK] Database disposed (mock mode)") def get_engine(): """Return mock engine.""" return MockEngine() # Export the mock functions __all__ = ['get_session', 'init_db', 'dispose_engine', 'get_engine']