import uuid from typing import Sequence from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.models.distribution import Distribution async def create(db: AsyncSession, distribution: Distribution, *, commit: bool = True) -> Distribution: db.add(distribution) if commit: await db.commit() await db.refresh(distribution) return distribution async def list_by_version(db: AsyncSession, version_id: uuid.UUID) -> Sequence[Distribution]: result = await db.execute(select(Distribution).where(Distribution.version_id == version_id)) return result.scalars().all() async def get(db: AsyncSession, distribution_id: uuid.UUID) -> Distribution | None: result = await db.execute(select(Distribution).where(Distribution.id == distribution_id)) return result.scalar_one_or_none()