package config import ( "time" ) type Config struct { App App Http Http TasksSource TasksSource DBase DBase Auth Auth } type App struct { LogLvl string Mode string } type Http struct { Host string Port string Prefix string GinMode string } type TasksSource struct { Host string Port string Timeout time.Duration } type DBase struct { Host string Port string Username string Password string DBName string } type Auth struct { Host string Port string Name string Description string BaseCode int EndCode int SecretHash string Status string Timeout time.Duration } func NewConfig() Config { return Config{ App: App{ LogLvl: getEnv("APP_LOG_LVL", "debug"), Mode: getEnv("APP_MODE", "dev"), }, Http: Http{ Host: getEnv("HTTP_HOST", "0.0.0.0"), Port: getEnv("HTTP_PORT", "41083"), Prefix: getEnv("HTTP_PREFIX", "/api/v2"), GinMode: getEnv("GIN_MODE", "dev"), }, TasksSource: TasksSource{ Host: getEnv("TASK_API_HOST", "127.0.0.1"), Port: getEnv("TASK_API_PORT", "61000"), Timeout: getEnvSeconds("TASK_SOURCE_TIMEOUT_SECONDS", 60), }, DBase: DBase{ Host: getEnv("DB_HOST", "10.0.0.4"), Port: getEnv("DB_PORT", "54326"), Username: getEnv("DB_USERNAME", "merch_app_user"), Password: getEnv("DB_PASSWORD", "7kek8wait9"), DBName: getEnv("DB_NAME", "merch_dev"), }, Auth: Auth{ Host: getEnv("AUTH_HOST", "127.0.0.1"), Port: getEnv("AUTH_PORT", "19090"), Name: getEnv("AUTH_NAME", "merch_api"), Description: getEnv("AUTH_DESCRIPTION", "merch_api_service"), BaseCode: getEnvInt("AUTH_BASE_CODE", 10_000), EndCode: getEnvInt("AUTH_END_CODE", 11_000), SecretHash: getEnv("AUTH_SECRET_HASH", "123"), Status: getEnv("AUTH_STATUS", getEnv("AUTH_STATUS", "active")), Timeout: getEnvSeconds("AUTH_CONNECT_TIMEOUT_SECONDS", 60), }, } }