package connector_syncstate

import (
	"context"
	"database/sql"

	"github.com/pingcap-inc/nexuscrm-connectors/features/connector/packstate"
)

// NewControlplanePackResolver returns a PackResolver backed by
// packstate.ResolveConnectorPackByNamespace.
func NewControlplanePackResolver(db *sql.DB) PackResolver {
	return &controlplanePackResolver{db: db}
}

type controlplanePackResolver struct {
	db *sql.DB
}

func (r *controlplanePackResolver) ResolveConnectorPackByNamespace(ctx context.Context, namespace string) (string, bool, error) {
	row, ok, err := packstate.ResolveConnectorPackByNamespace(ctx, r.db, namespace)
	if err != nil {
		return "", false, err
	}
	if !ok {
		return "", false, nil
	}
	return row.InstallID, true, nil
}
