tasks_interfaces.py•819 B
from abc import ABC, abstractmethod
class DatabaseABC[T](ABC):
@abstractmethod
def add_task(self, title: str, description: str = "") -> int: ...
@abstractmethod
def get_tasks(self, limit: int = 10) -> list[T]: ...
@abstractmethod
def get_task(self, task_id: int) -> T | None: ...
@abstractmethod
def update_task(
self, task_id: int, title: str, description: str, status: int
) -> T: ...
@abstractmethod
def delete_task(self, task_id: int) -> None: ...
@abstractmethod
def get_schema(self) -> dict: ...
@abstractmethod
def close(self) -> None: ...
@abstractmethod
def filter_tasks(
self,
title: str,
description: str,
status: int,
created_at: str,
limit: int = 20,
) -> list[T]: ...