| iomodo | d5b4dec | 2025-07-25 14:31:40 +0400 | [diff] [blame] | 1 | package tm |
| 2 | |
| 3 | import ( |
| 4 | "context" |
| 5 | ) |
| 6 | |
| 7 | // TaskManager defines the interface for task management operations |
| 8 | type TaskManager interface { |
| 9 | // Task operations |
| 10 | CreateTask(ctx context.Context, req *TaskCreateRequest) (*Task, error) |
| iomodo | 50598c6 | 2025-07-27 22:06:32 +0400 | [diff] [blame] | 11 | GetTask(taskID string) (*Task, error) // Simplified for MVP |
| 12 | UpdateTask(task *Task) error // Simplified for MVP |
| iomodo | d5b4dec | 2025-07-25 14:31:40 +0400 | [diff] [blame] | 13 | ArchiveTask(ctx context.Context, id string) error |
| 14 | ListTasks(ctx context.Context, filter *TaskFilter, page, pageSize int) (*TaskList, error) |
| 15 | |
| 16 | // Task status operations |
| 17 | StartTask(ctx context.Context, id string) (*Task, error) |
| 18 | CompleteTask(ctx context.Context, id string) (*Task, error) |
| 19 | |
| 20 | // Task queries |
| 21 | GetTasksByOwner(ctx context.Context, ownerID string, page, pageSize int) (*TaskList, error) |
| iomodo | 50598c6 | 2025-07-27 22:06:32 +0400 | [diff] [blame] | 22 | GetTasksByAssignee(assignee string) ([]*Task, error) // For MVP auto-assignment |
| iomodo | d5b4dec | 2025-07-25 14:31:40 +0400 | [diff] [blame] | 23 | GetTasksByStatus(ctx context.Context, status TaskStatus, page, pageSize int) (*TaskList, error) |
| 24 | GetTasksByPriority(ctx context.Context, priority TaskPriority, page, pageSize int) (*TaskList, error) |
| iomodo | a53240a | 2025-07-30 17:33:35 +0400 | [diff] [blame^] | 25 | |
| 26 | // Proposals |
| 27 | ProposeSubTasks(ctx context.Context, task *Task, analysis *SubtaskAnalysis) (string, error) |
| 28 | ProposeSolution(ctx context.Context, task *Task, solution, agentName string) (string, error) |
| iomodo | d5b4dec | 2025-07-25 14:31:40 +0400 | [diff] [blame] | 29 | } |