refactor: update repository mixin
This commit is contained in:
@ -5,7 +5,12 @@ from sqlalchemy.orm import joinedload
|
||||
|
||||
from models import Deal, CardStatusHistory, Board
|
||||
from repositories.base import BaseRepository
|
||||
from repositories.mixins import RepDeleteMixin, RepCreateMixin, GetByIdMixin
|
||||
from repositories.mixins import (
|
||||
RepDeleteMixin,
|
||||
RepCreateMixin,
|
||||
GetByIdMixin,
|
||||
RepUpdateMixin,
|
||||
)
|
||||
from schemas.base import SortDir
|
||||
from schemas.deal import UpdateDealSchema, CreateDealSchema
|
||||
from utils.sorting import apply_sorting
|
||||
@ -15,6 +20,7 @@ class DealRepository(
|
||||
BaseRepository,
|
||||
RepDeleteMixin[Deal],
|
||||
RepCreateMixin[Deal, CreateDealSchema],
|
||||
RepUpdateMixin[Deal, UpdateDealSchema],
|
||||
GetByIdMixin[Deal],
|
||||
):
|
||||
entity_class = Deal
|
||||
@ -65,9 +71,8 @@ class DealRepository(
|
||||
return stmt.options(joinedload(Deal.status), joinedload(Deal.board))
|
||||
|
||||
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.board_id = data.board_id if data.board_id else deal.board_id
|
||||
fields = ["lexorank", "name", "board_id"]
|
||||
deal = await self._apply_update_data_to_model(deal, data, False, fields)
|
||||
|
||||
if data.status_id and deal.status_id != data.status_id:
|
||||
deal.status_history.append(
|
||||
|
||||
Reference in New Issue
Block a user