package config

import (
	"log"

	"github.com/kelseyhightower/envconfig"
)

type smtpConfig struct {
	Port     int    `envconfig:"SMTP_PORT"`
	Host     string `envconfig:"SMTP_HOST"`
	Sender   string `envconfig:"SMTP_SENDER"`
	Password string `envconfig:"SMTP_PASSWORD"`
}

type kafkaConfig struct {
	Port int    `envconfig:"KAFKA_PORT"`
	Host string `envconfig:"KAFKA_HOST"`
}

// ...
type Config struct {
	Smtp  smtpConfig
	Kafka kafkaConfig
}

func NewConfig() *Config {
	c := Config{}
	err := envconfig.Process("", &c)
	if err != nil {
		log.Fatal(err.Error())
	}

	return &c
}