feat: patch deal endpoint

This commit is contained in:
2025-08-05 16:32:49 +04:00
parent 3e2839e725
commit 5db5f116af
4 changed files with 60 additions and 3 deletions

View File

@ -2,6 +2,7 @@ from sqlalchemy import select
from models import Deal
from repositories.base import BaseRepository
from schemas.deal import UpdateDealSchema
class DealRepository(BaseRepository):
@ -9,3 +10,18 @@ class DealRepository(BaseRepository):
stmt = select(Deal).where(Deal.is_deleted.is_(False), Deal.board_id == board_id)
result = await self.session.execute(stmt)
return list(result.scalars().all())
async def get_by_id(self, deal_id: int) -> Deal | None:
stmt = select(Deal).where(Deal.id == deal_id, Deal.is_deleted.is_(False))
result = await self.session.execute(stmt)
return result.scalar_one_or_none()
async def update(self, deal: Deal, data: UpdateDealSchema) -> Deal:
deal.lexorank = data.lexorank if data.lexorank else deal.lexorank
deal.name = data.name if data.name else deal.name
deal.status_id = data.status_id if data.status_id else deal.status_id
self.session.add(deal)
await self.session.commit()
await self.session.refresh(deal)
return deal