Добавлена отправка накладных на почту

This commit is contained in:
Раис Юсупалиев
2026-05-24 00:55:09 +03:00
parent 5526f90cb3
commit 50124fb2c9
36 changed files with 1615 additions and 22 deletions
+20
View File
@@ -121,6 +121,21 @@ class WaybillPollerConfig(BaseModel):
batch_size: int = Field(default=50, gt=0)
class EmailAdapterConfig(BaseModel):
smtp_host: str = Field(..., min_length=1)
smtp_port: int = Field(..., gt=0, le=65535)
username: str = ""
password: str = ""
from_address: str = Field(..., min_length=1)
use_tls: bool = True
timeout_seconds: float = Field(default=10.0, gt=0)
class WaybillEmailSenderConfig(BaseModel):
interval_seconds: float = Field(default=30.0, gt=0)
batch_size: int = Field(default=50, gt=0)
class Settings(BaseSettings):
model_config = SettingsConfigDict(
extra="ignore",
@@ -138,6 +153,10 @@ class Settings(BaseSettings):
)
observability: ObservabilityConfig
waybill_poller: WaybillPollerConfig = Field(default_factory=WaybillPollerConfig)
email: EmailAdapterConfig
waybill_email_sender: WaybillEmailSenderConfig = Field(
default_factory=WaybillEmailSenderConfig
)
@classmethod
def settings_customise_sources(
@@ -169,6 +188,7 @@ class _RequiredYamlSections(BaseModel):
postgres: dict[str, Any]
address_suggestions: dict[str, Any]
observability: dict[str, Any]
email: dict[str, Any]
def _resolve_runtime_config_file() -> str: