+32
-20
@@ -38,26 +38,36 @@ class RepositoryConfig(BaseModel):
|
||||
price_cache_ttl_seconds: int = 900
|
||||
|
||||
|
||||
class AdapterConfig(BaseModel):
|
||||
cdek_base_url: str = "https://api.cdek.ru/v2"
|
||||
cdek_client_id: str = ""
|
||||
cdek_client_secret: str = ""
|
||||
cdek_retry_attempts: int = Field(default=2, ge=0)
|
||||
cdek_retry_backoff_seconds: float = Field(default=0.2, ge=0)
|
||||
cdek_timeout_seconds: float = Field(default=10.0, gt=0)
|
||||
cdek_cache_ttl_seconds: int = Field(default=900, gt=0)
|
||||
cse_base_url: str = "https://web.cse.ru/1c/ws/Web1C.1cws"
|
||||
cse_login: str = ""
|
||||
cse_password: str = ""
|
||||
cse_retry_attempts: int = Field(default=2, ge=0)
|
||||
cse_retry_backoff_seconds: float = Field(default=0.2, ge=0)
|
||||
cse_timeout_seconds: float = Field(default=10.0, gt=0)
|
||||
cse_cache_ttl_seconds: int = Field(default=900, gt=0)
|
||||
class DeliveryProviderBaseConfig(BaseModel):
|
||||
enabled: bool = True
|
||||
timeout_seconds: float = Field(default=10.0, gt=0)
|
||||
retry_attempts: int = Field(default=2, ge=0)
|
||||
retry_backoff_seconds: float = Field(default=0.2, ge=0)
|
||||
cache_ttl_seconds: int = Field(default=900, gt=0)
|
||||
|
||||
|
||||
class CDEKDeliveryProviderConfig(DeliveryProviderBaseConfig):
|
||||
base_url: str = "https://api.cdek.ru/v2"
|
||||
client_id: str = ""
|
||||
client_secret: str = ""
|
||||
|
||||
|
||||
class CSEDeliveryProviderConfig(DeliveryProviderBaseConfig):
|
||||
base_url: str = "https://web.cse.ru/1c/ws/Web1C.1cws"
|
||||
login: str = ""
|
||||
password: str = ""
|
||||
# Contract-specific required parameters for SaveDocuments (order registration).
|
||||
# Urgency is not here: it comes from the tariff selected by the client.
|
||||
cse_payer: str = ""
|
||||
cse_payment_method: str = ""
|
||||
cse_shipping_method: str = ""
|
||||
payer: str = ""
|
||||
payment_method: str = ""
|
||||
shipping_method: str = ""
|
||||
|
||||
|
||||
class DeliveryProvidersConfig(BaseModel):
|
||||
cdek: CDEKDeliveryProviderConfig = Field(
|
||||
default_factory=CDEKDeliveryProviderConfig
|
||||
)
|
||||
cse: CSEDeliveryProviderConfig = Field(default_factory=CSEDeliveryProviderConfig)
|
||||
|
||||
|
||||
class TBankPaymentAuthConfig(BaseModel):
|
||||
@@ -157,7 +167,9 @@ class Settings(BaseSettings):
|
||||
service: ServiceConfig = Field(default_factory=ServiceConfig)
|
||||
business_logic: BusinessLogicConfig = Field(default_factory=BusinessLogicConfig)
|
||||
repository: RepositoryConfig = Field(default_factory=RepositoryConfig)
|
||||
adapter: AdapterConfig = Field(default_factory=AdapterConfig)
|
||||
delivery_providers: DeliveryProvidersConfig = Field(
|
||||
default_factory=DeliveryProvidersConfig
|
||||
)
|
||||
tbank_payment: TBankPaymentConfig
|
||||
postgres: PostgresConfig
|
||||
address_suggestions: AddressSuggestionsConfig = Field(
|
||||
@@ -195,7 +207,7 @@ class _RequiredYamlSections(BaseModel):
|
||||
service: dict[str, Any]
|
||||
business_logic: dict[str, Any]
|
||||
repository: dict[str, Any]
|
||||
adapter: dict[str, Any]
|
||||
delivery_providers: dict[str, Any]
|
||||
tbank_payment: dict[str, Any]
|
||||
postgres: dict[str, Any]
|
||||
address_suggestions: dict[str, Any]
|
||||
|
||||
Reference in New Issue
Block a user