blob: 398cb74d2894f6c44e5668a1908e0adfa85e4774 [file] [log] [blame]
iomodod5b4dec2025-07-25 14:31:40 +04001package tm
2
3import (
4 "context"
5)
6
7// TaskManager defines the interface for task management operations
8type TaskManager interface {
9 // Task operations
10 CreateTask(ctx context.Context, req *TaskCreateRequest) (*Task, error)
iomodo50598c62025-07-27 22:06:32 +040011 GetTask(taskID string) (*Task, error) // Simplified for MVP
12 UpdateTask(task *Task) error // Simplified for MVP
iomodod5b4dec2025-07-25 14:31:40 +040013 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)
iomodo50598c62025-07-27 22:06:32 +040022 GetTasksByAssignee(assignee string) ([]*Task, error) // For MVP auto-assignment
iomodod5b4dec2025-07-25 14:31:40 +040023 GetTasksByStatus(ctx context.Context, status TaskStatus, page, pageSize int) (*TaskList, error)
24 GetTasksByPriority(ctx context.Context, priority TaskPriority, page, pageSize int) (*TaskList, error)
iomodoa53240a2025-07-30 17:33:35 +040025
26 // Proposals
iomodo1c1c60d2025-07-30 17:54:10 +040027 ProposeSubTasks(ctx context.Context, task *Task, analysis *SubtaskAnalysis, agentName string) (string, error)
iomodoa53240a2025-07-30 17:33:35 +040028 ProposeSolution(ctx context.Context, task *Task, solution, agentName string) (string, error)
iomodo1c1c60d2025-07-30 17:54:10 +040029 Close() error
iomodod5b4dec2025-07-25 14:31:40 +040030}