feat(pickup): support platform managed offline settlement
This commit is contained in:
@@ -2,6 +2,8 @@ import { apiClient } from '@/shared/api/client'
|
||||
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
|
||||
|
||||
export type PickupAccountSource = 'internal' | 'external_platform_managed'
|
||||
export type PickupSettlementMode = 'owner_wallet' | 'platform_managed'
|
||||
export type PickupOfflineSettlementStatus = 'none' | 'pending' | 'settled'
|
||||
export type AvailableListingSourceType = '' | 'external' | 'internal'
|
||||
|
||||
export interface AdminPickup {
|
||||
@@ -20,6 +22,7 @@ export interface AdminPickup {
|
||||
shop_name: string
|
||||
account_source: PickupAccountSource
|
||||
source_channel: string
|
||||
settlement_mode: PickupSettlementMode
|
||||
listing_price_cent: number
|
||||
owner_price_cent: number
|
||||
website_profit_cent: number
|
||||
@@ -29,6 +32,10 @@ export interface AdminPickup {
|
||||
account_snapshot?: Record<string, unknown>
|
||||
settle_amount_cent: number
|
||||
status: string
|
||||
offline_settlement_status: PickupOfflineSettlementStatus
|
||||
offline_settlement_remark: string
|
||||
offline_settled_by?: number
|
||||
offline_settled_at?: string
|
||||
remark: string
|
||||
complete_remark: string
|
||||
created_at: string
|
||||
@@ -79,6 +86,10 @@ export interface AdminPickupProfitUpdateRequest {
|
||||
reason?: string
|
||||
}
|
||||
|
||||
export interface AdminPickupOfflineSettlementRequest {
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface AdminPickupListQuery {
|
||||
page?: number
|
||||
page_size?: number
|
||||
@@ -150,6 +161,17 @@ export async function completeAdminPickup(id: number, req: AdminPickupCompleteRe
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function confirmAdminPickupOfflineSettlement(
|
||||
id: number,
|
||||
req: AdminPickupOfflineSettlementRequest = {}
|
||||
) {
|
||||
const { data } = await apiClient.post<ApiResponse<AdminPickup>>(
|
||||
`/admin/pickups/${id}/offline-settlement`,
|
||||
req
|
||||
)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function updateAdminPickupProfit(id: number, req: AdminPickupProfitUpdateRequest) {
|
||||
const { data } = await apiClient.put<ApiResponse<AdminPickup>>(`/admin/pickups/${id}/profit`, req)
|
||||
return data.data
|
||||
|
||||
Reference in New Issue
Block a user