import apiClient from './client'; import type { TicketNotificationList, UnreadCountResponse } from '../types'; export const ticketNotificationsApi = { // User notifications getNotifications: async ( unreadOnly = false, limit = 50, offset = 0, ): Promise => { const response = await apiClient.get('/cabinet/tickets/notifications', { params: { unread_only: unreadOnly, limit, offset }, }); return response.data; }, getUnreadCount: async (): Promise => { const response = await apiClient.get('/cabinet/tickets/notifications/unread-count'); return response.data; }, markAsRead: async (notificationId: number): Promise<{ success: boolean }> => { const response = await apiClient.post(`/cabinet/tickets/notifications/${notificationId}/read`); return response.data; }, markAllAsRead: async (): Promise<{ success: boolean; marked_count: number }> => { const response = await apiClient.post('/cabinet/tickets/notifications/read-all'); return response.data; }, markTicketAsRead: async ( ticketId: number, ): Promise<{ success: boolean; marked_count: number }> => { const response = await apiClient.post(`/cabinet/tickets/notifications/ticket/${ticketId}/read`); return response.data; }, // Admin notifications getAdminNotifications: async ( unreadOnly = false, limit = 50, offset = 0, ): Promise => { const params: Record = { limit, offset }; if (unreadOnly) { params.unread_only = true; } const response = await apiClient.get('/cabinet/admin/tickets/notifications', { params }); return response.data; }, getAdminUnreadCount: async (): Promise => { const response = await apiClient.get('/cabinet/admin/tickets/notifications/unread-count'); return response.data; }, markAdminAsRead: async (notificationId: number): Promise<{ success: boolean }> => { const response = await apiClient.post( `/cabinet/admin/tickets/notifications/${notificationId}/read`, ); return response.data; }, markAllAdminAsRead: async (): Promise<{ success: boolean; marked_count: number }> => { const response = await apiClient.post('/cabinet/admin/tickets/notifications/read-all'); return response.data; }, markAdminTicketAsRead: async ( ticketId: number, ): Promise<{ success: boolean; marked_count: number }> => { const response = await apiClient.post( `/cabinet/admin/tickets/notifications/ticket/${ticketId}/read`, ); return response.data; }, }; export default ticketNotificationsApi;