ParityPay SBP provider, unified ChromeEditModal, responsive container queries, perf audit
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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),
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user