import { api } from "@/lib/api-client"; import type { MediaItem, MediaMovement, LibraryCard, MediaCreateRequest } from "@/types/library"; import type { PaginatedResponse, PaginationParams, ApiSuccessResponse } from "@/types"; export const libraryService = { async listMedia(params?: PaginationParams): Promise> { return api.get>("/library/media", params as Record); }, async createMedia(data: MediaCreateRequest): Promise { return api.post("/library/media", data); }, async listMovements(params?: PaginationParams): Promise> { return api.get>("/library/movements", params as Record); }, async createMovement(data: Partial>): Promise { return api.post("/library/movements", data); }, async updateMovement(id: number, data: Partial>): Promise { return api.patch(`/library/movements/${id}`, data); }, async deleteMedia(id: number): Promise { return api.delete(`/library/media/${id}`); }, async returnMovement(id: number): Promise { return api.post(`/library/movements/${id}/return`); }, async listCards(params?: PaginationParams): Promise> { return api.get>("/library/cards", params as Record); }, async createCard(data: { student_id: number }): Promise { return api.post("/library/cards", data); }, };