blob: 93b0f294e8cddbd5e8fbcabe24a05ac8ed8b5a20 [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)
11 GetTask(ctx context.Context, id string) (*Task, error)
12 UpdateTask(ctx context.Context, id string, req *TaskUpdateRequest) (*Task, error)
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)
22 GetTasksByStatus(ctx context.Context, status TaskStatus, page, pageSize int) (*TaskList, error)
23 GetTasksByPriority(ctx context.Context, priority TaskPriority, page, pageSize int) (*TaskList, error)
24}