blob: 93b0f294e8cddbd5e8fbcabe24a05ac8ed8b5a20 [file] [log] [blame]
package tm
import (
"context"
)
// TaskManager defines the interface for task management operations
type TaskManager interface {
// Task operations
CreateTask(ctx context.Context, req *TaskCreateRequest) (*Task, error)
GetTask(ctx context.Context, id string) (*Task, error)
UpdateTask(ctx context.Context, id string, req *TaskUpdateRequest) (*Task, error)
ArchiveTask(ctx context.Context, id string) error
ListTasks(ctx context.Context, filter *TaskFilter, page, pageSize int) (*TaskList, error)
// Task status operations
StartTask(ctx context.Context, id string) (*Task, error)
CompleteTask(ctx context.Context, id string) (*Task, error)
// Task queries
GetTasksByOwner(ctx context.Context, ownerID string, page, pageSize int) (*TaskList, error)
GetTasksByStatus(ctx context.Context, status TaskStatus, page, pageSize int) (*TaskList, error)
GetTasksByPriority(ctx context.Context, priority TaskPriority, page, pageSize int) (*TaskList, error)
}