package runtime import ( "context" "git.sendico.io/tech/sxchnge/product/app/api" amr "git.sendico.io/tech/sxchnge/product/app/health" httptransport "git.sendico.io/tech/sxchnge/product/app/http" "git.sendico.io/tech/sxchnge/product/app/urls" "git.sendico.io/tech/sxchnge/shared/database" "git.sendico.io/tech/sxchnge/shared/logging" "git.sendico.io/tech/sxchnge/shared/service" ) type Microservices = []mservice.MicroService // APIImp represents the structure of the APIImp type APIImp struct { lifecycleCtx context.Context logger mlogger.Logger db db.Factory domain domainprovider.DomainProvider config *api.Config profile api.ConfigProvider runtime api.RuntimeConfig components api.RuntimeComponents services Microservices health amr.Health mw *httptransport.Middleware } func (a *APIImp) LifecycleContext() context.Context { return a.lifecycleCtx } func (a *APIImp) Logger() mlogger.Logger { return a.logger } func (a *APIImp) Config() *api.Config { return a.config } func (a *APIImp) ProfileConfig() api.ConfigProvider { return a.profile } func (a *APIImp) DBFactory() db.Factory { return a.db } func (a *APIImp) DomainProvider() domainprovider.DomainProvider { return a.domain } func (a *APIImp) Register() api.Register { return a.mw } func (a *APIImp) RuntimeComponent(name string) any { if a == nil || a.components == nil { return nil } return a.components[name] } func (a *APIImp) Name() string { return "api" }