import axios from '@/network/axios';
import { apis } from '@/utils/apis/apis';
import { SuccessResponse } from '@/utils/types/Responses';
import { Package, PackageList, PackagePayload } from './type';

export const fetchPackages = async (page = 1): Promise<PackageList> => {
  const response = await axios.get<SuccessResponse<PackageList>>(
    apis.DASHBOARD.PACKAGES.LIST,
    {
      params: { page },
    },
  );
  return response.data.data;
};

export const fetchPackage = async ({ id }: { id: number }) => {
  const response = await axios.get<SuccessResponse<Package>>(
    apis.DASHBOARD.PACKAGES.PACKAGE(id),
  );
  return response.data.data;
};

export const createPackage = async (payload: PackagePayload) => {
  const response = await axios.post<SuccessResponse<Package>>(
    apis.DASHBOARD.PACKAGES.CREATE,
    payload,
  );
  return response.data.data;
};

export const updatePackage = async (
  payload: PackagePayload & { id: number },
) => {
  const response = await axios.post<SuccessResponse<Package>>(
    apis.DASHBOARD.PACKAGES.UPDATE,
    payload,
  );
  return response.data.data;
};

export const deletePackage = async (payload: { id: number }) => {
  const response = await axios.post<SuccessResponse<null>>(
    apis.DASHBOARD.PACKAGES.DELETE,
    payload,
  );
  return response.data;
};
