refactor: repository get all mixin
This commit is contained in:
@ -1,19 +1,29 @@
|
||||
from sqlalchemy import select, func
|
||||
from sqlalchemy import select, func, Select
|
||||
|
||||
from models import Status, Deal
|
||||
from repositories.base import BaseRepository
|
||||
from repositories.mixins import RepDeleteMixin, RepCreateMixin, GetByIdMixin
|
||||
from repositories.mixins import (
|
||||
RepDeleteMixin,
|
||||
RepCreateMixin,
|
||||
GetByIdMixin,
|
||||
GetAllMixin,
|
||||
)
|
||||
from schemas.status import UpdateStatusSchema, CreateStatusSchema
|
||||
|
||||
|
||||
class StatusRepository(
|
||||
BaseRepository,
|
||||
GetAllMixin[Status],
|
||||
RepDeleteMixin[Status],
|
||||
RepCreateMixin[Status, CreateStatusSchema],
|
||||
GetByIdMixin[Status],
|
||||
):
|
||||
entity_class = Status
|
||||
|
||||
def _process_get_all_stmt_with_args(self, stmt: Select, *args) -> Select:
|
||||
board_id = args[0]
|
||||
return stmt.where(Status.board_id == board_id).order_by(Status.lexorank)
|
||||
|
||||
async def get_all(self, board_id: int) -> list[Status]:
|
||||
stmt = (
|
||||
select(Status)
|
||||
|
||||
Reference in New Issue
Block a user