package models import ( "time" "github.com/golang-jwt/jwt/v5" "penahub.gitlab.yandexcloud.net/pena-services/customer/pkg/mongo" ) type Config struct { HTTP HTTPConfiguration Service ServiceConfiguration Database mongo.Configuration } type HTTPConfiguration struct { Host string `env:"HTTP_HOST,default=localhost"` Port string `env:"HTTP_PORT,default=8080"` } type ServiceConfiguration struct { AuthMicroservice AuthMicroserviceConfiguration HubadminMicroservice HubadminMicroserviceConfiguration CurrencyMicroservice CurrencyMicroserviceConfiguration JWT JWTConfiguration } type JWTConfiguration struct { PrivateKey string `env:"JWT_PRIVATE_KEY"` PublicKey string `env:"JWT_PUBLIC_KEY,required"` Issuer string `env:"JWT_ISSUER,required"` Audience string `env:"JWT_AUDIENCE,required"` Algorithm jwt.SigningMethodRSA ExpiresIn time.Duration } type AuthMicroserviceConfiguration struct { URL AuthMicroserviceURL } type HubadminMicroserviceConfiguration struct { URL HubadminMicroserviceURL } type CurrencyMicroserviceConfiguration struct { URL CurrencyMicroserviceURL } type AuthMicroserviceURL struct { User string `env:"AUTH_MICROSERVICE_USER_URL,required"` } type HubadminMicroserviceURL struct { Tariff string `env:"HUBADMIN_MICROSERVICE_TARIFF_URL,required"` } type CurrencyMicroserviceURL struct { Translate string `env:"CURRENCY_MICROSERVICE_TRANSLATE_URL,required"` }