package features import ( "context" "github.com/openmeterio/openmeter/openmeter/llmcost" "github.com/openmeterio/openmeter/openmeter/meter" "github.com/openmeterio/openmeter/openmeter/productcatalog/feature" "github.com/openmeterio/openmeter/pkg/framework/transport/httptransport" ) type Handler interface { ListFeatures() ListFeaturesHandler GetFeature() GetFeatureHandler CreateFeature() CreateFeatureHandler UpdateFeature() UpdateFeatureHandler DeleteFeature() DeleteFeatureHandler } type handler struct { resolveNamespace func(ctx context.Context) (string, error) connector feature.FeatureConnector meterService meter.Service llmcostService llmcost.Service options []httptransport.HandlerOption } func New( resolveNamespace func(ctx context.Context) (string, error), connector feature.FeatureConnector, meterService meter.Service, llmcostService llmcost.Service, options ...httptransport.HandlerOption, ) Handler { return &handler{ resolveNamespace: resolveNamespace, connector: connector, meterService: meterService, llmcostService: llmcostService, options: options, } }