feat: adding services kit to deal

This commit is contained in:
2025-09-16 18:13:19 +04:00
parent 98d3026e0d
commit 1a9dbd857a
10 changed files with 102 additions and 62 deletions

View File

@ -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()

View File

@ -16,7 +16,6 @@ class ProductServiceRepository(
RepUpdateMixin[DealProductService, UpdateProductServiceSchema],
):
entity_class = DealProductService
entity_not_found_msg = "Связь услуги с товаром не найдена"
session: AsyncSession
async def get_by_id(