customer/internal/models/config.go

88 lines
2.2 KiB
Go
Raw Normal View History

2023-05-16 01:12:07 +00:00
package models
import (
"time"
"github.com/golang-jwt/jwt/v5"
2023-05-16 04:01:55 +00:00
"penahub.gitlab.yandexcloud.net/pena-services/customer/pkg/mongo"
2023-05-16 01:12:07 +00:00
)
type Config struct {
2023-06-13 15:59:04 +00:00
HTTP ConfigurationHTTP
GRPC ConfigurationGRPC
2023-05-16 01:12:07 +00:00
Service ServiceConfiguration
Database mongo.Configuration
}
2023-06-13 15:59:04 +00:00
type ConfigurationHTTP struct {
2023-05-16 01:12:07 +00:00
Host string `env:"HTTP_HOST,default=localhost"`
Port string `env:"HTTP_PORT,default=8080"`
}
2023-06-13 15:59:04 +00:00
type ConfigurationGRPC struct {
Host string `env:"GRPC_HOST,default=localhost"`
Port string `env:"GRPC_PORT,default=8081"`
Domen string `env:"GRPC_DOMEN,default=https://domen.ru"`
}
2023-05-16 01:12:07 +00:00
type ServiceConfiguration struct {
2023-05-19 09:08:15 +00:00
AuthMicroservice AuthMicroserviceConfiguration
HubadminMicroservice HubadminMicroserviceConfiguration
2023-05-23 16:09:06 +00:00
CurrencyMicroservice CurrencyMicroserviceConfiguration
2023-06-13 16:21:20 +00:00
DiscountMicroservice DiscountMicroserviceConfiguration
PaymentMicroservice PaymentMicroserviceConfiguration
2023-05-19 09:08:15 +00:00
JWT JWTConfiguration
2023-07-06 18:50:46 +00:00
Kafka Kafka
}
type Kafka struct {
Tariff TariffKafka `json:"tariff"`
Brokers []string `json:"brokers"`
ConsumerGroupID string `json:"consumerGroupId"`
}
type TariffKafka struct {
Topic string `json:"topic"`
2023-05-16 01:12:07 +00:00
}
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 {
2023-05-19 09:08:15 +00:00
URL AuthMicroserviceURL
2023-05-16 01:12:07 +00:00
}
2023-05-19 09:08:15 +00:00
type HubadminMicroserviceConfiguration struct {
URL HubadminMicroserviceURL
}
2023-05-23 16:09:06 +00:00
type CurrencyMicroserviceConfiguration struct {
URL CurrencyMicroserviceURL
}
2023-06-13 16:21:20 +00:00
type PaymentMicroserviceConfiguration struct {
HostGRPC string `env:"PAYMENT_MICROSERVICE_GRPC_HOST,required"`
}
type DiscountMicroserviceConfiguration struct {
HostGRPC string `env:"DISCOUNT_MICROSERVICE_GRPC_HOST,required"`
}
2023-05-19 09:08:15 +00:00
type AuthMicroserviceURL struct {
2023-05-17 20:27:09 +00:00
User string `env:"AUTH_MICROSERVICE_USER_URL,required"`
2023-05-16 01:12:07 +00:00
}
2023-05-19 09:08:15 +00:00
type HubadminMicroserviceURL struct {
Tariff string `env:"HUBADMIN_MICROSERVICE_TARIFF_URL,required"`
}
2023-05-23 16:09:06 +00:00
type CurrencyMicroserviceURL struct {
Translate string `env:"CURRENCY_MICROSERVICE_TRANSLATE_URL,required"`
}