feat: adding services kit to deal
This commit is contained in:
@ -1,9 +1,11 @@
|
||||
from typing import Optional
|
||||
|
||||
from sqlalchemy import Select, select
|
||||
from sqlalchemy import Select, select, delete
|
||||
from sqlalchemy.orm import joinedload
|
||||
|
||||
from models import Deal
|
||||
from modules.fulfillment_base.models import DealService
|
||||
from modules.fulfillment_base.models.service import ServicesKit
|
||||
from modules.fulfillment_base.schemas.deal_service import (
|
||||
UpdateDealServiceSchema,
|
||||
CreateDealServiceSchema,
|
||||
@ -51,3 +53,19 @@ class DealServiceRepository(
|
||||
async def delete(self, obj: DealService):
|
||||
await self.session.delete(obj)
|
||||
await self.session.commit()
|
||||
|
||||
async def delete_deal_services(self, deal_id: int):
|
||||
stmt = delete(DealService).where(DealService.deal_id == deal_id)
|
||||
await self.session.execute(stmt)
|
||||
await self.session.flush()
|
||||
|
||||
async def add_services_kit(self, deal: Deal, services_kit: ServicesKit):
|
||||
for service in services_kit.services:
|
||||
deal_service = DealService(
|
||||
deal_id=deal.id,
|
||||
service_id=service.id,
|
||||
price=service.price,
|
||||
quantity=1,
|
||||
)
|
||||
self.session.add(deal_service)
|
||||
await self.session.commit()
|
||||
|
||||
@ -16,7 +16,6 @@ class ProductServiceRepository(
|
||||
RepUpdateMixin[DealProductService, UpdateProductServiceSchema],
|
||||
):
|
||||
entity_class = DealProductService
|
||||
entity_not_found_msg = "Связь услуги с товаром не найдена"
|
||||
session: AsyncSession
|
||||
|
||||
async def get_by_id(
|
||||
|
||||
Reference in New Issue
Block a user