refactor: repository create mixin

This commit is contained in:
2025-09-05 00:04:09 +04:00
parent c632fb8037
commit e5be35be35
9 changed files with 54 additions and 43 deletions

View File

@ -4,11 +4,17 @@ from sqlalchemy import select, func
from models import Status, Deal
from repositories.base import BaseRepository
from repositories.mixins import RepDeleteMixin
from repositories.mixins import RepDeleteMixin, RepCreateMixin
from schemas.status import UpdateStatusSchema, CreateStatusSchema
class StatusRepository(BaseRepository, RepDeleteMixin[Status]):
class StatusRepository(
BaseRepository,
RepDeleteMixin[Status],
RepCreateMixin[Deal, CreateStatusSchema],
):
entity_class = Status
async def get_all(self, board_id: int) -> list[Status]:
stmt = (
select(Status)
@ -30,13 +36,6 @@ class StatusRepository(BaseRepository, RepDeleteMixin[Status]):
result = await self.session.execute(stmt)
return result.scalar()
async def create(self, data: CreateStatusSchema) -> Status:
status = Status(**data.model_dump())
self.session.add(status)
await self.session.commit()
await self.session.refresh(status)
return status
async def update(self, status: Status, data: UpdateStatusSchema) -> Status:
status.lexorank = data.lexorank if data.lexorank else status.lexorank
status.name = data.name if data.name else status.name