Files
todo-cli/resources/seq_flow/20260606123307.mmd
T
2026-06-06 12:36:25 +00:00

55 lines
1.9 KiB
Plaintext

sequenceDiagram
participant User as 用户
participant CLI as TodoCLI
participant Manager as TodoManager
participant Storage as Storage
participant File as JSON文件
User->>CLI: python main.py add "任务标题" -d "描述" -due 2025-01-01
CLI->>CLI: _setup_parser() 解析参数
CLI->>CLI: _handle_add(args)
CLI->>Manager: add(title, description, due_date)
Manager->>Manager: 生成新TodoItem,设置id=next_id
Manager->>Manager: 将item加入items列表
Manager->>Manager: _save()
Manager->>Storage: save([item.to_dict() for item in items])
Storage->>File: 写入JSON文件
File-->>Storage: 成功
Storage-->>Manager: None
Manager-->>CLI: 返回新TodoItem
CLI-->>User: 打印添加成功信息
User->>CLI: python main.py list
CLI->>CLI: _handle_list(args)
CLI->>Manager: list_all()
Manager->>Manager: 返回items列表
Manager-->>CLI: list[TodoItem]
CLI->>CLI: 格式化输出表格
CLI-->>User: 显示所有任务
User->>CLI: python main.py done 1
CLI->>CLI: _handle_done(args)
CLI->>Manager: mark_done(1)
Manager->>Manager: _find_by_id(1) -> item
Manager->>Manager: item.completed = True
Manager->>Manager: _save()
Manager-->>CLI: True
CLI-->>User: 打印标记成功
User->>CLI: python main.py delete 1
CLI->>CLI: _handle_delete(args)
CLI->>Manager: delete(1)
Manager->>Manager: _find_by_id(1) -> item
Manager->>Manager: 从items中移除
Manager->>Manager: _save()
Manager-->>CLI: True
CLI-->>User: 打印删除成功
User->>CLI: python main.py edit 1 --title "新标题" --description "新描述"
CLI->>CLI: _handle_edit(args)
CLI->>Manager: edit(1, title="新标题", description="新描述")
Manager->>Manager: _find_by_id(1) -> item
Manager->>Manager: 更新item属性
Manager->>Manager: _save()
Manager-->>CLI: True
CLI-->>User: 打印编辑成功