import axios from 'axios'; import type { MessageType, MessageStatus, UserMessage } from '../../share/types.ts'; // 消息API响应类型 export interface MessageResponse { message: string; data?: any; } export interface MessagesResponse { data: UserMessage[]; pagination: { total: number; current: number; pageSize: number; totalPages: number; }; } export interface UnreadCountResponse { count: number; } // 消息API export const MessageAPI = { // 获取消息列表 getMessages: async (params?: { page?: number, pageSize?: number, type?: MessageType, status?: MessageStatus }): Promise => { try { const response = await axios.get('/messages', { params }); return response.data; } catch (error) { throw error; } }, // 获取消息详情 getMessage: async (id: number): Promise => { try { const response = await axios.get(`/messages/${id}`); return response.data; } catch (error) { throw error; } }, // 发送消息 sendMessage: async (data: { title: string, content: string, type: MessageType, receiver_ids: number[] }): Promise => { try { const response = await axios.post('/messages', data); return response.data; } catch (error) { throw error; } }, // 删除消息(软删除) deleteMessage: async (id: number): Promise => { try { const response = await axios.delete(`/messages/${id}`); return response.data; } catch (error) { throw error; } }, // 获取未读消息数量 getUnreadCount: async (): Promise => { try { const response = await axios.get('/messages/count/unread'); return response.data; } catch (error) { throw error; } }, // 标记消息为已读 markAsRead: async (id: number): Promise => { try { const response = await axios.post(`/messages/${id}/read`); return response.data; } catch (error) { throw error; } } };