实现多商户履约平台基础
This commit is contained in:
@@ -1,12 +1,22 @@
|
||||
import request from './request'
|
||||
import type {
|
||||
DashboardStats,
|
||||
ApiClient,
|
||||
ApiCredential,
|
||||
CallbackCredential,
|
||||
CallbackSubscription,
|
||||
FulfillmentOrder,
|
||||
LoginResult,
|
||||
Merchant,
|
||||
MerchantMember,
|
||||
MerchantProduct,
|
||||
Order,
|
||||
PageResult,
|
||||
ShipLog,
|
||||
Skin,
|
||||
User,
|
||||
WalletAccount,
|
||||
WalletLedgerEntry,
|
||||
} from '../types'
|
||||
|
||||
export const authApi = {
|
||||
@@ -69,3 +79,63 @@ export const shipLogApi = {
|
||||
list: (params?: Record<string, unknown>) =>
|
||||
request.get('/ship-logs', { params }).then((r) => r.data.data as PageResult<ShipLog>),
|
||||
}
|
||||
|
||||
export const merchantApi = {
|
||||
current: () =>
|
||||
request.get('/merchant').then((r) => r.data.data as { merchant: Merchant; role: MerchantMember['role'] }),
|
||||
products: (params?: Record<string, unknown>) =>
|
||||
request.get('/merchant/products', { params }).then((r) => r.data.data as PageResult<MerchantProduct>),
|
||||
createProduct: (data: Partial<MerchantProduct> & {
|
||||
product_code?: string
|
||||
product_name?: string
|
||||
category?: string
|
||||
description?: string
|
||||
attributes?: string
|
||||
}) => request.post('/merchant/products', data).then((r) => r.data.data as MerchantProduct),
|
||||
updateProduct: (id: number, data: Partial<MerchantProduct>) =>
|
||||
request.patch(`/merchant/products/${id}`, data).then((r) => r.data.data),
|
||||
orders: (params?: Record<string, unknown>) =>
|
||||
request.get('/merchant/orders', { params }).then((r) => r.data.data as PageResult<FulfillmentOrder>),
|
||||
wallet: () =>
|
||||
request.get('/merchant/wallet').then((r) => r.data.data as WalletAccount),
|
||||
ledger: (params?: Record<string, unknown>) =>
|
||||
request.get('/merchant/wallet/ledger', { params }).then((r) => r.data.data as PageResult<WalletLedgerEntry>),
|
||||
adjustWallet: (data: { amount: number; idempotency_key: string; note?: string }) =>
|
||||
request.post('/merchant/wallet/adjust', data).then((r) => r.data.data as WalletAccount),
|
||||
apiClients: () =>
|
||||
request.get('/merchant/api-clients').then((r) => r.data.data as ApiClient[]),
|
||||
createApiClient: (data: {
|
||||
name: string
|
||||
scopes: string
|
||||
signature_version?: string
|
||||
expires_at?: string
|
||||
}) => request.post('/merchant/api-clients', data).then((r) => r.data.data as ApiCredential),
|
||||
updateApiClientStatus: (id: number, status: ApiClient['status']) =>
|
||||
request.patch(`/merchant/api-clients/${id}/status`, { status }).then((r) => r.data.data),
|
||||
callbacks: () =>
|
||||
request.get('/merchant/callbacks').then((r) => r.data.data as CallbackSubscription[]),
|
||||
createCallback: (data: { name: string; url: string; events: string }) =>
|
||||
request.post('/merchant/callbacks', data).then((r) => r.data.data as CallbackCredential),
|
||||
updateCallbackStatus: (id: number, status: CallbackSubscription['status']) =>
|
||||
request.patch(`/merchant/callbacks/${id}/status`, { status }).then((r) => r.data.data),
|
||||
members: () =>
|
||||
request.get('/merchant/members').then((r) => r.data.data as MerchantMember[]),
|
||||
addMember: (data: { user_id: number; role: MerchantMember['role']; is_default?: boolean }) =>
|
||||
request.post('/merchant/members', data).then((r) => r.data.data as MerchantMember),
|
||||
}
|
||||
|
||||
export const platformApi = {
|
||||
merchants: (params?: Record<string, unknown>) =>
|
||||
request.get('/platform/merchants', { params }).then((r) => r.data.data as PageResult<Merchant>),
|
||||
createMerchant: (data: {
|
||||
code: string
|
||||
name: string
|
||||
contact_name?: string
|
||||
contact_info?: string
|
||||
owner_user_id: number
|
||||
}) => request.post('/platform/merchants', data).then((r) => r.data.data as Merchant),
|
||||
addMember: (
|
||||
merchantId: number,
|
||||
data: { user_id: number; role: MerchantMember['role']; is_default?: boolean },
|
||||
) => request.post(`/platform/merchants/${merchantId}/members`, data).then((r) => r.data.data as MerchantMember),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user