import { AdminCampaignListResponse, AdminCampaignResponse, AdminCreateCampaign, AdminUpdateCampaign, LinkMethodRequest, } from "@medusajs/types" import { CampaignDeleteRes } from "../../types/api-responses" import { deleteRequest, getRequest, postRequest } from "./common" async function retrieveCampaign(id: string, query?: Record) { return getRequest(`/admin/campaigns/${id}`, query) } async function listCampaigns(query?: Record) { return getRequest(`/admin/campaigns`, query) } async function createCampaign(payload: AdminCreateCampaign) { return postRequest(`/admin/campaigns`, payload) } async function updateCampaign(id: string, payload: AdminUpdateCampaign) { return postRequest(`/admin/campaigns/${id}`, payload) } async function deleteCampaign(id: string) { return deleteRequest(`/admin/campaigns/${id}`) } async function addOrRemoveCampaignPromotions( id: string, payload: LinkMethodRequest ) { return postRequest( `/admin/campaigns/${id}/promotions`, payload ) } export const campaigns = { retrieve: retrieveCampaign, list: listCampaigns, create: createCampaign, update: updateCampaign, delete: deleteCampaign, addOrRemovePromotions: addOrRemoveCampaignPromotions, }