package helpers import ( "context" "github.com/tech/sendico/pkg/model" "go.mongodb.org/mongo-driver/bson/primitive" ) // TaskManager defines the interface for task management operations type TaskManager interface { // CreateTask creates a new task with proper ordering and numbering // The caller is responsible for wrapping this in a transaction CreateTask(ctx context.Context, accountRef, organizationRef primitive.ObjectID, task *model.Task) error // MoveTask moves a task to a new project and status with proper ordering and numbering // The caller is responsible for wrapping this in a transaction MoveTask(ctx context.Context, accountRef, organizationRef primitive.ObjectID, taskRef, targetProjectRef, targetStatusRef primitive.ObjectID) error // MoveTasks moves multiple tasks to a new project and status with proper ordering and numbering // The caller is responsible for wrapping this in a transaction MoveTasks(ctx context.Context, accountRef, organizationRef, sourceProjectRef, targetProjectRef, targetStatusRef primitive.ObjectID) error // DeleteTask deletes a task and updates the project if necessary // The caller is responsible for wrapping this in a transaction DeleteTask(ctx context.Context, accountRef, taskRef primitive.ObjectID) error }