package services import ( "basic-sensor-receiver/config" "basic-sensor-receiver/integrations" "github.com/jmoiron/sqlx" ) type Services struct { SensorConfig *SensorConfigService SensorValues *SensorValuesService Sensors *SensorsService Sessions *SessionsService Auth *AuthService Dashboards *DashboardsService Alerts *AlertsService AlertsEvaluator *AlertsEvaluatorService ContactPoints *ContactPointsService MQTTBrokers *MQTTBrokersService } type Integrations struct { Telegram *integrations.TelegramIntegration MQTT *integrations.MQTTIntegration } type Context struct { DB *sqlx.DB Config *config.Config Services *Services Integrations *Integrations } func InitializeServices(ctx *Context) *Services { services := Services{} ctx.Services = &services services.SensorConfig = &SensorConfigService{ctx: ctx} services.SensorValues = &SensorValuesService{ctx: ctx} services.Sensors = &SensorsService{ctx: ctx} services.Sessions = &SessionsService{ctx: ctx} services.Auth = &AuthService{ctx: ctx} services.Dashboards = &DashboardsService{ctx: ctx} services.Alerts = &AlertsService{ctx: ctx} services.AlertsEvaluator = &AlertsEvaluatorService{ctx: ctx} services.ContactPoints = &ContactPointsService{ctx: ctx} services.MQTTBrokers = &MQTTBrokersService{ctx: ctx} ctx.Integrations = &Integrations{} ctx.Integrations.Telegram = &integrations.TelegramIntegration{} ctx.Integrations.MQTT = &integrations.MQTTIntegration{} return &services }