Files
ai-workflow/inbox/internal/app/dashboard/service.go
T

50 lines
2.1 KiB
Go

package dashboard
import (
"context"
"inbox/internal/domain/humantask"
"inbox/internal/domain/lane"
"inbox/internal/domain/lanesync"
"inbox/internal/domain/message"
"inbox/internal/domain/role"
"inbox/internal/domain/task"
"inbox/internal/domain/taskgraph"
"inbox/internal/domain/topic"
"inbox/internal/domain/workflow"
"inbox/internal/domain/workspace"
)
type OverviewRepository interface {
GetProject(ctx context.Context, projectID string) (workspace.Project, error)
GetTopicBySlugOrTitle(ctx context.Context, workspaceID, value string, spaces ...topic.Space) (topic.Record, error)
ListTopics(ctx context.Context, workspaceID string) ([]topic.Record, error)
ListTopicsBySpace(ctx context.Context, workspaceID string, space topic.Space) ([]topic.Record, error)
ListMessagesByWorkspace(ctx context.Context, workspaceID string) ([]message.Record, error)
ListMessagesByTopic(ctx context.Context, topicID string) ([]message.Record, error)
ListRoles(ctx context.Context) ([]role.Definition, error)
ListLanesByWorkspace(ctx context.Context, workspaceID string) ([]lane.Record, error)
ListLanesByTopic(ctx context.Context, topicID string) ([]lane.Record, error)
ListLaneSyncsByTopic(ctx context.Context, topicID string) ([]lanesync.Record, error)
ListTasksByTopic(ctx context.Context, topicID string) ([]task.Record, error)
ListTaskDependencies(ctx context.Context, taskID string) ([]task.Dependency, error)
GetLatestTaskGraphVersionByTopic(ctx context.Context, topicID string) (taskgraph.Record, error)
ListWorkflowRunsByWorkspace(ctx context.Context, workspaceID string) ([]workflow.Run, error)
ListWorkflowRunsByTopic(ctx context.Context, topicID string) ([]workflow.Run, error)
ListPendingHumanTasksByWorkspace(ctx context.Context, workspaceID string) ([]humantask.Record, error)
ListPendingDeliveriesByWorkspace(ctx context.Context, workspaceID string) ([]message.PendingDelivery, error)
ListWorkflowRunLogs(ctx context.Context, runID string, afterSeq int) ([]workflow.RunLog, error)
}
type Repository interface {
OverviewRepository
}
type Service struct {
repo Repository
}
func NewService(repo Repository) *Service {
return &Service{repo: repo}
}