export function createPopulateParams(fields: { name: string; fields: string[] }[]) {
  return fields.map((field) => `populate[${field.name}][fields]=${field.fields.join(",")}`).join("&");
}

export function createSortingParams(sortings: { field: string; order: "asc" | "desc" }[]) {
  return sortings.map(({ field, order }) => `sort=${order === "desc" ? "-" : ""}${field}`).join("&");
}

export function createFilterParams(filters: { [key: string]: string }) {
  return Object.entries(filters)
    .map(([key, value]) => `filter[${key}][_eq]=${encodeURIComponent(value)}`)
    .join("&");
}

export function createComplexFilterParams(filters: { [key: string]: any }[]) {
  return filters
    .map((filter, index) => {
      return Object.entries(filter)
        .map(([key, value]) => {
          const filterPath = key
            .split(".")
            .map((part) => `[${part}]`)
            .join("");
          return `filter[_or][${index}]${filterPath}[_eq]=${value}`;
        })
        .join("&");
    })
    .join("&");
}
