package query import ( "context" "gotemplate/internal/collector" "gotemplate/internal/database/repository" "github.com/google/uuid" ) type QueryType int const ( QueryTypeJsonExtractor = iota ) type Query struct { ID uuid.UUID Type QueryType RequiredQueryID uuid.UUID Version int32 } type Result struct { ID uuid.UUID QueryID uuid.UUID QueryVersion int32 } type ResultValue struct { ID uuid.UUID QueryID uuid.UUID Value string } type Queue struct { unsyncedQueue *[]Query collectorQueries *[]Query results *[]Result collector *collector.Collector db *repository.Queries cleanVersion int32 textVersion int32 documentId uuid.UUID } func NewQueue(ctx context.Context, db *repository.Queries, coll *collector.Collector, results *[]Result, docId uuid.UUID, cleanVersion int32, textVersion int32) (*Queue, error) { queue := Queue{ db: db, results: results, collector: coll, documentId: docId, cleanVersion: cleanVersion, textVersion: textVersion, } err := queue.getCollectorQueries(ctx) if err != nil { return nil, err } queue.getUnsyncedQueries() return &queue, nil } func (q *Queue) GetQueue() []Query { return *q.unsyncedQueue }