mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-30 10:27:49 +00:00
feat(admin): вкладка «Активность» в карточке пользователя
Единый таймлайн действий юзера в боте и кабинете
(GET /cabinet/admin/users/{id}/activity): вертикальная лента с
иконками-кружками по типу записи, бейджи подтипов, суммы со знаком
(+зелёный / −красный), относительное время (абсолютное — в title),
чипы-фильтры по категориям (платежи, события, промо, тикеты, подарки,
рефералы, входы), счётчик StatCard и постраничная догрузка по house
load-more паттерну. Компонент самодостаточный (ActivityTab), как
TicketsTab. Переводы во всех 4 локалях; время переиспользует
admin.auditLog.time.*.
biome check, type-check и build проходят (pre-commit пропущен: biome
не установлен локально — бинарь есть только в CI).
This commit is contained in:
@@ -3378,7 +3378,8 @@
|
||||
"sync": "Synchronization",
|
||||
"tickets": "Tickets",
|
||||
"gifts": "Gifts",
|
||||
"referrals": "Referrals"
|
||||
"referrals": "Referrals",
|
||||
"activity": "Activity"
|
||||
},
|
||||
"noTickets": "No tickets from this user",
|
||||
"ticketsCount": "tickets",
|
||||
@@ -3579,6 +3580,66 @@
|
||||
"searchPlaceholder": "Search by name, email, or Telegram ID...",
|
||||
"alreadyReferred": "already has referrer",
|
||||
"noUsersFound": "No users found"
|
||||
},
|
||||
"activity": {
|
||||
"total": "Total events",
|
||||
"empty": "No activity yet",
|
||||
"filters": {
|
||||
"all": "All",
|
||||
"payments": "Payments",
|
||||
"events": "Events",
|
||||
"promo": "Promo",
|
||||
"tickets": "Tickets",
|
||||
"gifts": "Gifts",
|
||||
"referrals": "Referrals",
|
||||
"logins": "Logins"
|
||||
},
|
||||
"types": {
|
||||
"transaction": "Transaction",
|
||||
"event": "Event",
|
||||
"promocode": "Promo code",
|
||||
"coupon": "Coupon",
|
||||
"ticket": "Ticket",
|
||||
"wheel_spin": "Fortune wheel",
|
||||
"poll": "Poll completed",
|
||||
"gift_sent": "Gift sent",
|
||||
"gift_received": "Gift received",
|
||||
"referral_earning": "Referral earning",
|
||||
"cabinet_login": "Cabinet login",
|
||||
"withdrawal": "Withdrawal request"
|
||||
},
|
||||
"sources": {
|
||||
"bot": "Bot",
|
||||
"cabinet": "Cabinet"
|
||||
},
|
||||
"subtypes": {
|
||||
"deposit": "Deposit",
|
||||
"withdrawal": "Charge",
|
||||
"subscription_payment": "Subscription payment",
|
||||
"refund": "Refund",
|
||||
"failed_refund": "Failed refund",
|
||||
"referral_reward": "Referral reward",
|
||||
"poll_reward": "Poll reward",
|
||||
"gift_payment": "Gift payment",
|
||||
"activation": "Activation",
|
||||
"purchase": "Purchase",
|
||||
"subscription_purchase": "Subscription purchase",
|
||||
"renewal": "Renewal",
|
||||
"balance_topup": "Balance top-up",
|
||||
"promo_group_change": "Promo group change",
|
||||
"campaign_registration": "Campaign registration",
|
||||
"referral_link_visit": "Referral link visit",
|
||||
"referral_registration": "Referral registration",
|
||||
"trial_activation": "Trial activation",
|
||||
"open": "Open",
|
||||
"answered": "Answered",
|
||||
"pending": "Pending",
|
||||
"closed": "Closed",
|
||||
"redeemed": "Redeemed",
|
||||
"approved": "Approved",
|
||||
"rejected": "Rejected",
|
||||
"completed": "Completed"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notFound": "User not found",
|
||||
|
||||
Reference in New Issue
Block a user