import { apiGet, apiPost } from '@/lib/http' import type { AdminAgisoMessagingDefaults, AdminAgisoObservedShopItem, AdminAgisoShopConfigItem, AdminCloudtentaclesLoginTestResult, AdminCloudtentaclesPersistedSession, AdminCloudtentaclesSkuListResult, AdminCloudtentaclesSendSmsResult, AdminCloudtentaclesSourceConfig, AdminCloudtentaclesValidateSessionResult, AdminFulfillmentBindingConfigItem, AdminFulfillmentLookupResult, AdminKhhaoLoginTestResult, AdminKhhaoOrderQueryResult, AdminKhhaoOrderSyncResult, AdminKhhaoSourceConfig, AdminKhhaoSyncState, AdminNinetyoneOrderActionResult, AdminNinetyoneOrderListResult, 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> }) { 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) } export function testAdminKhhaoLogin(payload: { baseUrl?: string username: string password: string maxCaptchaAttempts?: number includeImageBase64?: boolean }) { return apiPost('/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('/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('/api/v1/admin/platform-config/khhao/sync-orders', payload) } export function fetchAdminNinetyoneOrders(params: { page?: number pageSize?: number status?: string } = {}) { const searchParams = new URLSearchParams() if (params.page) { searchParams.set('page', String(params.page)) } if (params.pageSize) { searchParams.set('pageSize', String(params.pageSize)) } if (params.status) { searchParams.set('status', params.status) } const queryString = searchParams.toString() return apiGet( `/api/v1/admin/platform-config/ninetyone/orders${queryString ? `?${queryString}` : ''}`, ) } export function retryAdminNinetyoneOrder(orderId: number | string) { return apiPost( `/api/v1/admin/platform-config/ninetyone/orders/${orderId}/retry`, {}, ) } export function failAdminNinetyoneOrder(orderId: number | string, payload: { reason?: string }) { return apiPost( `/api/v1/admin/platform-config/ninetyone/orders/${orderId}/fail`, 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) } export function queryAdminKuaishouEticketDetail(payload: { baseUrl?: string shopId?: string cookie?: string eTicketId: string }) { return apiPost('/api/v1/admin/platform-config/kuaishou-eticket/query-detail', payload) } export function queryAdminKuaishouEticketShopInfo(payload: { baseUrl?: string shopId?: string cookie?: string }) { return apiPost('/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('/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) } export function sendAdminCloudtentaclesSmsCode(payload: { baseUrl?: string username?: string phone?: string deviceId?: string deviceType?: number }) { return apiPost('/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('/api/v1/admin/platform-config/cloudtentacles/test-login', payload) } export function validateAdminCloudtentaclesSession(payload: { baseUrl?: string token?: string deviceId?: string deviceType?: number }) { return apiPost('/api/v1/admin/platform-config/cloudtentacles/validate-session', payload) } export function fetchAdminCloudtentaclesAsset(payload: { baseUrl?: string token?: string deviceId?: string deviceType?: number }) { return apiPost>('/api/v1/admin/platform-config/cloudtentacles/asset', payload) } export function fetchAdminCloudtentaclesCategories(payload: { baseUrl?: string token?: string deviceId?: string deviceType?: number }) { return apiPost>('/api/v1/admin/platform-config/cloudtentacles/categories', payload) } export function fetchAdminCloudtentaclesSkuList(payload: { baseUrl?: string token?: string deviceId?: string deviceType?: number }) { return apiPost('/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>('/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>('/api/v1/admin/platform-config/cloudtentacles/sku/use', payload) } export function fetchAdminCloudtentaclesKnapsack(payload: { baseUrl?: string token?: string deviceId?: string deviceType?: number }) { return apiPost>('/api/v1/admin/platform-config/cloudtentacles/knapsack', payload) } export function fetchAdminCloudtentaclesVnList(payload: { baseUrl?: string token?: string deviceId?: string deviceType?: number key?: string }) { return apiPost>('/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>('/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>('/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>('/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>('/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>('/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>('/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>('/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('/api/v1/admin/platform-config/fulfillment-bindings/lookup-order', payload) } export function saveAdminFulfillmentBindingConfigs(payload: { bindings: Array> }) { 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) }