/** * Admin Announcements API endpoints */ import { apiClient } from '../client' import type { Announcement, AnnouncementUserReadStatus, BasePaginationResponse, CreateAnnouncementRequest, UpdateAnnouncementRequest } from '@/types' export async function list( page: number = 1, pageSize: number = 20, filters?: { status?: string search?: string } ): Promise> { const { data } = await apiClient.get>('/admin/announcements', { params: { page, page_size: pageSize, ...filters } }) return data } export async function getById(id: number): Promise { const { data } = await apiClient.get(`/admin/announcements/${id}`) return data } export async function create(request: CreateAnnouncementRequest): Promise { const { data } = await apiClient.post('/admin/announcements', request) return data } export async function update(id: number, request: UpdateAnnouncementRequest): Promise { const { data } = await apiClient.put(`/admin/announcements/${id}`, request) return data } export async function deleteAnnouncement(id: number): Promise<{ message: string }> { const { data } = await apiClient.delete<{ message: string }>(`/admin/announcements/${id}`) return data } export async function getReadStatus( id: number, page: number = 1, pageSize: number = 20, search: string = '' ): Promise> { const { data } = await apiClient.get>( `/admin/announcements/${id}/read-status`, { params: { page, page_size: pageSize, search } } ) return data } const announcementsAPI = { list, getById, create, update, delete: deleteAnnouncement, getReadStatus } export default announcementsAPI