package queryqueue import ( "context" "queryorchestration/internal/database" "queryorchestration/internal/job/collector" queryprocessor "queryorchestration/internal/query/processor" "queryorchestration/internal/query/result" "github.com/google/uuid" ) type Queue struct { unsyncedQueue []*queryprocessor.Query collectorQueries []*queryprocessor.Query results []*result.Result collector *collector.Collector db *database.Connection documentId uuid.UUID cleanVersion int32 textVersion int32 } type NewConfig struct { DB *database.Connection Collector *collector.Collector Results []*result.Result DocumentID uuid.UUID CleanVersion int32 TextVersion int32 } func New(ctx context.Context, cfg *NewConfig) (*Queue, error) { queue := Queue{ db: cfg.DB, results: cfg.Results, collector: cfg.Collector, documentId: cfg.DocumentID, cleanVersion: cfg.CleanVersion, textVersion: cfg.TextVersion, } err := queue.getCollectorQueries(ctx) if err != nil { return nil, err } queue.getUnsyncedQueries() return &queue, nil } func (q *Queue) GetQueue() []*queryprocessor.Query { return q.unsyncedQueue }