refactor: repository get by id mixin
This commit is contained in:
@ -1,17 +1,16 @@
|
||||
from typing import Optional
|
||||
|
||||
from sqlalchemy import select, func
|
||||
|
||||
from models import Status, Deal
|
||||
from repositories.base import BaseRepository
|
||||
from repositories.mixins import RepDeleteMixin, RepCreateMixin
|
||||
from repositories.mixins import RepDeleteMixin, RepCreateMixin, GetByIdMixin
|
||||
from schemas.status import UpdateStatusSchema, CreateStatusSchema
|
||||
|
||||
|
||||
class StatusRepository(
|
||||
BaseRepository,
|
||||
RepDeleteMixin[Status],
|
||||
RepCreateMixin[Deal, CreateStatusSchema],
|
||||
RepCreateMixin[Status, CreateStatusSchema],
|
||||
GetByIdMixin[Status],
|
||||
):
|
||||
entity_class = Status
|
||||
|
||||
@ -24,13 +23,6 @@ class StatusRepository(
|
||||
result = await self.session.execute(stmt)
|
||||
return list(result.scalars().all())
|
||||
|
||||
async def get_by_id(self, status_id: int) -> Optional[Status]:
|
||||
stmt = select(Status).where(
|
||||
Status.id == status_id, Status.is_deleted.is_(False)
|
||||
)
|
||||
result = await self.session.execute(stmt)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
async def get_deals_count(self, status_id: int) -> int:
|
||||
stmt = select(func.count(Deal.id)).where(Deal.status_id == status_id)
|
||||
result = await self.session.execute(stmt)
|
||||
|
||||
Reference in New Issue
Block a user