import Vue from "vue"; async function getAudioContentSeriesList(page) { return Vue.axios.get("/admin/audio-content/series?page=" + (page - 1) + "&size=10"); } async function getAudioContentSeriesGenreList() { return Vue.axios.get("/admin/audio-content/series/genre"); } async function createAudioContentSeriesGenre(genre, is_adult) { return Vue.axios.post("/admin/audio-content/series/genre", { genre: genre, isAdult: is_adult }); } async function updateAudioContentSeriesGenre(request) { return Vue.axios.put("/admin/audio-content/series/genre", request); } async function updateAudioContentSeriesGenreOrders(ids) { return Vue.axios.put("/admin/audio-content/series/genre/orders", { ids: ids }); } async function searchSeriesList(searchWord) { return Vue.axios.get("/admin/audio-content/series/search?search_word=" + searchWord); } // 시리즈 수정 async function updateAudioContentSeries(request) { return Vue.axios.put("/admin/audio-content/series", request); } // ======================== // 시리즈 배너 API // ======================== // 배너 리스트 조회 async function getSeriesBannerList(page = 1, size = 20) { return Vue.axios.get("/admin/audio-content/series/banner/list", { params: { page: page - 1, size } }); } // 배너 등록 async function createSeriesBanner(bannerData) { const formData = new FormData(); if (bannerData.image) formData.append("image", bannerData.image); const requestData = { seriesId: bannerData.seriesId }; formData.append("request", JSON.stringify(requestData)); return Vue.axios.post("/admin/audio-content/series/banner/register", formData, { headers: { "Content-Type": "multipart/form-data" } }); } // 배너 수정 async function updateSeriesBanner(bannerData) { const formData = new FormData(); if (bannerData.image) formData.append("image", bannerData.image); const requestData = { seriesId: bannerData.seriesId, bannerId: bannerData.bannerId }; formData.append("request", JSON.stringify(requestData)); return Vue.axios.put("/admin/audio-content/series/banner/update", formData, { headers: { "Content-Type": "multipart/form-data" } }); } // 배너 삭제 async function deleteSeriesBanner(bannerId) { // 백엔드 사양이 불명확하여 쿼리 파라미터로 전송 return Vue.axios.delete("/admin/audio-content/series/banner/" + bannerId); } // 배너 순서 변경 async function updateSeriesBannerOrder(ids) { return Vue.axios.put("/admin/audio-content/series/banner/orders", { ids }); } export { getAudioContentSeriesList, getAudioContentSeriesGenreList, createAudioContentSeriesGenre, updateAudioContentSeriesGenre, updateAudioContentSeriesGenreOrders, searchSeriesList, updateAudioContentSeries, // series banner getSeriesBannerList, createSeriesBanner, updateSeriesBanner, deleteSeriesBanner, updateSeriesBannerOrder };