28 lines
1.3 KiB
Go
28 lines
1.3 KiB
Go
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
|
|
}
|