ParityPay SBP provider, unified ChromeEditModal, responsive container queries, perf audit

This commit is contained in:
Vladless
2026-04-30 17:21:53 +00:00
parent 55bebbd924
commit 3a7bf7430d
17 changed files with 2681 additions and 3 deletions
+24
View File
@@ -50,6 +50,7 @@ async def _resolve_partner_snapshot(session: AsyncSession, billing_user_id: int)
"partner_percent": default_percent,
"partner_percent_custom": False,
"partner_referred_total": 0,
"partner_referred_paid": 0,
"partner_payout_method": None,
}
try:
@@ -95,6 +96,7 @@ async def _resolve_partner_snapshot(session: AsyncSession, billing_user_id: int)
logger.warning("[Auth] Ошибка сохранения partner_code для billing_user_id={}: {}", billing_user_id, e)
payout_method = str(partner_row[5] or "").strip() or None
referred_total = 0
referred_paid = 0
if tg_id is not None:
try:
referred_total = int(
@@ -108,6 +110,27 @@ async def _resolve_partner_snapshot(session: AsyncSession, billing_user_id: int)
)
except Exception:
referred_total = 0
try:
referred_paid = int(
(
await session.execute(
text(
"SELECT COUNT(DISTINCT pr.joined_tg_id) "
"FROM partners pr "
"WHERE pr.partner_tg_id = :tg_id "
"AND EXISTS ("
" SELECT 1 FROM payments pay "
" WHERE pay.tg_id = pr.joined_tg_id "
" AND lower(pay.status) = 'success'"
")"
),
{"tg_id": int(tg_id)},
)
).scalar()
or 0
)
except Exception:
referred_paid = 0
payload.update({
"partner_enabled": bool(partner_feature_enabled or code or referred_total > 0 or balance > 0),
"partner_code": code,
@@ -115,6 +138,7 @@ async def _resolve_partner_snapshot(session: AsyncSession, billing_user_id: int)
"partner_percent": percent_value,
"partner_percent_custom": percent_custom,
"partner_referred_total": referred_total,
"partner_referred_paid": referred_paid,
"partner_payout_method": payout_method,
})
return payload
+1
View File
@@ -224,6 +224,7 @@ async def auth_summary(
partner_percent=float(partner.get("partner_percent") or 0.0),
partner_percent_custom=bool(partner.get("partner_percent_custom", False)),
partner_referred_total=int(partner.get("partner_referred_total") or 0),
partner_referred_paid=int(partner.get("partner_referred_paid") or 0),
partner_payout_method=partner.get("partner_payout_method"),
unread_notifications=int(unread_notifications),
)
+1
View File
@@ -22,6 +22,7 @@ class AccountSummaryResponse(BaseModel):
partner_percent: float = 0.0
partner_percent_custom: bool = False
partner_referred_total: int = 0
partner_referred_paid: int = 0
partner_payout_method: str | None = None
unread_notifications: int = 0