优化客服会话筛选
This commit is contained in:
@@ -18,6 +18,11 @@ export interface ChatConversation {
|
||||
id: number
|
||||
order_id: number | null
|
||||
listing_id?: number | null
|
||||
latest_order_id?: number | null
|
||||
latest_order_no?: string
|
||||
latest_order_status?: string
|
||||
latest_handoff_status?: string
|
||||
latest_refund_status?: string
|
||||
type: string
|
||||
title: string
|
||||
status: string
|
||||
@@ -26,11 +31,29 @@ export interface ChatConversation {
|
||||
last_message_id?: number
|
||||
last_message_preview: string
|
||||
last_message_at?: string
|
||||
last_sender_type?: 'user' | 'admin' | 'system'
|
||||
last_sender_id?: number
|
||||
last_sender_role?: string
|
||||
unread_count: number
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
export interface AdminChatCounts {
|
||||
ownership?: Record<string, number>
|
||||
stages?: Record<string, number>
|
||||
}
|
||||
|
||||
export interface AdminChatQuery {
|
||||
filter?: string
|
||||
stage?: string
|
||||
keyword?: string
|
||||
}
|
||||
|
||||
export type AdminChatResult = PaginatedResult<ChatConversation> & {
|
||||
counts?: AdminChatCounts
|
||||
}
|
||||
|
||||
export interface ChatMessage {
|
||||
id: number
|
||||
conversation_id: number
|
||||
@@ -102,13 +125,15 @@ export async function markChatRead(id: number) {
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function fetchAdminChats(page = 1, pageSize = 50, filter = 'all') {
|
||||
const { data } = await apiClient.get<ApiResponse<PaginatedResult<ChatConversation>>>(
|
||||
'/admin/chats',
|
||||
{
|
||||
params: { page, page_size: pageSize, filter },
|
||||
}
|
||||
export async function fetchAdminChats(page = 1, pageSize = 50, query: AdminChatQuery = {}) {
|
||||
const params = Object.fromEntries(
|
||||
Object.entries({ page, page_size: pageSize, ...query }).filter(
|
||||
([, value]) => value !== '' && value !== undefined
|
||||
)
|
||||
)
|
||||
const { data } = await apiClient.get<ApiResponse<AdminChatResult>>('/admin/chats', {
|
||||
params,
|
||||
})
|
||||
return data.data
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user