支持提号完成后财务调整
This commit is contained in:
@@ -4,6 +4,7 @@ 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 PickupFinancialAdjustmentStatus = 'settled' | 'pending' | 'recovery_pending'
|
||||
export type AvailableListingSourceType = '' | 'external' | 'internal'
|
||||
|
||||
export interface AdminPickup {
|
||||
@@ -27,10 +28,14 @@ export interface AdminPickup {
|
||||
owner_price_cent: number
|
||||
website_profit_cent: number
|
||||
profit_amount_cent: number
|
||||
profit_adjustment_cent: number
|
||||
effective_profit_amount_cent: number
|
||||
seller_ratio: number
|
||||
buyer_ratio: number
|
||||
account_snapshot?: Record<string, unknown>
|
||||
settle_amount_cent: number
|
||||
settle_adjustment_cent: number
|
||||
effective_settle_amount_cent: number
|
||||
status: string
|
||||
offline_settlement_status: PickupOfflineSettlementStatus
|
||||
offline_settlement_remark: string
|
||||
@@ -43,6 +48,21 @@ export interface AdminPickup {
|
||||
cancelled_at?: string
|
||||
}
|
||||
|
||||
export interface AdminPickupFinancialAdjustment {
|
||||
id: number
|
||||
pickup_id: number
|
||||
profit_delta_cent: number
|
||||
settle_delta_cent: number
|
||||
settlement_mode: PickupSettlementMode
|
||||
status: PickupFinancialAdjustmentStatus
|
||||
reason: string
|
||||
created_by: number
|
||||
settled_by?: number
|
||||
settled_at?: string
|
||||
settlement_remark: string
|
||||
created_at: string
|
||||
}
|
||||
|
||||
export interface AvailableListing {
|
||||
id: number
|
||||
listing_no: string
|
||||
@@ -90,6 +110,16 @@ export interface AdminPickupOfflineSettlementRequest {
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface AdminPickupFinancialAdjustmentRequest {
|
||||
profit_amount_cent?: number
|
||||
settle_amount_cent?: number
|
||||
reason: string
|
||||
}
|
||||
|
||||
export interface AdminPickupFinancialAdjustmentSettlementRequest {
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface AdminPickupListQuery {
|
||||
page?: number
|
||||
page_size?: number
|
||||
@@ -177,6 +207,35 @@ export async function updateAdminPickupProfit(id: number, req: AdminPickupProfit
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function createAdminPickupFinancialAdjustment(
|
||||
id: number,
|
||||
req: AdminPickupFinancialAdjustmentRequest
|
||||
) {
|
||||
const { data } = await apiClient.post<ApiResponse<AdminPickup>>(
|
||||
`/admin/pickups/${id}/financial-adjustments`,
|
||||
req
|
||||
)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function fetchAdminPickupFinancialAdjustments(id: string | number) {
|
||||
const { data } = await apiClient.get<ApiResponse<AdminPickupFinancialAdjustment[]>>(
|
||||
`/admin/pickups/${id}/financial-adjustments`
|
||||
)
|
||||
return Array.isArray(data.data) ? data.data : []
|
||||
}
|
||||
|
||||
export async function settleAdminPickupFinancialAdjustment(
|
||||
id: number,
|
||||
req: AdminPickupFinancialAdjustmentSettlementRequest = {}
|
||||
) {
|
||||
const { data } = await apiClient.post<ApiResponse<{ settled: boolean }>>(
|
||||
`/admin/pickup-financial-adjustments/${id}/settle`,
|
||||
req
|
||||
)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function cancelAdminPickup(id: number, reason: string) {
|
||||
const { data } = await apiClient.post<ApiResponse<{ cancelled: boolean }>>(
|
||||
`/admin/pickups/${id}/cancel`,
|
||||
|
||||
Reference in New Issue
Block a user