import axiosClient from "../axios/axios"; import { Package, PackageCreate, PackageUpdate, PaginatedResponse, PaginationParams } from "@/types"; /** * Package Service */ export const packageService = { /** * Fetch all packages */ getPackages: async (params?: PaginationParams): Promise> => { const skip = params?.skip ?? 0; const limit = params?.limit ?? 100; const response = await axiosClient.get>(`/packages/`, { params: { skip, limit } }); return response.data; }, /** * Fetch packages filtered by project ID */ getPackagesByProject: async (projectId: string, params?: PaginationParams): Promise> => { const skip = params?.skip ?? 0; const limit = params?.limit ?? 100; const response = await axiosClient.get>(`/packages/`, { params: { project_id: projectId, skip, limit } }); return response.data; }, /** * Create a new package */ createPackage: async (data: PackageCreate): Promise => { const response = await axiosClient.post("/packages/", data); return response.data; }, /** * Update an existing package */ updatePackage: async (packageId: string, data: PackageUpdate): Promise => { const response = await axiosClient.put(`/packages/${packageId}`, data); return response.data; }, /** * Delete a package */ deletePackage: async (packageId: string): Promise<{ message: string }> => { const response = await axiosClient.delete<{ message: string }>(`/packages/${packageId}`); return response.data; } };