Spaces:
Sleeping
Sleeping
File size: 846 Bytes
0eec92d | 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 | from motor.motor_asyncio import AsyncIOMotorClient
from ..core import config
client: AsyncIOMotorClient | None = None
def get_client() -> AsyncIOMotorClient:
global client
if client is None:
client = AsyncIOMotorClient(config.MONGODB_URI)
return client
async def get_db():
return get_client().get_default_database()
async def ensure_indexes():
db = await get_db()
# Users: unique email
await db.users.create_index("email", unique=True)
# Documents: owner_id for quick lookups
await db.documents.create_index("owner_id")
# Sessions: owner_id + name
await db.sessions.create_index([("owner_id", 1), ("name", 1)], unique=True)
# Messages: owner_id + session_id ordered by time
await db.messages.create_index([("owner_id", 1), ("session_id", 1), ("ts", 1)])
|