from fastapi import HTTPException from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select from app.db import User # Helper function to check user ownership async def check_ownership(session: AsyncSession, model, item_id: int, user: User): item = await session.execute(select(model).filter(model.id == item_id, model.user_id == user.id)) item = item.scalars().first() if not item: raise HTTPException(status_code=404, detail="Item not found or you don't have permission to access it") return item