代码提交
This commit is contained in:
1 parent
27e6b0b23e
commit
d7ad0624b7
36 files changed
+2194
-287
No files matched your search
+60
@@ -0,0 +1,60 @@
|
||||
"""Persistence contract for the temporary TaskCOP task bridge.
|
||||
|
||||
The legacy situation-overview frontend distinguishes the global task list from
|
||||
"my tasks". Task data is shared, while ``created_by`` is retained for the
|
||||
per-user filter and as an audit field.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
from datetime import datetime
|
||||
from typing import Any
|
||||
|
||||
TASK_STATUS_ANALYSIS_COMPLETED = 25
|
||||
|
||||
|
||||
class TaskCopTaskStore(ABC):
|
||||
@abstractmethod
|
||||
async def create_task(self, data: dict[str, Any]) -> dict[str, Any]:
|
||||
"""Persist one task and return its legacy-compatible record."""
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
async def upsert_task(self, data: dict[str, Any]) -> tuple[dict[str, Any], bool]:
|
||||
"""Create or completely replace one task identified by ``data['id']``.
|
||||
|
||||
Returns the legacy-compatible record and whether a new row was created.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
async def list_tasks(
|
||||
self,
|
||||
*,
|
||||
created_by: str | None = None,
|
||||
keyword: str = "",
|
||||
task_direction: str | None = None,
|
||||
task_statuses: set[int] | None = None,
|
||||
start_time: datetime | None = None,
|
||||
end_time: datetime | None = None,
|
||||
page_num: int = 1,
|
||||
page_size: int = 10,
|
||||
) -> tuple[int, list[dict[str, Any]]]:
|
||||
"""Return ``(total, records)`` using TaskCOP list semantics."""
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
async def get_task(self, task_id: str) -> dict[str, Any] | None:
|
||||
"""Return a legacy-compatible task record, or ``None`` when absent."""
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
async def delete_task(self, task_id: str) -> bool:
|
||||
"""Delete one task and return whether it existed."""
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
async def mark_analysis_completed(self, task_id: str) -> bool:
|
||||
"""Move an existing task to the completed-analysis status (25)."""
|
||||
raise NotImplementedError
|
||||
Reference in new issue
Block a user