package config import ( "errors" "os" ) type Config struct { AppEnv string MysqlDSN string RabbitMQURL string ExchangeName string QueueName string RoutingKey string } func NewConfig() (*Config, error) { cfg := &Config{ AppEnv: os.Getenv("APP_ENV"), MysqlDSN: os.Getenv("MYSQL_DSN"), RabbitMQURL: os.Getenv("RABBITMQ_URL"), ExchangeName: os.Getenv("EXCHANGE_NAME"), QueueName: os.Getenv("QUEUE_NAME"), RoutingKey: os.Getenv("ROUTING_KEY"), } if cfg.MysqlDSN == "" || cfg.RabbitMQURL == "" || cfg.ExchangeName == "" || cfg.QueueName == "" || cfg.RoutingKey == "" { return nil, errors.New("missing required environment variables") } return cfg, nil }