import axiosClient from '../axios/axios'; import { Package, PackageCreate, PackageUpdate, PaginatedResponse, PaginationParams, } from '@/types'; const PACKAGES_ENDPOINT = 'biz/api/v1/packages'; /** * 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_ENDPOINT, { 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_ENDPOINT, { params: { project_id: projectId, skip, limit }, }); return response.data; }, /** * Create a new package */ createPackage: async (data: PackageCreate): Promise => { const response = await axiosClient.post(PACKAGES_ENDPOINT, data); return response.data; }, /** * Update an existing package */ updatePackage: async (packageId: string, data: PackageUpdate): Promise => { const response = await axiosClient.put(`${PACKAGES_ENDPOINT}/${packageId}`, data); return response.data; }, /** * Delete a package */ deletePackage: async (packageId: string): Promise<{ message: string }> => { const response = await axiosClient.delete<{ message: string }>( `${PACKAGES_ENDPOINT}/${packageId}`, ); return response.data; }, };