import { httpDeleteInterceptor, httpGetInterceptor, httpPostInterceptor } from "../http-config/http-interceptor-service";

export async function getHeroData() {
  return await httpGetInterceptor(`media/public/list?enablePage=1&sort=desc&sortBy=createdAt&size=5&page=0&typeId=1&title=&categoryId=&fileFormats=&tags=&group=&startDate=&endDate=&month=&year=`);
}

export async function getCategoryData() {
  return await httpGetInterceptor(`media/categories/list/publish?enablePage=1&sort=desc&sortBy=updatedAt&size=12&type=`);
}

export async function getListContent(props: any) {
  return await httpGetInterceptor(
    `media/public/list?enablePage=1&sort=desc&sortBy=${props.sortBy}&size=${props.size}&page=${props.page}&typeId=${props.contentTypeId}&title=${props.title}&group=${props.group}&categoryId=&fileFormats=&tags=&startDate=&endDate=&month=&year=`
  );
}

export async function getPrivacy() {
  return await httpGetInterceptor(`general/privacy-policy/1`);
}

export async function getIndeksData() {
  return await httpGetInterceptor(`blog/public/pagination?enablePage=1&page=0&size=20`);
}

export async function getDetail(slug: string) {
  return await httpGetInterceptor(`media/public?slug=${slug}&state=mabes`);
}

export async function getDetailIndeks() {
  return await httpGetInterceptor(`blog/public/pagination?enablePage=1&page=0&size=6`);
}

export async function getFeedback() {
  return await httpGetInterceptor(`master/feedback/list`);
}

export async function postUserFeedback() {
  return await httpGetInterceptor(`feedback/user`);
}

export async function listCategory(type = "") {
  return await httpGetInterceptor(`media/categories/list/enable?enablePage=1&sort=desc&sortBy=updatedAt&size=12&type=${type}`);
}

export async function publicDetailBlog(slug: any) {
  return await httpGetInterceptor(`blog/public/read/${slug}`);
}

export async function listData(type: string, search: string, category: string, size = 10, page = 0, sortBy = "createdAt", format = "", tag = "", group = "", startDate = "", endDate = "", month = "", year = "") {
  return await httpGetInterceptor(
    `media/public/list?enablePage=1&sort=desc&sortBy=${sortBy}&size=${size}&page=${page}&typeId=${type}&title=${search}&categoryId=${category}&fileFormats=${format}&tags=${tag}&group=${group}&startDate=${startDate}&endDate=${endDate}&month=${month}&year=${year}`
  );
}

export async function listDataRegional(type: string, search: string, category: string, format = "", tag = "", startDate = "", endDate = "", month = "", year = "", size = 10, page = 0, sortBy = "createdAt") {
  return await httpGetInterceptor(
    `media/public/regional-list?enablePage=1&size=${size}&page=${page}&sort=desc&sortBy=${sortBy}&typeId=${type}&title=${search}&categoryId=${category}&fileFormats=${format}&tags=${tag}&startDate=${startDate}&endDate=${endDate}&month=${month}&year=${year}`
  );
}

export async function getUserLevelListByParent(id: any) {
  return await httpGetInterceptor(`users/user-levels/list?userLevelId=${id}`);
}

export async function getInfoProfile() {
  return await httpGetInterceptor(`users/info`);
}

export async function getListPorvinces() {
  return await httpGetInterceptor(`public/users/provinces`);
}

export async function getUsersTeams(id: any) {
  return await httpGetInterceptor(`users?instituteId=${id}`);
}
export async function mediaWishlist(type: any, instituteId: any, search: any, category: any, size: string, page: number, sortBy: undefined, format: string) {
  return await httpGetInterceptor(`/media/wishlist/list?enablePage=1&size=${size}&page=${page}&typeId=${type}&instituteId=${instituteId}`);
}

export async function checkWishlistStatus(mediaId: any) {
  return await httpGetInterceptor(`/media/wishlist/status?mediaId=${mediaId}`);
}

export async function listRole() {
  const url = "public/users/roles";
  return httpGetInterceptor(url);
}

export async function deleteWishlist(id: any) {
  return await httpDeleteInterceptor(`media/wishlist?id=${id}`);
}

export async function getContentRewritePagination(page = 0, size = 10) {
  return await httpGetInterceptor(`media/rewrite/pagination?size=${size}&page=${page}`);
}

export async function getContentRewrite(id: any) {
  return await httpGetInterceptor(`media/rewrite?id=${id}`);
}

export async function listDataAll(type: any, search: any, category: any, format = "", tag = "", group = "", startDate = "", endDate = "", month = "", year = "") {
  return await httpGetInterceptor(
    `media/public/list?enablePage=1&size=20&sort=desc&typeId=${type}&title=${search}&categoryId=${category}&fileFormats=${format}&tags=${tag}&group=${group}&startDate=${startDate}&endDate=${endDate}&month=${month}&year=${year}`
  );
}

export async function saveWishlist(data: { mediaUploadId: string }) {
  const url = "/media/wishlist";
  return httpPostInterceptor(url, data);
}

export async function getPublicSuggestionList(id: any) {
  const url = `media/public/suggestion?mediaId=${id}`;
  return httpGetInterceptor(url);
}
