from sqlalchemy import select from models import Status from repositories.base import BaseRepository from schemas.status import UpdateStatusSchema class StatusRepository(BaseRepository): async def get_all(self, board_id: int) -> list[Status]: stmt = ( select(Status) .where(Status.is_deleted.is_(False), Status.board_id == board_id) ) result = await self.session.execute(stmt) return list(result.scalars().all()) async def get_by_id(self, status_id: int) -> Status | None: 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 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 self.session.add(status) await self.session.commit() await self.session.refresh(status) return status