Files
ctms/backend/app/crud/distribution.py
T
2026-05-28 10:56:28 +08:00

28 lines
886 B
Python

from __future__ import annotations
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()