Provider order to core

This commit is contained in:
Boris Kovalskii
2026-02-07 08:34:16 +10:00
committed by GitHub
parent 1f47f723d0
commit 4372e651b9
2 changed files with 40 additions and 0 deletions
+2
View File
@@ -6,6 +6,7 @@ from .settings.modes_config import MODES_CONFIG, load_modes_config, update_modes
from .settings.money_config import MONEY_CONFIG, load_money_config, update_money_config
from .settings.notifications_config import NOTIFICATIONS_CONFIG, load_notifications_config, update_notifications_config
from .settings.payments_config import PAYMENTS_CONFIG, load_payments_config, update_payments_config
from .settings.providers_order_config import PROVIDERS_ORDER, load_providers_order, update_providers_order
from .settings.tariffs_config import TARIFFS_CONFIG, load_tariffs_config, update_tariffs_config
@@ -15,6 +16,7 @@ async def bootstrap() -> None:
await load_notifications_config(session)
await load_modes_config(session)
await load_payments_config(session)
await load_providers_order(session)
await load_money_config(session)
await load_management_config(session)
await load_tariffs_config(session)
+38
View File
@@ -0,0 +1,38 @@
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from database.models import Setting
PROVIDERS_ORDER: dict[str, int] = {}
async def load_providers_order(session: AsyncSession) -> None:
stmt = select(Setting).where(Setting.key == "PROVIDERS_ORDER")
result = await session.execute(stmt)
setting = result.scalar_one_or_none()
PROVIDERS_ORDER.clear()
if setting and isinstance(setting.value, dict):
PROVIDERS_ORDER.update({k: int(v) for k, v in setting.value.items()})
await session.flush()
async def update_providers_order(session: AsyncSession, new_order: dict[str, int]) -> None:
stmt = select(Setting).where(Setting.key == "PROVIDERS_ORDER")
result = await session.execute(stmt)
setting = result.scalar_one_or_none()
if setting is None:
setting = Setting(
key="PROVIDERS_ORDER",
value=new_order,
description="Порядок отображения платёжных провайдеров",
)
session.add(setting)
else:
setting.value = new_order
await session.commit()
PROVIDERS_ORDER.clear()
PROVIDERS_ORDER.update(new_order)