Files
xiaoxia-saas/packages/application/update_task_use_case.py
T
2026-06-21 06:52:19 +08:00

36 lines
973 B
Python

"""更新任务基本信息用例"""
from packages.domain import Task
from packages.ports import TaskRepository
class UpdateTaskUseCase:
"""更新任务基本信息"""
def __init__(self, task_repo: TaskRepository):
self.task_repo = task_repo
def execute(
self,
task_id: str,
name: str | None = None,
description: str | None = None,
priority: str | None = None,
assignee_user_id: str | None = None,
) -> Task:
task = self.task_repo.get_by_id(task_id)
if not task:
raise ValueError(f"Task {task_id} not found")
if name is not None:
task.name = name
if description is not None:
task.description = description
if priority is not None:
task.priority = priority
if assignee_user_id is not None:
task.assignee_user_id = assignee_user_id
self.task_repo.update(task)
return task