feat(user): Add user Detail

This commit is contained in:
web@ppanel
2025-02-08 14:47:23 +07:00
parent fdaf11b654
commit 3a3d2236e2
91 changed files with 2514 additions and 708 deletions
+1
View File
@@ -47,6 +47,7 @@
"60002": "Toto předplatné nelze momentálně použít, zkuste to prosím později.",
"60003": "Bylo zjištěno existující předplatné. Zrušte ho, než budete pokračovat.",
"60004": "Nelze momentálně odstranit, protože předplatné má aktivní uživatele.",
"60005": "Režim jediné předplatné překročil limit uživatelů.",
"70001": "Ověřovací kód je nesprávný, zadejte ho prosím znovu.",
"80001": "Úkol nebyl úspěšně přidán do fronty, zkuste to prosím později.",
"undefined": "Došlo k chybě systému, zkuste to prosím později."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Das Abonnement kann derzeit nicht verwendet werden, bitte versuchen Sie es später erneut.",
"60003": "Ein bestehendes Abonnement wurde erkannt. Bitte kündigen Sie es, bevor Sie fortfahren.",
"60004": "Kann derzeit nicht gelöscht werden, da das Abonnement aktive Benutzer hat.",
"60005": "Im Ein-Abonnement-Modus wurde das Benutzerlimit überschritten.",
"70001": "Der Bestätigungscode ist falsch, bitte erneut eingeben.",
"80001": "Die Aufgabe konnte nicht erfolgreich in die Warteschlange aufgenommen werden, bitte versuchen Sie es später erneut.",
"undefined": "Es ist ein Systemfehler aufgetreten, bitte versuchen Sie es später erneut."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Unable to use the subscription at the moment, please try again later.",
"60003": "An existing subscription is detected. Please cancel it before proceeding.",
"60004": "Unable to delete at the moment as the subscription has active users.",
"60005": "Single subscription mode has exceeded user limit.",
"70001": "Incorrect verification code, please re-enter.",
"80001": "Task could not be successfully added to the queue, please try again later.",
"undefined": "An error occurred in the system, please try again later."
+1
View File
@@ -47,6 +47,7 @@
"60002": "No se puede usar la suscripción por el momento, por favor intente de nuevo más tarde.",
"60003": "Se ha detectado una suscripción existente. Por favor, cancélala antes de continuar.",
"60004": "No se puede eliminar en este momento ya que la suscripción tiene usuarios activos.",
"60005": "El modo de suscripción única ha excedido el límite de usuarios.",
"70001": "El código de verificación es incorrecto, por favor ingréselo de nuevo.",
"80001": "La tarea no se agregó exitosamente a la cola, por favor intente de nuevo más tarde.",
"undefined": "Ocurrió un error en el sistema, por favor intente de nuevo más tarde."
+1
View File
@@ -47,6 +47,7 @@
"60002": "No se puede usar la suscripción por el momento, por favor intenta más tarde.",
"60003": "Se ha detectado una suscripción existente. Por favor, cancélala antes de continuar.",
"60004": "No se puede eliminar en este momento ya que la suscripción tiene usuarios activos.",
"60005": "El modo de suscripción única ha excedido el límite de usuarios.",
"70001": "El código de verificación es incorrecto, por favor ingrésalo de nuevo.",
"80001": "La tarea no se agregó exitosamente a la cola, por favor intenta de nuevo más tarde.",
"undefined": "Ocurrió un error en el sistema, por favor intenta de nuevo más tarde."
+1
View File
@@ -47,6 +47,7 @@
"60002": "در حال حاضر نمی‌توان از اشتراک استفاده کرد، لطفاً بعداً دوباره تلاش کنید.",
"60003": "یک اشتراک موجود شناسایی شد. لطفاً قبل از ادامه آن را لغو کنید.",
"60004": "در حال حاضر امکان حذف وجود ندارد زیرا اشتراک دارای کاربران فعال است.",
"60005": "حالت اشتراک تک کاربر از حد مجاز کاربران فراتر رفته است.",
"70001": "کد تأیید نادرست است، لطفاً دوباره وارد کنید.",
"80001": "وظیفه نتوانست به‌طور موفقیت‌آمیز به صف اضافه شود، لطفاً بعداً دوباره تلاش کنید.",
"undefined": "خطایی در سیستم رخ داده است، لطفاً بعداً دوباره تلاش کنید."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Tilausta ei voi käyttää tällä hetkellä, yritä myöhemmin uudelleen.",
"60003": "Olemassa oleva tilaus havaittu. Peruuta se ennen jatkamista.",
"60004": "Ei voi poistaa tällä hetkellä, koska tilauksella on aktiivisia käyttäjiä.",
"60005": "Yksittäisen tilauksen tila on ylittänyt käyttäjämäärän rajan.",
"70001": "Vahvistuskoodi on virheellinen, syötä se uudelleen.",
"80001": "Tehtävää ei lisätty jonoon, yritä myöhemmin uudelleen.",
"undefined": "Järjestelmässä tapahtui virhe, yritä myöhemmin uudelleen."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Impossible d'utiliser cet abonnement pour le moment, veuillez réessayer plus tard.",
"60003": "Un abonnement existant a été détecté. Veuillez l'annuler avant de continuer.",
"60004": "Impossible de supprimer pour le moment car l'abonnement a des utilisateurs actifs.",
"60005": "Le mode d'abonnement unique a dépassé la limite d'utilisateurs.",
"70001": "Le code de vérification est incorrect, veuillez le ressaisir.",
"80001": "La tâche n'a pas été ajoutée avec succès à la file d'attente, veuillez réessayer plus tard.",
"undefined": "Une erreur système s'est produite, veuillez réessayer plus tard."
+1
View File
@@ -47,6 +47,7 @@
"60002": "अभी के लिए इस सदस्यता का उपयोग नहीं किया जा सकता, कृपया थोड़ी देर बाद पुनः प्रयास करें।",
"60003": "एक मौजूदा सदस्यता का पता चला है। कृपया आगे बढ़ने से पहले इसे रद्द करें।",
"60004": "वर्तमान में हटाने में असमर्थ क्योंकि सदस्यता में सक्रिय उपयोगकर्ता हैं।",
"60005": "सिंगल सब्सक्रिप्शन मोड में उपयोगकर्ता सीमा पार हो गई है।",
"70001": "सत्यापन कोड गलत है, कृपया पुनः दर्ज करें।",
"80001": "कार्य सफलतापूर्वक कतार में नहीं जोड़ा गया, कृपया थोड़ी देर बाद पुनः प्रयास करें।",
"undefined": "सिस्टम में त्रुटि हुई है, कृपया थोड़ी देर बाद पुनः प्रयास करें।"
+1
View File
@@ -47,6 +47,7 @@
"60002": "Az előfizetés jelenleg nem használható, kérjük, próbálja meg később újra.",
"60003": "Létező előfizetés észlelve. Kérjük, törölje azt a folytatás előtt.",
"60004": "Jelenleg nem törölhető, mivel az előfizetésnek aktív felhasználói vannak.",
"60005": "Az egyedi előfizetés mód túllépte a felhasználói limitet.",
"70001": "A megerősítő kód hibás, kérjük, írja be újra.",
"80001": "A feladat nem került sikeresen a sorba, kérjük, próbálja meg később újra.",
"undefined": "Rendszerhiba történt, kérjük, próbálja meg később újra."
+1
View File
@@ -47,6 +47,7 @@
"60002": "このサブスクリプションは一時的に使用できません。しばらくしてから再試行してください。",
"60003": "既存のサブスクリプションが検出されました。続行する前にキャンセルしてください。",
"60004": "サブスクリプションにアクティブなユーザーがいるため、現在削除できません。",
"60005": "シングルサブスクリプションモードではユーザー数の上限を超えました。",
"70001": "認証コードが間違っています。再入力してください。",
"80001": "タスクがキューに正常に追加されませんでした。しばらくしてから再試行してください。",
"undefined": "システムエラーが発生しました。しばらくしてから再試行してください。"
+1
View File
@@ -47,6 +47,7 @@
"60002": "현재 구독을 사용할 수 없습니다. 잠시 후 다시 시도해 주세요.",
"60003": "기존 구독이 감지되었습니다. 계속하기 전에 취소해 주세요.",
"60004": "구독에 활성 사용자가 있어 현재 삭제할 수 없습니다.",
"60005": "단일 구독 모드가 사용자 한도를 초과했습니다.",
"70001": "인증 코드가 잘못되었습니다. 다시 입력해 주세요.",
"80001": "작업이 큐에 성공적으로 추가되지 않았습니다. 잠시 후 다시 시도해 주세요.",
"undefined": "시스템에 오류가 발생했습니다. 잠시 후 다시 시도해 주세요."
+2
View File
@@ -47,6 +47,8 @@
"60002": "Kan for øyeblikket ikke bruke abonnementet, vennligst prøv igjen senere.",
"60003": "Et eksisterende abonnement er oppdaget. Vennligst avbryt det før du fortsetter.",
"60004": "Kan ikke slettes for øyeblikket da abonnementet har aktive brukere.",
"60005": "Abonnementet har nådd maks antall brukere.",
"60005": "Enkelt abonnementsmodus har overskredet brukergrensen.",
"70001": "Verifikasjonskoden er feil, vennligst skriv inn på nytt.",
"80001": "Oppgaven ble ikke vellykket lagt til i køen, vennligst prøv igjen senere.",
"undefined": "Det oppstod en systemfeil, vennligst prøv igjen senere."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Nie można tymczasowo użyć tej subskrypcji, spróbuj ponownie później.",
"60003": "Wykryto istniejącą subskrypcję. Proszę ją anulować przed kontynuacją.",
"60004": "Nie można usunąć w tej chwili, ponieważ subskrypcja ma aktywnych użytkowników.",
"60005": "Tryb pojedynczej subskrypcji przekroczył limit użytkowników.",
"70001": "Kod weryfikacyjny jest nieprawidłowy, wprowadź go ponownie.",
"80001": "Zadanie nie zostało pomyślnie dodane do kolejki, spróbuj ponownie później.",
"undefined": "Wystąpił błąd systemu, spróbuj ponownie później."
+2
View File
@@ -47,6 +47,8 @@
"60002": "Não é possível usar a assinatura no momento, por favor, tente novamente mais tarde.",
"60003": "Uma assinatura existente foi detectada. Cancele-a antes de prosseguir.",
"60004": "Não é possível excluir no momento, pois a assinatura possui usuários ativos.",
"60005": "A assinatura atingiu o número máximo de usuários.",
"60005": "O modo de assinatura única excedeu o limite de usuários.",
"70001": "O código de verificação está incorreto, por favor, digite novamente.",
"80001": "A tarefa não foi adicionada à fila com sucesso, por favor, tente novamente mais tarde.",
"undefined": "Ocorreu um erro no sistema, por favor, tente novamente mais tarde."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Nu se poate utiliza momentan acest abonament, vă rugăm să încercați din nou mai târziu.",
"60003": "A fost detectat un abonament existent. Vă rugăm să-l anulați înainte de a continua.",
"60004": "Nu se poate șterge în acest moment, deoarece abonamentul are utilizatori activi.",
"60005": "Modul de abonament unic a depășit limita de utilizatori.",
"70001": "Codul de verificare este incorect, vă rugăm să îl introduceți din nou.",
"80001": "Sarcina nu a fost adăugată cu succes în coadă, vă rugăm să încercați din nou mai târziu.",
"undefined": "A apărut o eroare în sistem, vă rugăm să încercați din nou mai târziu."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Подписка временно недоступна, пожалуйста, попробуйте позже.",
"60003": "Обнаружена существующая подписка. Пожалуйста, отмените ее перед продолжением.",
"60004": "Невозможно удалить в данный момент, так как у подписки есть активные пользователи.",
"60005": "Одиночный режим подписки превысил лимит пользователей.",
"70001": "Код подтверждения неверен, пожалуйста, введите его снова.",
"80001": "Задача не была успешно добавлена в очередь, пожалуйста, попробуйте позже.",
"undefined": "Произошла ошибка в системе, пожалуйста, попробуйте позже."
+1
View File
@@ -47,6 +47,7 @@
"60002": "ไม่สามารถใช้การสมัครสมาชิกนี้ได้ในขณะนี้ กรุณาลองใหม่อีกครั้งในภายหลัง",
"60003": "ตรวจพบการสมัครสมาชิกที่มีอยู่ กรุณายกเลิกก่อนดำเนินการต่อ",
"60004": "ไม่สามารถลบได้ในขณะนี้เนื่องจากการสมัครมีผู้ใช้ที่ใช้งานอยู่",
"60005": "โหมดการสมัครสมาชิกเดี่ยวเกินขีดจำกัดจำนวนผู้ใช้แล้ว.",
"70001": "รหัสยืนยันไม่ถูกต้อง กรุณาใส่ใหม่อีกครั้ง",
"80001": "งานไม่สำเร็จในการเข้าคิว กรุณาลองใหม่อีกครั้งในภายหลัง",
"undefined": "ระบบเกิดข้อผิดพลาด กรุณาลองใหม่อีกครั้งในภายหลัง"
+1
View File
@@ -47,6 +47,7 @@
"60002": "Bu abonelik şu anda kullanılamıyor, lütfen daha sonra tekrar deneyin.",
"60003": "Mevcut bir abonelik tespit edildi. Lütfen devam etmeden önce iptal edin.",
"60004": "Aboneliğin aktif kullanıcıları olduğu için şu anda silinemiyor.",
"60005": "Tekli abonelik moduğu kullanıcı sınırını aştı.",
"70001": "Doğrulama kodu hatalı, lütfen tekrar girin.",
"80001": "Görev sıraya başarıyla eklenemedi, lütfen daha sonra tekrar deneyin.",
"undefined": "Sistem hatası oluştu, lütfen daha sonra tekrar deneyin."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Тимчасово неможливо використовувати цю підписку, будь ласка, спробуйте пізніше.",
"60003": "Виявлено існуючу підписку. Будь ласка, скасуйте її перед продовженням.",
"60004": "Неможливо видалити, оскільки підписка має активних користувачів.",
"60005": "Режим однієї підписки перевищив ліміт користувачів.",
"70001": "Код перевірки неправильний, будь ласка, введіть знову.",
"80001": "Завдання не вдалося додати до черги, будь ласка, спробуйте пізніше.",
"undefined": "Сталася системна помилка, будь ласка, спробуйте пізніше."
+1
View File
@@ -47,6 +47,7 @@
"60002": "Tạm thời không thể sử dụng đăng ký này, vui lòng thử lại sau.",
"60003": "Phát hiện đăng ký hiện có. Vui lòng hủy trước khi tiếp tục.",
"60004": "Không thể xóa vào lúc này vì đăng ký có người dùng đang hoạt động.",
"60005": "Chế độ đăng ký đơn đã vượt quá giới hạn người dùng.",
"70001": "Mã xác nhận không chính xác, vui lòng nhập lại.",
"80001": "Nhiệm vụ không được thêm vào hàng đợi thành công, vui lòng thử lại sau.",
"undefined": "Hệ thống xảy ra lỗi, vui lòng thử lại sau."
+1
View File
@@ -47,6 +47,7 @@
"60002": "暂时无法使用该订阅,请稍后再试。",
"60003": "检测到已有订阅。请取消后再继续。",
"60004": "暂时无法删除,订阅存在正常激活的用户。",
"60005": "单一订阅模式已超出用户上限。",
"70001": "验证码有误,请重新输入。",
"80001": "任务未成功加入队列,请稍后重试。",
"undefined": "系统发生错误,请稍后重试"
+1
View File
@@ -47,6 +47,7 @@
"60002": "暫時無法使用該訂閱,請稍後再試。",
"60003": "偵測到現有訂閱。請取消後再繼續。",
"60004": "暫時無法刪除,訂閱存在正常啟用的用戶。",
"60005": "單一訂閱模式已超出用戶上限。",
"70001": "驗證碼有誤,請重新輸入。",
"80001": "任務未成功加入隊列,請稍後重試。",
"undefined": "系統發生錯誤,請稍後重試"
+1 -1
View File
@@ -74,7 +74,7 @@
"zh-CN",
"zh-HK"
],
"modelName": "gpt-4o",
"modelName": "gpt-4o-mini",
"experimental": {
"jsonMode": true
},
+1
View File
@@ -32,6 +32,7 @@ export async function appleLoginCallback(
return request<API.Response & { data?: any }>('/v1/auth/oauth/callback/apple', {
method: 'POST',
data: formData,
requestType: 'form',
...(options || {}),
});
}
+67 -59
View File
@@ -64,15 +64,16 @@ declare namespace API {
};
type AuthConfig = {
sms: SmsAuthenticateConfig;
sms: MobileAuthenticateConfig;
email: EmailAuthticateConfig;
register: RegisterConfig;
};
type AuthMethod = {
auth_type: string;
auth_identifier: string;
verified: boolean;
type AuthMethodConfig = {
id: number;
method: string;
config: Record<string, any>;
enabled: boolean;
};
type CheckUserParams = {
@@ -124,26 +125,10 @@ declare namespace API {
};
type EmailAuthticateConfig = {
email_enabled: boolean;
email_enable_verify: boolean;
email_enable_domain_suffix: boolean;
email_domain_suffix_list: string;
};
type EmailSmtpConfig = {
email_enabled: boolean;
email_smtp_host: string;
email_smtp_port: number;
email_smtp_user: string;
email_smtp_pass: string;
email_smtp_from: string;
email_smtp_ssl: boolean;
verify_email_template: string;
maintenance_email_template: string;
expiration_email_template: string;
email_enable_verify: boolean;
email_enable_domain_suffix: boolean;
email_domain_suffix_list: string;
enable: boolean;
enable_verify: boolean;
enable_domain_suffix: boolean;
domain_suffix_list: string;
};
type Follow = {
@@ -213,6 +198,13 @@ declare namespace API {
token: string;
};
type MobileAuthenticateConfig = {
enable: boolean;
limit: number;
interval: number;
expire_time: number;
};
type NodeConfig = {
node_secret: string;
node_pull_interval: number;
@@ -247,16 +239,6 @@ declare namespace API {
redirect: string;
};
type OAuthMethod = {
id: number;
platform: string;
config: Record<string, any>;
redirect: string;
enabled: boolean;
created_at: number;
updated_at: number;
};
type OnlineUser = {
uid: number;
ip: string;
@@ -399,6 +381,16 @@ declare namespace API {
updated_at: number;
};
type ServerRuleGroup = {
id: number;
name: string;
icon: string;
description: string;
enable: boolean;
created_at: number;
updated_at: number;
};
type ServerStatus = {
cpu: number;
mem: number;
@@ -419,26 +411,6 @@ declare namespace API {
site_logo: string;
};
type SmsAuthenticateConfig = {
sms_enabled: boolean;
sms_limit: number;
sms_interval: number;
sms_expire_time: number;
};
type SmsConfig = {
sms_enabled: boolean;
sms_key: string;
sms_secret: string;
sms_template: string;
sms_template_code: string;
sms_template_param: string;
sms_platform: string;
sms_limit: number;
sms_interval: number;
sms_expire_time: number;
};
type SortItem = {
id: number;
sort: number;
@@ -556,6 +528,16 @@ declare namespace API {
tos_content: string;
};
type TrafficLog = {
id: number;
server_id: number;
user_id: number;
subscribe_id: number;
download: number;
upload: number;
timestamp: number;
};
type TransportConfig = {
path: string;
host: string;
@@ -593,7 +575,8 @@ declare namespace API {
enable_login_notify: boolean;
enable_subscribe_notify: boolean;
enable_trade_notify: boolean;
auth_methods: AuthMethod[];
auth_methods: UserAuthMethod[];
user_devices: UserDevice[];
created_at: number;
updated_at: number;
deleted_at?: number;
@@ -607,6 +590,12 @@ declare namespace API {
enable: boolean;
};
type UserAuthMethod = {
auth_type: string;
auth_identifier: string;
verified: boolean;
};
type UserBalanceLog = {
id: number;
user_id: number;
@@ -619,15 +608,24 @@ declare namespace API {
type UserDevice = {
id: number;
user_id: number;
device_number: string;
ip: string;
imei: string;
user_agent: string;
online: boolean;
last_online: number;
enabled: boolean;
created_at: number;
updated_at: number;
};
type UserLoginLog = {
id: number;
user_id: number;
login_ip: string;
user_agent: string;
success: boolean;
created_at: number;
};
type UserLoginRequest = {
email: string;
password: string;
@@ -660,6 +658,16 @@ declare namespace API {
updated_at: number;
};
type UserSubscribeLog = {
id: number;
user_id: number;
user_subscribe_id: number;
token: string;
ip: string;
user_agent: string;
created_at: number;
};
type VeifyConfig = {
turnstile_site_key: string;
enable_login_verify: boolean;
+100 -66
View File
@@ -58,15 +58,16 @@ declare namespace API {
};
type AuthConfig = {
sms: SmsAuthenticateConfig;
sms: MobileAuthenticateConfig;
email: EmailAuthticateConfig;
register: RegisterConfig;
};
type AuthMethod = {
auth_type: string;
auth_identifier: string;
verified: boolean;
type AuthMethodConfig = {
id: number;
method: string;
config: Record<string, any>;
enabled: boolean;
};
type BindOAuthCallbackRequest = {
@@ -155,26 +156,10 @@ declare namespace API {
};
type EmailAuthticateConfig = {
email_enabled: boolean;
email_enable_verify: boolean;
email_enable_domain_suffix: boolean;
email_domain_suffix_list: string;
};
type EmailSmtpConfig = {
email_enabled: boolean;
email_smtp_host: string;
email_smtp_port: number;
email_smtp_user: string;
email_smtp_pass: string;
email_smtp_from: string;
email_smtp_ssl: boolean;
verify_email_template: string;
maintenance_email_template: string;
expiration_email_template: string;
email_enable_verify: boolean;
email_enable_domain_suffix: boolean;
email_domain_suffix_list: string;
enable: boolean;
enable_verify: boolean;
enable_domain_suffix: boolean;
domain_suffix_list: string;
};
type Follow = {
@@ -190,8 +175,38 @@ declare namespace API {
list: PaymentConfig[];
};
type GetLoginLogParams = {
page: number;
size: number;
};
type GetLoginLogRequest = {
page: number;
size: number;
};
type GetLoginLogResponse = {
list: UserLoginLog[];
total: number;
};
type GetOAuthMethodsResponse = {
methods: AuthMethod[];
methods: UserAuthMethod[];
};
type GetSubscribeLogParams = {
page: number;
size: number;
};
type GetSubscribeLogRequest = {
page: number;
size: number;
};
type GetSubscribeLogResponse = {
list: UserSubscribeLog[];
total: number;
};
type GetUserTicketDetailRequest = {
@@ -235,6 +250,13 @@ declare namespace API {
only_first_purchase: boolean;
};
type MobileAuthenticateConfig = {
enable: boolean;
limit: number;
interval: number;
expire_time: number;
};
type NodeConfig = {
node_secret: string;
node_pull_interval: number;
@@ -253,16 +275,6 @@ declare namespace API {
last_at: number;
};
type OAuthMethod = {
id: number;
platform: string;
config: Record<string, any>;
redirect: string;
enabled: boolean;
created_at: number;
updated_at: number;
};
type OnlineUser = {
uid: number;
ip: string;
@@ -559,6 +571,16 @@ declare namespace API {
updated_at: number;
};
type ServerRuleGroup = {
id: number;
name: string;
icon: string;
description: string;
enable: boolean;
created_at: number;
updated_at: number;
};
type ServerStatus = {
cpu: number;
mem: number;
@@ -579,26 +601,6 @@ declare namespace API {
site_logo: string;
};
type SmsAuthenticateConfig = {
sms_enabled: boolean;
sms_limit: number;
sms_interval: number;
sms_expire_time: number;
};
type SmsConfig = {
sms_enabled: boolean;
sms_key: string;
sms_secret: string;
sms_template: string;
sms_template_code: string;
sms_template_param: string;
sms_platform: string;
sms_limit: number;
sms_interval: number;
sms_expire_time: number;
};
type SortItem = {
id: number;
sort: number;
@@ -689,6 +691,16 @@ declare namespace API {
tos_content: string;
};
type TrafficLog = {
id: number;
server_id: number;
user_id: number;
subscribe_id: number;
download: number;
upload: number;
timestamp: number;
};
type TransportConfig = {
path: string;
host: string;
@@ -717,18 +729,14 @@ declare namespace API {
};
type UpdateUserNotifyRequest = {
enable_email_notify: boolean;
enable_telegram_notify: boolean;
enable_balance_notify: boolean;
enable_login_notify: boolean;
enable_subscribe_notify: boolean;
enable_trade_notify: boolean;
};
type UpdateUserNotifySettingRequet = {
telegram: number;
enable_email_notify: boolean;
enable_telegram_notify: boolean;
};
type UpdateUserPasswordRequest = {
password: string;
};
@@ -756,7 +764,8 @@ declare namespace API {
enable_login_notify: boolean;
enable_subscribe_notify: boolean;
enable_trade_notify: boolean;
auth_methods: AuthMethod[];
auth_methods: UserAuthMethod[];
user_devices: UserDevice[];
created_at: number;
updated_at: number;
deleted_at?: number;
@@ -770,6 +779,12 @@ declare namespace API {
enable: boolean;
};
type UserAuthMethod = {
auth_type: string;
auth_identifier: string;
verified: boolean;
};
type UserBalanceLog = {
id: number;
user_id: number;
@@ -782,15 +797,24 @@ declare namespace API {
type UserDevice = {
id: number;
user_id: number;
device_number: string;
ip: string;
imei: string;
user_agent: string;
online: boolean;
last_online: number;
enabled: boolean;
created_at: number;
updated_at: number;
};
type UserLoginLog = {
id: number;
user_id: number;
login_ip: string;
user_agent: string;
success: boolean;
created_at: number;
};
type UserSubscribe = {
id: number;
user_id: number;
@@ -809,6 +833,16 @@ declare namespace API {
updated_at: number;
};
type UserSubscribeLog = {
id: number;
user_id: number;
user_subscribe_id: number;
token: string;
ip: string;
user_agent: string;
created_at: number;
};
type VerifyConfig = {
turnstile_site_key: string;
turnstile_secret: string;
+33 -15
View File
@@ -106,6 +106,21 @@ export async function queryUserInfo(options?: { [key: string]: any }) {
});
}
/** Get Login Log GET /v1/public/user/login_log */
export async function getLoginLog(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.GetLoginLogParams,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.GetLoginLogResponse }>('/v1/public/user/login_log', {
method: 'GET',
params: {
...params,
},
...(options || {}),
});
}
/** Update User Notify PUT /v1/public/user/notify */
export async function updateUserNotify(
body: API.UpdateUserNotifyRequest,
@@ -121,21 +136,6 @@ export async function updateUserNotify(
});
}
/** Update User Notify Setting PUT /v1/public/user/notify_setting */
export async function updateUserNotifySetting(
body: API.UpdateUserNotifySettingRequet,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: any }>('/v1/public/user/notify_setting', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
});
}
/** Get OAuth Methods GET /v1/public/user/oauth_methods */
export async function getOAuthMethods(options?: { [key: string]: any }) {
return request<API.Response & { data?: API.GetOAuthMethodsResponse }>(
@@ -173,6 +173,24 @@ export async function queryUserSubscribe(options?: { [key: string]: any }) {
);
}
/** Get Subscribe Log GET /v1/public/user/subscribe_log */
export async function getSubscribeLog(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.GetSubscribeLogParams,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.GetSubscribeLogResponse }>(
'/v1/public/user/subscribe_log',
{
method: 'GET',
params: {
...params,
},
...(options || {}),
},
);
}
/** Reset User Subscribe Token PUT /v1/public/user/subscribe_token */
export async function resetUserSubscribeToken(
body: API.ResetUserSubscribeTokenRequest,