from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.model.platform import RequestIdempotency class IdempotencyRepository: def __init__(self, session: AsyncSession) -> None: self.session = session async def find(self, user_id: int, agent_type: str, key: str) -> RequestIdempotency | None: statement = select(RequestIdempotency).where( RequestIdempotency.user_id == user_id, RequestIdempotency.agent_type == agent_type, RequestIdempotency.idempotency_key == key, ) result = await self.session.execute(statement) return result.scalar_one_or_none()