| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # app/services/product_routing_service.py
- from sqlalchemy.ext.asyncio import AsyncSession
- from sqlalchemy import select, delete
- from app.core.biz_exception import NotFoundError
- from app.models.product_routing import VasProductRouting
- from app.schemas.product_routing import VasProductRoutingCreate
- class ProductRoutingService:
- @staticmethod
- async def create(
- db: AsyncSession,
- data: VasProductRoutingCreate,
- ) -> VasProductRouting:
- rec = VasProductRouting(**data.dict())
- db.add(rec)
- await db.commit()
- await db.refresh(rec)
- return rec
- @staticmethod
- async def list_by_product(
- db: AsyncSession,
- product_id: int,
- ):
- stmt = select(VasProductRouting).where(
- VasProductRouting.product_id == product_id
- )
- result = await db.execute(stmt)
- return result.scalars().all()
- @staticmethod
- async def delete(
- db: AsyncSession,
- id: int,
- ):
- stmt = select(VasProductRouting).where(
- VasProductRouting.id == id
- )
- obj = (await db.execute(stmt)).scalar_one_or_none()
- if not obj:
- raise NotFoundError("Product routing not exist")
- await db.delete(obj)
- await db.commit()
|