// Package registry owns app registry and manifest persistence helpers.
package registry

import (
	"context"

	"github.com/tidbcloud/AgentTeam/internal/coredb"
	"github.com/tidbcloud/AgentTeam/internal/store/model"
)

// Store owns app registry and manifest read behavior.
type Store struct {
	db coredb.Queryer
}

// New constructs a registry Store.
func New(db coredb.Queryer) *Store {
	return &Store{db: db}
}

// LoadLatestInstallableMetadataByAppID resolves installable app metadata keyed by app ID.
func (store *Store) LoadLatestInstallableMetadataByAppID(ctx context.Context, appIDs []string) (map[string]model.LatestInstallableAppMetadata, error) {
	return LoadLatestInstallableMetadataByAppID(ctx, store.db, appIDs)
}
