merch-api/config/config.go

94 lines
2 KiB
Go
Raw Permalink Normal View History

2026-02-23 18:34:26 +03:00
package config
2026-03-20 13:44:53 +03:00
import (
"time"
)
2026-02-23 18:34:26 +03:00
type Config struct {
App App
Http Http
TasksSource TasksSource
2026-02-23 20:22:21 +03:00
DBase DBase
2026-03-20 13:44:53 +03:00
Auth Auth
2026-02-23 18:34:26 +03:00
}
type App struct {
LogLvl string
2026-02-23 19:33:36 +03:00
Mode string
2026-02-23 18:34:26 +03:00
}
type Http struct {
Host string
Port string
2026-02-23 19:33:36 +03:00
Prefix string
2026-02-23 18:34:26 +03:00
GinMode string
}
type TasksSource struct {
Host string
Port string
Timeout time.Duration
}
2026-02-23 20:22:21 +03:00
type DBase struct {
Host string
Port string
Username string
Password string
DBName string
}
2026-03-20 13:44:53 +03:00
type Auth struct {
Host string
Port string
Name string
Description string
BaseCode int
EndCode int
SecretHash string
Status string
Timeout time.Duration
}
2026-02-23 18:34:26 +03:00
func NewConfig() Config {
return Config{
App: App{
LogLvl: getEnv("APP_LOG_LVL", "debug"),
2026-02-23 19:33:36 +03:00
Mode: getEnv("APP_MODE", "dev"),
2026-02-23 18:34:26 +03:00
},
Http: Http{
Host: getEnv("HTTP_HOST", "0.0.0.0"),
2026-02-23 19:33:36 +03:00
Port: getEnv("HTTP_PORT", "41083"),
Prefix: getEnv("HTTP_PREFIX", "/api/v2"),
2026-02-23 18:34:26 +03:00
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),
},
2026-02-23 20:22:21 +03:00
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"),
},
2026-03-20 13:44:53 +03:00
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),
},
2026-02-23 18:34:26 +03:00
}
}