From 0dd3c50be8008a19015570ebccfef6058c9821b9 Mon Sep 17 00:00:00 2001 From: AlexSserb Date: Fri, 15 Nov 2024 20:34:48 +0400 Subject: [PATCH] feat: deleting groups of deals --- services/deal.py | 5 ++++- services/deal_group.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/services/deal.py b/services/deal.py index 1e32ab4..3e29256 100644 --- a/services/deal.py +++ b/services/deal.py @@ -90,7 +90,10 @@ class DealService(BaseService): deal = await self._get_deal_by_id(request.deal_id) if not deal: return DealDeleteResponse(ok=False, message="Сделка не найдена") - deal.is_deleted = True + if deal.group: + await DealGroupService(self.session).delete_group(deal.group.id) + else: + deal.is_deleted = True await self.session.commit() return DealDeleteResponse(ok=True, message="Сделка успешно удалена") diff --git a/services/deal_group.py b/services/deal_group.py index d42a0f7..cb3d943 100644 --- a/services/deal_group.py +++ b/services/deal_group.py @@ -30,3 +30,9 @@ class DealGroupService(BaseService): for deal in deals: deal.is_completed = True await self.session.commit() + + async def delete_group(self, group_id: int) -> None: + deals = await self.get_deals_by_group_id(group_id) + for deal in deals: + deal.is_deleted = True + await self.session.commit()