from typing import List from sqlalchemy.orm import Session from app.crud.base import CRUDBase from app.models.task import Task from app.schemas.task import TaskCreate, TaskUpdate class CRUDTask(CRUDBase[Task, TaskCreate, TaskUpdate]): def get_multi_by_completed( self, db: Session, *, completed: bool, skip: int = 0, limit: int = 100 ) -> List[Task]: return ( db.query(self.model) .filter(Task.completed == completed) .offset(skip) .limit(limit) .all() ) def get_multi_by_priority( self, db: Session, *, priority: int, skip: int = 0, limit: int = 100 ) -> List[Task]: return ( db.query(self.model) .filter(Task.priority == priority) .offset(skip) .limit(limit) .all() ) def search_by_title( self, db: Session, *, title: str, skip: int = 0, limit: int = 100 ) -> List[Task]: return ( db.query(self.model) .filter(Task.title.ilike(f"%{title}%")) .offset(skip) .limit(limit) .all() ) task = CRUDTask(Task)