blob: c505c6562e58801215ccd918becc60486a3823b8 [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)
25}