feat: add gifts tab to admin user detail page

Display sent and received gift subscriptions with status badges,
extracted GiftCard component, and full i18n support (ru/en/zh/fa).
This commit is contained in:
Fringg
2026-03-11 03:30:13 +03:00
parent 03c9e73a37
commit 695ab42e03
6 changed files with 481 additions and 6 deletions

View File

@@ -2662,7 +2662,8 @@
"subscription": "Subscription",
"balance": "Balance",
"sync": "Synchronization",
"tickets": "Tickets"
"tickets": "Tickets",
"gifts": "Gifts"
},
"noTickets": "No tickets from this user",
"ticketsCount": "tickets",
@@ -2786,6 +2787,41 @@
"notLinked": "Not linked",
"fromPanel": "From panel to bot",
"toPanel": "From bot to panel"
},
"gifts": {
"title": "User Gifts",
"sentTitle": "Sent Gifts",
"receivedTitle": "Received Gifts",
"noSent": "No gifts sent by this user",
"noReceived": "No gifts received by this user",
"noGifts": "No gifts",
"token": "Code",
"tariff": "Tariff",
"period": "Period",
"devices": "Devices",
"amount": "Amount",
"paymentMethod": "Payment method",
"recipient": "Recipient",
"sender": "Sender",
"message": "Message",
"createdAt": "Created",
"paidAt": "Paid",
"deliveredAt": "Activated",
"status": {
"pending": "Pending",
"paid": "Paid",
"delivered": "Delivered",
"pending_activation": "Pending activation",
"failed": "Failed",
"expired": "Expired"
},
"days": "d",
"codeOnly": "Code only",
"via": "via",
"balance": "balance",
"unknownUser": "Unknown",
"totalSent": "Total sent",
"totalReceived": "Total received"
}
}
},

View File

@@ -2300,7 +2300,8 @@
"subscription": "اشتراک",
"balance": "موجودی",
"sync": "همگام‌سازی",
"tickets": "تیکت‌ها"
"tickets": "تیکت‌ها",
"gifts": "هدایا"
},
"noTickets": "این کاربر تیکتی ندارد",
"ticketsCount": "تیکت",
@@ -2420,6 +2421,41 @@
"notLinked": "متصل نشده",
"fromPanel": "از پنل به ربات",
"toPanel": "از ربات به پنل"
},
"gifts": {
"title": "هدایای کاربر",
"sentTitle": "هدایای ارسال شده",
"receivedTitle": "هدایای دریافت شده",
"noSent": "این کاربر هدیه‌ای ارسال نکرده است",
"noReceived": "این کاربر هدیه‌ای دریافت نکرده است",
"noGifts": "بدون هدیه",
"token": "کد",
"tariff": "تعرفه",
"period": "دوره",
"devices": "دستگاه‌ها",
"amount": "مبلغ",
"paymentMethod": "روش پرداخت",
"recipient": "گیرنده",
"sender": "فرستنده",
"message": "پیام",
"createdAt": "ایجاد شده",
"paidAt": "پرداخت شده",
"deliveredAt": "فعال شده",
"status": {
"pending": "در انتظار",
"paid": "پرداخت شده",
"delivered": "تحویل داده شده",
"pending_activation": "در انتظار فعال‌سازی",
"failed": "ناموفق",
"expired": "منقضی شده"
},
"days": "روز",
"codeOnly": "فقط کد",
"via": "از طریق",
"balance": "موجودی",
"unknownUser": "ناشناس",
"totalSent": "کل ارسال شده",
"totalReceived": "کل دریافت شده"
}
}
},

View File

@@ -3184,7 +3184,8 @@
"subscription": "Подписка",
"balance": "Баланс",
"sync": "Синхронизация",
"tickets": "Тикеты"
"tickets": "Тикеты",
"gifts": "Подарки"
},
"noTickets": "У пользователя нет тикетов",
"ticketsCount": "тикетов",
@@ -3307,6 +3308,41 @@
"notLinked": "Не привязан",
"fromPanel": "Из панели в бота",
"toPanel": "Из бота в панель"
},
"gifts": {
"title": "Подарки пользователя",
"sentTitle": "Отправленные подарки",
"receivedTitle": "Полученные подарки",
"noSent": "Пользователь не отправлял подарков",
"noReceived": "Пользователь не получал подарков",
"noGifts": "Нет подарков",
"token": "Код",
"tariff": "Тариф",
"period": "Период",
"devices": "Устройств",
"amount": "Сумма",
"paymentMethod": "Способ оплаты",
"recipient": "Получатель",
"sender": "Отправитель",
"message": "Сообщение",
"createdAt": "Создан",
"paidAt": "Оплачен",
"deliveredAt": "Активирован",
"status": {
"pending": "Ожидание",
"paid": "Оплачен",
"delivered": "Доставлен",
"pending_activation": "Ожидает активации",
"failed": "Ошибка",
"expired": "Истёк"
},
"days": "дн.",
"codeOnly": "Только код",
"via": "через",
"balance": "баланс",
"unknownUser": "Неизвестный",
"totalSent": "Всего отправлено",
"totalReceived": "Всего получено"
}
}
},

View File

@@ -2299,7 +2299,8 @@
"subscription": "订阅",
"balance": "余额",
"sync": "同步",
"tickets": "工单"
"tickets": "工单",
"gifts": "礼物"
},
"noTickets": "该用户没有工单",
"ticketsCount": "个工单",
@@ -2419,6 +2420,41 @@
"notLinked": "未绑定",
"fromPanel": "从面板同步到机器人",
"toPanel": "从机器人同步到面板"
},
"gifts": {
"title": "用户礼物",
"sentTitle": "已发送的礼物",
"receivedTitle": "已收到的礼物",
"noSent": "该用户未发送过礼物",
"noReceived": "该用户未收到过礼物",
"noGifts": "没有礼物",
"token": "代码",
"tariff": "套餐",
"period": "期限",
"devices": "设备数",
"amount": "金额",
"paymentMethod": "支付方式",
"recipient": "收件人",
"sender": "发送人",
"message": "留言",
"createdAt": "创建时间",
"paidAt": "支付时间",
"deliveredAt": "激活时间",
"status": {
"pending": "待处理",
"paid": "已支付",
"delivered": "已送达",
"pending_activation": "待激活",
"failed": "失败",
"expired": "已过期"
},
"days": "天",
"codeOnly": "仅代码",
"via": "通过",
"balance": "余额",
"unknownUser": "未知",
"totalSent": "已发送总数",
"totalReceived": "已收到总数"
}
}
},