diff --git a/common/config.py b/common/config.py index 61db8ba..042f477 100644 --- a/common/config.py +++ b/common/config.py @@ -7,11 +7,12 @@ from __future__ import annotations from functools import lru_cache +from typing import Annotated from urllib.parse import quote_plus from zoneinfo import ZoneInfo from pydantic import Field, field_validator -from pydantic_settings import BaseSettings, SettingsConfigDict +from pydantic_settings import BaseSettings, NoDecode, SettingsConfigDict class Settings(BaseSettings): @@ -43,7 +44,9 @@ class Settings(BaseSettings): alert_chat_id: int = 0 #: Telegram-ID, которым доступ разрешён в обход проверки членства. - admin_ids: list[int] = Field(default_factory=list) + #: NoDecode — чтобы pydantic-settings не пытался JSON-декодировать значение + #: (поддерживаем формат "1,2,3" и пустое значение через валидатор ниже). + admin_ids: Annotated[list[int], NoDecode] = Field(default_factory=list) timezone: str = "Europe/Moscow"