package services import ( "github.com/bams/backend/internal/config" "github.com/bams/backend/internal/logger" "github.com/bams/backend/internal/services/bacula" "github.com/bams/backend/internal/services/disk" "github.com/bams/backend/internal/services/iscsi" "github.com/bams/backend/internal/services/logs" "github.com/bams/backend/internal/services/tape" ) type ServiceManager struct { Config *config.Config Logger *logger.Logger Disk *disk.Service ISCSI *iscsi.Service Tape *tape.Service Bacula *bacula.Service Logs *logs.Service } func NewServiceManager(cfg *config.Config, log *logger.Logger) *ServiceManager { sm := &ServiceManager{ Config: cfg, Logger: log, } // Initialize services sm.Disk = disk.NewService(cfg, log) sm.ISCSI = iscsi.NewService(cfg, log) sm.Tape = tape.NewService(cfg, log) sm.Bacula = bacula.NewService(cfg, log) sm.Logs = logs.NewService(cfg, log) return sm } func (sm *ServiceManager) Shutdown() { sm.Logger.Info("Shutting down services...") // Graceful shutdown of all services }