package upstreamimpl import ( "context" "git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/model" "git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/service" ) const ( templateModelDirect = "direct" templateModelSharedToken = "shared_token" ) // Model registrations are deliberately separate from concrete temp_key // registrations. This lets multiple source-specific templates share one // implementation while keeping existing exact-key behavior unchanged. func init() { api := service.UpstreamAPI() // direct is a classification value, not a generic implementation. Direct // protocols must register their concrete temp_key (for example sim_yd_v5). // shared_token is the only model-backed implementation because multiple // source-specific templates share the OneLink business API. api.RegisterModel(templateModelSharedToken, func(ctx context.Context, cfg *model.SimChannelConfigItemCache) model.SimCardChannelI { return NewSimOneLinkShared().NewTemp(ctx, cfg) }) }