拆分前端后台管理 API 客户端
This commit is contained in:
@@ -1,617 +1 @@
|
|||||||
import { apiDelete, apiGet, apiGetBlob, apiPost } from '@/lib/http'
|
export * from './admin/index'
|
||||||
import type {
|
|
||||||
AdminAgisoMessagingDefaults,
|
|
||||||
AdminAgisoObservedShopItem,
|
|
||||||
AdminAgisoShopConfigItem,
|
|
||||||
AdminAuditLogItem,
|
|
||||||
AdminCloudtentaclesLoginTestResult,
|
|
||||||
AdminCloudtentaclesPersistedSession,
|
|
||||||
AdminCloudtentaclesSkuListResult,
|
|
||||||
AdminCloudtentaclesSendSmsResult,
|
|
||||||
AdminCloudtentaclesSourceConfig,
|
|
||||||
AdminCloudtentaclesValidateSessionResult,
|
|
||||||
AdminFulfillmentLookupResult,
|
|
||||||
AdminFulfillmentBindingConfigItem,
|
|
||||||
AdminKhhaoLoginTestResult,
|
|
||||||
AdminKhhaoOrderQueryResult,
|
|
||||||
AdminKhhaoSourceConfig,
|
|
||||||
AdminKhhaoSyncState,
|
|
||||||
AdminKhhaoOrderSyncResult,
|
|
||||||
AdminKuaishouEticketConsumeResult,
|
|
||||||
AdminKuaishouCloudFulfillmentConfig,
|
|
||||||
AdminKuaishouEticketDetailResult,
|
|
||||||
AdminKuaishouEticketShopInfoResult,
|
|
||||||
AdminKuaishouEticketSourceConfig,
|
|
||||||
AdminInventoryItemListItem,
|
|
||||||
AdminInventorySkuSuggestion,
|
|
||||||
AdminMessageDeliveryListItem,
|
|
||||||
AdminObservedProductItem,
|
|
||||||
AdminTaskActionResponse,
|
|
||||||
AdminDashboardSummary,
|
|
||||||
AdminLoginResponse,
|
|
||||||
AdminManualRedeemDetail,
|
|
||||||
AdminOrderDetail,
|
|
||||||
AdminOrderListItem,
|
|
||||||
AdminPagination,
|
|
||||||
AdminSessionSummary,
|
|
||||||
AdminTaskDetail,
|
|
||||||
AdminTaskListItem,
|
|
||||||
AdminUserListItem,
|
|
||||||
AdminWebhookEventDetail,
|
|
||||||
AdminWebhookEventListItem,
|
|
||||||
AdminWebhookReplayResponse,
|
|
||||||
} from '@/types/admin'
|
|
||||||
|
|
||||||
export function loginAdmin(payload: { username: string; password: string }) {
|
|
||||||
return apiPost<AdminLoginResponse>('/api/v1/admin/auth/login', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminSession() {
|
|
||||||
return apiGet<AdminSessionSummary>('/api/v1/admin/auth/session')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function logoutAdmin() {
|
|
||||||
return apiPost<{ success: boolean }>('/api/v1/admin/auth/logout', {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminDashboardSummary() {
|
|
||||||
return apiGet<AdminDashboardSummary>('/api/v1/admin/dashboard/summary')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminUsers(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminUserListItem[]; pagination: AdminPagination }>('/api/v1/admin/users', params)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function createAdminUser(payload: { username: string; password: string; role: string; status?: string }) {
|
|
||||||
return apiPost<{ user: AdminUserListItem }>('/api/v1/admin/users', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function updateAdminUserRole(userId: number | string, payload: { role: string }) {
|
|
||||||
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/role`, payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function updateAdminUserStatus(userId: number | string, payload: { status: string }) {
|
|
||||||
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/status`, payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function updateAdminUserInventoryGroups(userId: number | string, payload: { inventoryGroupCodes: string[] }) {
|
|
||||||
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/inventory-groups`, payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function resetAdminUserPassword(userId: number | string, payload: { password: string }) {
|
|
||||||
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/reset-password`, payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminAuditLogs(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminAuditLogItem[]; pagination: AdminPagination }>('/api/v1/admin/audit-logs', params)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminAgisoShopConfigs() {
|
|
||||||
return apiGet<{
|
|
||||||
filePath: string
|
|
||||||
defaults: AdminAgisoMessagingDefaults
|
|
||||||
shops: AdminAgisoShopConfigItem[]
|
|
||||||
observedShops: AdminAgisoObservedShopItem[]
|
|
||||||
}>('/api/v1/admin/platform-config/agiso-shops')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function saveAdminAgisoShopConfigs(payload: {
|
|
||||||
defaults: AdminAgisoMessagingDefaults
|
|
||||||
shops: Array<Record<string, unknown>>
|
|
||||||
}) {
|
|
||||||
return apiPost<{
|
|
||||||
filePath: string
|
|
||||||
defaults: AdminAgisoMessagingDefaults
|
|
||||||
shops: AdminAgisoShopConfigItem[]
|
|
||||||
}>('/api/v1/admin/platform-config/agiso-shops', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminKhhaoSourceConfig() {
|
|
||||||
return apiGet<{
|
|
||||||
filePath: string
|
|
||||||
source: AdminKhhaoSourceConfig
|
|
||||||
stateFilePath: string
|
|
||||||
syncState: AdminKhhaoSyncState
|
|
||||||
}>('/api/v1/admin/platform-config/khhao-source')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminKuaishouEticketSourceConfig() {
|
|
||||||
return apiGet<{
|
|
||||||
filePath: string
|
|
||||||
source: AdminKuaishouEticketSourceConfig
|
|
||||||
}>('/api/v1/admin/platform-config/kuaishou-eticket-source')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function saveAdminKuaishouEticketSourceConfig(payload: AdminKuaishouEticketSourceConfig) {
|
|
||||||
return apiPost<{
|
|
||||||
filePath: string
|
|
||||||
source: AdminKuaishouEticketSourceConfig
|
|
||||||
}>('/api/v1/admin/platform-config/kuaishou-eticket-source', payload as unknown as Record<string, unknown>)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function queryAdminKuaishouEticketDetail(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
shopId?: string
|
|
||||||
cookie?: string
|
|
||||||
eTicketId: string
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminKuaishouEticketDetailResult>('/api/v1/admin/platform-config/kuaishou-eticket/query-detail', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function queryAdminKuaishouEticketShopInfo(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
shopId?: string
|
|
||||||
cookie?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminKuaishouEticketShopInfoResult>('/api/v1/admin/platform-config/kuaishou-eticket/query-shop-info', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function consumeAdminKuaishouEticket(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
shopId?: string
|
|
||||||
cookie?: string
|
|
||||||
eTicketId: string
|
|
||||||
oid?: string
|
|
||||||
formToken?: string
|
|
||||||
num?: number
|
|
||||||
storeId?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminKuaishouEticketConsumeResult>('/api/v1/admin/platform-config/kuaishou-eticket/consume', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function saveAdminKhhaoSourceConfig(payload: AdminKhhaoSourceConfig) {
|
|
||||||
return apiPost<{
|
|
||||||
filePath: string
|
|
||||||
source: AdminKhhaoSourceConfig
|
|
||||||
stateFilePath: string
|
|
||||||
syncState: AdminKhhaoSyncState
|
|
||||||
}>('/api/v1/admin/platform-config/khhao-source', payload as unknown as Record<string, unknown>)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function testAdminKhhaoLogin(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
username: string
|
|
||||||
password: string
|
|
||||||
maxCaptchaAttempts?: number
|
|
||||||
includeImageBase64?: boolean
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminKhhaoLoginTestResult>('/api/v1/admin/platform-config/khhao/test-login', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function queryAdminKhhaoOrders(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
username: string
|
|
||||||
password: string
|
|
||||||
page?: number
|
|
||||||
limit?: number
|
|
||||||
maxCaptchaAttempts?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminKhhaoOrderQueryResult>('/api/v1/admin/platform-config/khhao/query-orders', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function syncAdminKhhaoOrders(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
username: string
|
|
||||||
password: string
|
|
||||||
page?: number
|
|
||||||
limit?: number
|
|
||||||
maxCaptchaAttempts?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminKhhaoOrderSyncResult>('/api/v1/admin/platform-config/khhao/sync-orders', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminCloudtentaclesSourceConfig() {
|
|
||||||
return apiGet<{
|
|
||||||
filePath: string
|
|
||||||
sessionFilePath: string
|
|
||||||
source: AdminCloudtentaclesSourceConfig
|
|
||||||
session: AdminCloudtentaclesPersistedSession
|
|
||||||
}>('/api/v1/admin/platform-config/cloudtentacles-source')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function saveAdminCloudtentaclesSourceConfig(payload: AdminCloudtentaclesSourceConfig) {
|
|
||||||
return apiPost<{
|
|
||||||
filePath: string
|
|
||||||
sessionFilePath: string
|
|
||||||
source: AdminCloudtentaclesSourceConfig
|
|
||||||
session: AdminCloudtentaclesPersistedSession
|
|
||||||
}>('/api/v1/admin/platform-config/cloudtentacles-source', payload as unknown as Record<string, unknown>)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function sendAdminCloudtentaclesSmsCode(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
username?: string
|
|
||||||
phone?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminCloudtentaclesSendSmsResult>('/api/v1/admin/platform-config/cloudtentacles/send-sms-code', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function testAdminCloudtentaclesLogin(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
username?: string
|
|
||||||
password?: string
|
|
||||||
phone?: string
|
|
||||||
code?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminCloudtentaclesLoginTestResult>('/api/v1/admin/platform-config/cloudtentacles/test-login', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function validateAdminCloudtentaclesSession(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminCloudtentaclesValidateSessionResult>('/api/v1/admin/platform-config/cloudtentacles/validate-session', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminCloudtentaclesAsset(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/asset', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminCloudtentaclesCategories(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/categories', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminCloudtentaclesSkuList(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminCloudtentaclesSkuListResult>('/api/v1/admin/platform-config/cloudtentacles/sku/list', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buyAdminCloudtentaclesSku(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
id?: number
|
|
||||||
count?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/sku/buy', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function useAdminCloudtentaclesSku(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
id?: number
|
|
||||||
virtualNumberId?: number
|
|
||||||
phone?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/sku/use', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminCloudtentaclesKnapsack(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/knapsack', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminCloudtentaclesVnList(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
key?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/list', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function appointAdminCloudtentaclesVn(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
key?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/appoint', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function generateAdminCloudtentaclesVnLoginCode(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
key?: string
|
|
||||||
id?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/generate-login-code', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminCloudtentaclesVnCode(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
key?: string
|
|
||||||
phone?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/fetch-code', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function verifyAdminCloudtentaclesVnCode(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
key?: string
|
|
||||||
id?: number
|
|
||||||
code?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/verify-code', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminCloudtentaclesBindUrl(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
key?: string
|
|
||||||
id?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/bind-url', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function backAdminCloudtentaclesVn(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
key?: string
|
|
||||||
id?: number
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/back', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function runAdminCloudtentaclesFullFlow(payload: {
|
|
||||||
baseUrl?: string
|
|
||||||
token?: string
|
|
||||||
deviceId?: string
|
|
||||||
deviceType?: number
|
|
||||||
skuId?: number
|
|
||||||
skuCount?: number
|
|
||||||
vnKey?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/debug/full-flow', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminFulfillmentBindingConfigs() {
|
|
||||||
return apiGet<{
|
|
||||||
filePath: string
|
|
||||||
bindings: AdminFulfillmentBindingConfigItem[]
|
|
||||||
observedProducts: AdminObservedProductItem[]
|
|
||||||
}>('/api/v1/admin/platform-config/fulfillment-bindings')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function lookupAdminFulfillmentBindingOrder(payload: {
|
|
||||||
provider?: string
|
|
||||||
platform?: string
|
|
||||||
shopId: string
|
|
||||||
platformOrderId: string
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminFulfillmentLookupResult>('/api/v1/admin/platform-config/fulfillment-bindings/lookup-order', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function saveAdminFulfillmentBindingConfigs(payload: { bindings: Array<Record<string, unknown>> }) {
|
|
||||||
return apiPost<{
|
|
||||||
filePath: string
|
|
||||||
bindings: AdminFulfillmentBindingConfigItem[]
|
|
||||||
}>('/api/v1/admin/platform-config/fulfillment-bindings', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminKuaishouCloudFulfillmentConfig() {
|
|
||||||
return apiGet<{
|
|
||||||
filePath: string
|
|
||||||
source: AdminKuaishouCloudFulfillmentConfig
|
|
||||||
}>('/api/v1/admin/platform-config/kuaishou-cloud-fulfillment')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function saveAdminKuaishouCloudFulfillmentConfig(payload: AdminKuaishouCloudFulfillmentConfig) {
|
|
||||||
return apiPost<{
|
|
||||||
filePath: string
|
|
||||||
source: AdminKuaishouCloudFulfillmentConfig
|
|
||||||
}>('/api/v1/admin/platform-config/kuaishou-cloud-fulfillment', payload as unknown as Record<string, unknown>)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminOrders(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminOrderListItem[]; pagination: AdminPagination }>('/api/v1/admin/orders', params)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminOrderDetail(orderId: number | string) {
|
|
||||||
return apiGet<AdminOrderDetail>(`/api/v1/admin/orders/${orderId}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminTasks(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminTaskListItem[]; pagination: AdminPagination }>('/api/v1/admin/tasks', params)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminTaskDetail(taskId: number | string) {
|
|
||||||
return apiGet<AdminTaskDetail>(`/api/v1/admin/tasks/${taskId}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminTaskScreenshot(taskId: number | string) {
|
|
||||||
return apiGetBlob(`/api/v1/admin/tasks/${taskId}/screenshot`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function retryAdminTask(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/retry`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function releaseAdminTaskInventory(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/release-inventory`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function releaseAdminTaskInventoryBinding(taskId: number | string, bindingId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/inventory-bindings/${bindingId}/release`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function regenerateAdminTaskClaimLink(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(
|
|
||||||
`/api/v1/admin/tasks/${taskId}/regenerate-claim-link`,
|
|
||||||
{},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function confirmAdminTaskAssistedRole(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/support-confirm-role`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function redeemAdminTaskAssisted(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/support-redeem`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function closeAdminTask(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/close`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function markAdminTaskManualReview(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/mark-manual-review`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function completeAdminTaskManualDispatch(
|
|
||||||
taskId: number | string,
|
|
||||||
payload: {
|
|
||||||
outcome: 'delivered' | 'failed'
|
|
||||||
resultMessage?: string
|
|
||||||
deliveryReference?: string
|
|
||||||
deliveredCredential?: string
|
|
||||||
},
|
|
||||||
) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/complete-manual-dispatch`, payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function prepareAdminTaskKuaishouCloudFulfillment(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/prepare`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function refreshAdminTaskKuaishouCloudRoleInfo(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/refresh-role-info`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function dispatchAdminTaskKuaishouCloudFulfillment(
|
|
||||||
taskId: number | string,
|
|
||||||
payload: {
|
|
||||||
ticketCode?: string
|
|
||||||
} = {},
|
|
||||||
) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/dispatch`, payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function returnNumberAdminTaskKuaishouCloudFulfillment(taskId: number | string) {
|
|
||||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/return-number`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminInventoryItems(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminInventoryItemListItem[]; pagination: AdminPagination }>('/api/v1/admin/inventory', params)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminInventorySkuSuggestions(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminInventorySkuSuggestion[] }>('/api/v1/admin/inventory/sku-suggestions', params)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminManualRedeemSkuSuggestions(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminInventorySkuSuggestion[] }>('/api/v1/admin/manual-redeem/sku-suggestions', params)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function createAdminManualRedeemTask(payload: {
|
|
||||||
proofValue: string
|
|
||||||
skuCode: string
|
|
||||||
skuName?: string
|
|
||||||
remark?: string
|
|
||||||
}) {
|
|
||||||
return apiPost<AdminManualRedeemDetail>('/api/v1/admin/manual-redeem', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminManualRedeemDetail(taskId: number | string) {
|
|
||||||
return apiGet<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function createAdminManualRedeemSession(
|
|
||||||
taskId: number | string,
|
|
||||||
payload: { loginType: string; forceRecreate?: boolean },
|
|
||||||
) {
|
|
||||||
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session`, payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminManualRedeemSessionSummary(taskId: number | string) {
|
|
||||||
return apiGet<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session/summary`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function refreshAdminManualRedeemSession(taskId: number | string) {
|
|
||||||
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session/refresh`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function removeAdminManualRedeemSession(taskId: number | string) {
|
|
||||||
return apiDelete<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function confirmAdminManualRedeemRole(taskId: number | string) {
|
|
||||||
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/confirm-role`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function redeemAdminManualRedeem(taskId: number | string) {
|
|
||||||
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/redeem`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function closeAdminManualRedeemTask(taskId: number | string) {
|
|
||||||
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/close`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminMessageDeliveries(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminMessageDeliveryListItem[]; pagination: AdminPagination }>(
|
|
||||||
'/api/v1/admin/message-deliveries',
|
|
||||||
params,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function importAdminInventoryItems(payload: Record<string, unknown>) {
|
|
||||||
return apiPost<{ total: number; created: number; duplicated: number }>('/api/v1/admin/inventory/import', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function createAdminInventoryItem(payload: Record<string, unknown>) {
|
|
||||||
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>('/api/v1/admin/inventory', payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function releaseAdminInventoryItem(inventoryItemId: number | string) {
|
|
||||||
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>(`/api/v1/admin/inventory/${inventoryItemId}/release`, {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function invalidateAdminInventoryItem(inventoryItemId: number | string, payload?: Record<string, unknown>) {
|
|
||||||
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>(`/api/v1/admin/inventory/${inventoryItemId}/invalidate`, payload || {})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminWebhookEvents(params?: Record<string, unknown>) {
|
|
||||||
return apiGet<{ items: AdminWebhookEventListItem[]; pagination: AdminPagination }>(
|
|
||||||
'/api/v1/admin/webhook-events',
|
|
||||||
params,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAdminWebhookEventDetail(eventId: number | string) {
|
|
||||||
return apiGet<AdminWebhookEventDetail>(`/api/v1/admin/webhook-events/${eventId}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function replayAdminWebhookEvent(eventId: number | string) {
|
|
||||||
return apiPost<AdminWebhookReplayResponse>(`/api/v1/admin/webhook-events/${eventId}/replay`, {})
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import { apiGet } from '@/lib/http'
|
||||||
|
import type { AdminAuditLogItem, AdminPagination } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminAuditLogs(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminAuditLogItem[]; pagination: AdminPagination }>('/api/v1/admin/audit-logs', params)
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
import { apiGet, apiPost } from '@/lib/http'
|
||||||
|
import type { AdminLoginResponse, AdminSessionSummary } from '@/types/admin'
|
||||||
|
|
||||||
|
export function loginAdmin(payload: { username: string; password: string }) {
|
||||||
|
return apiPost<AdminLoginResponse>('/api/v1/admin/auth/login', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminSession() {
|
||||||
|
return apiGet<AdminSessionSummary>('/api/v1/admin/auth/session')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function logoutAdmin() {
|
||||||
|
return apiPost<{ success: boolean }>('/api/v1/admin/auth/logout', {})
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import { apiGet } from '@/lib/http'
|
||||||
|
import type { AdminDashboardSummary } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminDashboardSummary() {
|
||||||
|
return apiGet<AdminDashboardSummary>('/api/v1/admin/dashboard/summary')
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
export * from './auth'
|
||||||
|
export * from './dashboard'
|
||||||
|
export * from './users'
|
||||||
|
export * from './audit-logs'
|
||||||
|
export * from './platform-config'
|
||||||
|
export * from './orders'
|
||||||
|
export * from './tasks'
|
||||||
|
export * from './inventory'
|
||||||
|
export * from './manual-redeem'
|
||||||
|
export * from './message-deliveries'
|
||||||
|
export * from './webhook-events'
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import { apiGet, apiPost } from '@/lib/http'
|
||||||
|
import type { AdminInventoryItemListItem, AdminInventorySkuSuggestion, AdminPagination } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminInventoryItems(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminInventoryItemListItem[]; pagination: AdminPagination }>('/api/v1/admin/inventory', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminInventorySkuSuggestions(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminInventorySkuSuggestion[] }>('/api/v1/admin/inventory/sku-suggestions', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function importAdminInventoryItems(payload: Record<string, unknown>) {
|
||||||
|
return apiPost<{ total: number; created: number; duplicated: number }>('/api/v1/admin/inventory/import', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createAdminInventoryItem(payload: Record<string, unknown>) {
|
||||||
|
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>('/api/v1/admin/inventory', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function releaseAdminInventoryItem(inventoryItemId: number | string) {
|
||||||
|
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>(`/api/v1/admin/inventory/${inventoryItemId}/release`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function invalidateAdminInventoryItem(inventoryItemId: number | string, payload?: Record<string, unknown>) {
|
||||||
|
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>(
|
||||||
|
`/api/v1/admin/inventory/${inventoryItemId}/invalidate`,
|
||||||
|
payload || {},
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
import { apiDelete, apiGet, apiPost } from '@/lib/http'
|
||||||
|
import type { AdminInventorySkuSuggestion, AdminManualRedeemDetail } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminManualRedeemSkuSuggestions(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminInventorySkuSuggestion[] }>('/api/v1/admin/manual-redeem/sku-suggestions', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createAdminManualRedeemTask(payload: {
|
||||||
|
proofValue: string
|
||||||
|
skuCode: string
|
||||||
|
skuName?: string
|
||||||
|
remark?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminManualRedeemDetail>('/api/v1/admin/manual-redeem', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminManualRedeemDetail(taskId: number | string) {
|
||||||
|
return apiGet<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createAdminManualRedeemSession(
|
||||||
|
taskId: number | string,
|
||||||
|
payload: { loginType: string; forceRecreate?: boolean },
|
||||||
|
) {
|
||||||
|
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session`, payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminManualRedeemSessionSummary(taskId: number | string) {
|
||||||
|
return apiGet<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session/summary`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function refreshAdminManualRedeemSession(taskId: number | string) {
|
||||||
|
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session/refresh`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function removeAdminManualRedeemSession(taskId: number | string) {
|
||||||
|
return apiDelete<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function confirmAdminManualRedeemRole(taskId: number | string) {
|
||||||
|
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/confirm-role`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function redeemAdminManualRedeem(taskId: number | string) {
|
||||||
|
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/redeem`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function closeAdminManualRedeemTask(taskId: number | string) {
|
||||||
|
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/close`, {})
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import { apiGet } from '@/lib/http'
|
||||||
|
import type { AdminMessageDeliveryListItem, AdminPagination } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminMessageDeliveries(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminMessageDeliveryListItem[]; pagination: AdminPagination }>(
|
||||||
|
'/api/v1/admin/message-deliveries',
|
||||||
|
params,
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import { apiGet } from '@/lib/http'
|
||||||
|
import type { AdminOrderDetail, AdminOrderListItem, AdminPagination } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminOrders(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminOrderListItem[]; pagination: AdminPagination }>('/api/v1/admin/orders', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminOrderDetail(orderId: number | string) {
|
||||||
|
return apiGet<AdminOrderDetail>(`/api/v1/admin/orders/${orderId}`)
|
||||||
|
}
|
||||||
@@ -0,0 +1,373 @@
|
|||||||
|
import { apiGet, apiPost } from '@/lib/http'
|
||||||
|
import type {
|
||||||
|
AdminAgisoMessagingDefaults,
|
||||||
|
AdminAgisoObservedShopItem,
|
||||||
|
AdminAgisoShopConfigItem,
|
||||||
|
AdminCloudtentaclesLoginTestResult,
|
||||||
|
AdminCloudtentaclesPersistedSession,
|
||||||
|
AdminCloudtentaclesSkuListResult,
|
||||||
|
AdminCloudtentaclesSendSmsResult,
|
||||||
|
AdminCloudtentaclesSourceConfig,
|
||||||
|
AdminCloudtentaclesValidateSessionResult,
|
||||||
|
AdminFulfillmentBindingConfigItem,
|
||||||
|
AdminFulfillmentLookupResult,
|
||||||
|
AdminKhhaoLoginTestResult,
|
||||||
|
AdminKhhaoOrderQueryResult,
|
||||||
|
AdminKhhaoOrderSyncResult,
|
||||||
|
AdminKhhaoSourceConfig,
|
||||||
|
AdminKhhaoSyncState,
|
||||||
|
AdminKuaishouCloudFulfillmentConfig,
|
||||||
|
AdminKuaishouEticketConsumeResult,
|
||||||
|
AdminKuaishouEticketDetailResult,
|
||||||
|
AdminKuaishouEticketShopInfoResult,
|
||||||
|
AdminKuaishouEticketSourceConfig,
|
||||||
|
AdminObservedProductItem,
|
||||||
|
} from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminAgisoShopConfigs() {
|
||||||
|
return apiGet<{
|
||||||
|
filePath: string
|
||||||
|
defaults: AdminAgisoMessagingDefaults
|
||||||
|
shops: AdminAgisoShopConfigItem[]
|
||||||
|
observedShops: AdminAgisoObservedShopItem[]
|
||||||
|
}>('/api/v1/admin/platform-config/agiso-shops')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function saveAdminAgisoShopConfigs(payload: {
|
||||||
|
defaults: AdminAgisoMessagingDefaults
|
||||||
|
shops: Array<Record<string, unknown>>
|
||||||
|
}) {
|
||||||
|
return apiPost<{
|
||||||
|
filePath: string
|
||||||
|
defaults: AdminAgisoMessagingDefaults
|
||||||
|
shops: AdminAgisoShopConfigItem[]
|
||||||
|
}>('/api/v1/admin/platform-config/agiso-shops', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminKhhaoSourceConfig() {
|
||||||
|
return apiGet<{
|
||||||
|
filePath: string
|
||||||
|
source: AdminKhhaoSourceConfig
|
||||||
|
stateFilePath: string
|
||||||
|
syncState: AdminKhhaoSyncState
|
||||||
|
}>('/api/v1/admin/platform-config/khhao-source')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function saveAdminKhhaoSourceConfig(payload: AdminKhhaoSourceConfig) {
|
||||||
|
return apiPost<{
|
||||||
|
filePath: string
|
||||||
|
source: AdminKhhaoSourceConfig
|
||||||
|
stateFilePath: string
|
||||||
|
syncState: AdminKhhaoSyncState
|
||||||
|
}>('/api/v1/admin/platform-config/khhao-source', payload as unknown as Record<string, unknown>)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function testAdminKhhaoLogin(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
maxCaptchaAttempts?: number
|
||||||
|
includeImageBase64?: boolean
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminKhhaoLoginTestResult>('/api/v1/admin/platform-config/khhao/test-login', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function queryAdminKhhaoOrders(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
page?: number
|
||||||
|
limit?: number
|
||||||
|
maxCaptchaAttempts?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminKhhaoOrderQueryResult>('/api/v1/admin/platform-config/khhao/query-orders', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function syncAdminKhhaoOrders(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
page?: number
|
||||||
|
limit?: number
|
||||||
|
maxCaptchaAttempts?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminKhhaoOrderSyncResult>('/api/v1/admin/platform-config/khhao/sync-orders', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminKuaishouEticketSourceConfig() {
|
||||||
|
return apiGet<{
|
||||||
|
filePath: string
|
||||||
|
source: AdminKuaishouEticketSourceConfig
|
||||||
|
}>('/api/v1/admin/platform-config/kuaishou-eticket-source')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function saveAdminKuaishouEticketSourceConfig(payload: AdminKuaishouEticketSourceConfig) {
|
||||||
|
return apiPost<{
|
||||||
|
filePath: string
|
||||||
|
source: AdminKuaishouEticketSourceConfig
|
||||||
|
}>('/api/v1/admin/platform-config/kuaishou-eticket-source', payload as unknown as Record<string, unknown>)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function queryAdminKuaishouEticketDetail(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
shopId?: string
|
||||||
|
cookie?: string
|
||||||
|
eTicketId: string
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminKuaishouEticketDetailResult>('/api/v1/admin/platform-config/kuaishou-eticket/query-detail', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function queryAdminKuaishouEticketShopInfo(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
shopId?: string
|
||||||
|
cookie?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminKuaishouEticketShopInfoResult>('/api/v1/admin/platform-config/kuaishou-eticket/query-shop-info', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function consumeAdminKuaishouEticket(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
shopId?: string
|
||||||
|
cookie?: string
|
||||||
|
eTicketId: string
|
||||||
|
oid?: string
|
||||||
|
formToken?: string
|
||||||
|
num?: number
|
||||||
|
storeId?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminKuaishouEticketConsumeResult>('/api/v1/admin/platform-config/kuaishou-eticket/consume', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminCloudtentaclesSourceConfig() {
|
||||||
|
return apiGet<{
|
||||||
|
filePath: string
|
||||||
|
sessionFilePath: string
|
||||||
|
source: AdminCloudtentaclesSourceConfig
|
||||||
|
session: AdminCloudtentaclesPersistedSession
|
||||||
|
}>('/api/v1/admin/platform-config/cloudtentacles-source')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function saveAdminCloudtentaclesSourceConfig(payload: AdminCloudtentaclesSourceConfig) {
|
||||||
|
return apiPost<{
|
||||||
|
filePath: string
|
||||||
|
sessionFilePath: string
|
||||||
|
source: AdminCloudtentaclesSourceConfig
|
||||||
|
session: AdminCloudtentaclesPersistedSession
|
||||||
|
}>('/api/v1/admin/platform-config/cloudtentacles-source', payload as unknown as Record<string, unknown>)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function sendAdminCloudtentaclesSmsCode(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
username?: string
|
||||||
|
phone?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminCloudtentaclesSendSmsResult>('/api/v1/admin/platform-config/cloudtentacles/send-sms-code', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function testAdminCloudtentaclesLogin(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
username?: string
|
||||||
|
password?: string
|
||||||
|
phone?: string
|
||||||
|
code?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminCloudtentaclesLoginTestResult>('/api/v1/admin/platform-config/cloudtentacles/test-login', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function validateAdminCloudtentaclesSession(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminCloudtentaclesValidateSessionResult>('/api/v1/admin/platform-config/cloudtentacles/validate-session', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminCloudtentaclesAsset(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/asset', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminCloudtentaclesCategories(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/categories', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminCloudtentaclesSkuList(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminCloudtentaclesSkuListResult>('/api/v1/admin/platform-config/cloudtentacles/sku/list', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buyAdminCloudtentaclesSku(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
id?: number
|
||||||
|
count?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/sku/buy', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function useAdminCloudtentaclesSku(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
id?: number
|
||||||
|
virtualNumberId?: number
|
||||||
|
phone?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/sku/use', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminCloudtentaclesKnapsack(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/knapsack', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminCloudtentaclesVnList(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
key?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/list', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function appointAdminCloudtentaclesVn(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
key?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/appoint', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function generateAdminCloudtentaclesVnLoginCode(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
key?: string
|
||||||
|
id?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/generate-login-code', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminCloudtentaclesVnCode(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
key?: string
|
||||||
|
phone?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/fetch-code', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function verifyAdminCloudtentaclesVnCode(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
key?: string
|
||||||
|
id?: number
|
||||||
|
code?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/verify-code', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminCloudtentaclesBindUrl(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
key?: string
|
||||||
|
id?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/bind-url', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function backAdminCloudtentaclesVn(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
key?: string
|
||||||
|
id?: number
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/back', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function runAdminCloudtentaclesFullFlow(payload: {
|
||||||
|
baseUrl?: string
|
||||||
|
token?: string
|
||||||
|
deviceId?: string
|
||||||
|
deviceType?: number
|
||||||
|
skuId?: number
|
||||||
|
skuCount?: number
|
||||||
|
vnKey?: string
|
||||||
|
}) {
|
||||||
|
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/debug/full-flow', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminFulfillmentBindingConfigs() {
|
||||||
|
return apiGet<{
|
||||||
|
filePath: string
|
||||||
|
bindings: AdminFulfillmentBindingConfigItem[]
|
||||||
|
observedProducts: AdminObservedProductItem[]
|
||||||
|
}>('/api/v1/admin/platform-config/fulfillment-bindings')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function lookupAdminFulfillmentBindingOrder(payload: {
|
||||||
|
provider?: string
|
||||||
|
platform?: string
|
||||||
|
shopId: string
|
||||||
|
platformOrderId: string
|
||||||
|
}) {
|
||||||
|
return apiPost<AdminFulfillmentLookupResult>('/api/v1/admin/platform-config/fulfillment-bindings/lookup-order', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function saveAdminFulfillmentBindingConfigs(payload: { bindings: Array<Record<string, unknown>> }) {
|
||||||
|
return apiPost<{
|
||||||
|
filePath: string
|
||||||
|
bindings: AdminFulfillmentBindingConfigItem[]
|
||||||
|
}>('/api/v1/admin/platform-config/fulfillment-bindings', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminKuaishouCloudFulfillmentConfig() {
|
||||||
|
return apiGet<{
|
||||||
|
filePath: string
|
||||||
|
source: AdminKuaishouCloudFulfillmentConfig
|
||||||
|
}>('/api/v1/admin/platform-config/kuaishou-cloud-fulfillment')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function saveAdminKuaishouCloudFulfillmentConfig(payload: AdminKuaishouCloudFulfillmentConfig) {
|
||||||
|
return apiPost<{
|
||||||
|
filePath: string
|
||||||
|
source: AdminKuaishouCloudFulfillmentConfig
|
||||||
|
}>('/api/v1/admin/platform-config/kuaishou-cloud-fulfillment', payload as unknown as Record<string, unknown>)
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
import { apiGet, apiGetBlob, apiPost } from '@/lib/http'
|
||||||
|
import type { AdminPagination, AdminTaskActionResponse, AdminTaskDetail, AdminTaskListItem } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminTasks(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminTaskListItem[]; pagination: AdminPagination }>('/api/v1/admin/tasks', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminTaskDetail(taskId: number | string) {
|
||||||
|
return apiGet<AdminTaskDetail>(`/api/v1/admin/tasks/${taskId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminTaskScreenshot(taskId: number | string) {
|
||||||
|
return apiGetBlob(`/api/v1/admin/tasks/${taskId}/screenshot`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function retryAdminTask(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/retry`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function releaseAdminTaskInventory(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/release-inventory`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function releaseAdminTaskInventoryBinding(taskId: number | string, bindingId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/inventory-bindings/${bindingId}/release`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function regenerateAdminTaskClaimLink(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/regenerate-claim-link`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function confirmAdminTaskAssistedRole(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/support-confirm-role`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function redeemAdminTaskAssisted(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/support-redeem`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function closeAdminTask(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/close`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function markAdminTaskManualReview(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/mark-manual-review`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function completeAdminTaskManualDispatch(
|
||||||
|
taskId: number | string,
|
||||||
|
payload: {
|
||||||
|
outcome: 'delivered' | 'failed'
|
||||||
|
resultMessage?: string
|
||||||
|
deliveryReference?: string
|
||||||
|
deliveredCredential?: string
|
||||||
|
},
|
||||||
|
) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/complete-manual-dispatch`, payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function prepareAdminTaskKuaishouCloudFulfillment(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/prepare`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function refreshAdminTaskKuaishouCloudRoleInfo(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/refresh-role-info`, {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function dispatchAdminTaskKuaishouCloudFulfillment(
|
||||||
|
taskId: number | string,
|
||||||
|
payload: {
|
||||||
|
ticketCode?: string
|
||||||
|
} = {},
|
||||||
|
) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/dispatch`, payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function returnNumberAdminTaskKuaishouCloudFulfillment(taskId: number | string) {
|
||||||
|
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/return-number`, {})
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import { apiGet, apiPost } from '@/lib/http'
|
||||||
|
import type { AdminPagination, AdminUserListItem } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminUsers(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminUserListItem[]; pagination: AdminPagination }>('/api/v1/admin/users', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createAdminUser(payload: { username: string; password: string; role: string; status?: string }) {
|
||||||
|
return apiPost<{ user: AdminUserListItem }>('/api/v1/admin/users', payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateAdminUserRole(userId: number | string, payload: { role: string }) {
|
||||||
|
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/role`, payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateAdminUserStatus(userId: number | string, payload: { status: string }) {
|
||||||
|
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/status`, payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateAdminUserInventoryGroups(userId: number | string, payload: { inventoryGroupCodes: string[] }) {
|
||||||
|
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/inventory-groups`, payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function resetAdminUserPassword(userId: number | string, payload: { password: string }) {
|
||||||
|
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/reset-password`, payload)
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { apiGet, apiPost } from '@/lib/http'
|
||||||
|
import type { AdminPagination, AdminWebhookEventDetail, AdminWebhookEventListItem, AdminWebhookReplayResponse } from '@/types/admin'
|
||||||
|
|
||||||
|
export function fetchAdminWebhookEvents(params?: Record<string, unknown>) {
|
||||||
|
return apiGet<{ items: AdminWebhookEventListItem[]; pagination: AdminPagination }>(
|
||||||
|
'/api/v1/admin/webhook-events',
|
||||||
|
params,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fetchAdminWebhookEventDetail(eventId: number | string) {
|
||||||
|
return apiGet<AdminWebhookEventDetail>(`/api/v1/admin/webhook-events/${eventId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function replayAdminWebhookEvent(eventId: number | string) {
|
||||||
|
return apiPost<AdminWebhookReplayResponse>(`/api/v1/admin/webhook-events/${eventId}/replay`, {})
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user