| # Task Management (tm) Package |
| |
| The `tm` package provides a comprehensive task management system with support for task dependencies, ownership, and various task states. |
| |
| ## Overview |
| |
| This package defines interfaces and types for managing tasks in a system where: |
| - Each task has a single owner |
| - Tasks can be in various states (todo, in progress, completed, etc.) |
| - Tasks have priorities and due dates |
| |
| ## Core Components |
| |
| ### Types (`types.go`) |
| |
| - **Task**: The main task entity with all task properties |
| - **TaskStatus**: Enum for task states (in progress, completed, etc.) |
| - **TaskPriority**: Enum for task priorities (low, medium, high, urgent) |
| - **Owner**: Represents a task owner |
| |
| - **TaskFilter**: For filtering task queries |
| - **Request/Response types**: For API operations |
| |
| ### Interfaces (`interface.go`) |
| |
| #### TaskManager |
| The main interface for task management operations: |
| - CRUD operations for tasks |
| - Task status management (start, complete) |
| - Task queries and filtering |
| - Task archiving |
| |
| ### Errors (`errors.go`) |
| |
| Comprehensive error definitions: |
| - Common task management errors |
| - Task-specific errors with context |
| |
| ## Key Features |
| |
| ### Task States |
| - **To Do**: Task is created but not started |
| - **In Progress**: Task is currently being worked on |
| - **Completed**: Task is finished |
| - **Archived**: Task is archived (soft delete) |
| |
| ### Task Priorities |
| - **Low**: Low priority tasks |
| - **Medium**: Normal priority tasks |
| - **High**: High priority tasks |
| |
| ### Filtering and Queries |
| - Filter by owner, status, priority |
| - Filter by date ranges |
| - Pagination support |
| |
| ## Usage Example |
| |
| ```go |
| // Create a task manager implementation |
| var taskManager tm.TaskManager |
| |
| // Create a new task |
| task, err := taskManager.CreateTask(ctx, &tm.TaskCreateRequest{ |
| Title: "Implement user authentication", |
| Description: "Add login and registration functionality", |
| OwnerID: "user123", |
| Priority: tm.PriorityHigh, |
| }) |
| |
| // Start a task |
| task, err = taskManager.StartTask(ctx, "task1") |
| |
| // Complete a task |
| task, err = taskManager.CompleteTask(ctx, "task1") |
| ``` |