import { useQuery } from "@tanstack/react-query";
import { BlogPost as Post } from "../types";
import { apiFetch } from "@/lib/api-client";

export type PostsMeta = {
  current_page: number;
  per_page: number;
  total: number;
  last_page: number;
};

export type PostsResponse = {
  data: Post[];
  meta: PostsMeta;
};

type UsePostsOptions = {
  page?: number;
  category?: string | null;
  enabled?: boolean;
};

// function normalizeBaseUrl() {
//   const base = process.env.NEXT_PUBLIC_API_BASE_URL ?? "";
//   return base;
// }

// function buildPostsUrl({
//   page,
//   category,
// }: {
//   page: number;

//   category: string | null;
// }) {
//   const url = new URL(`${normalizeBaseUrl()}posts`);
//   url.searchParams.set("page", String(page));
//   if (category) url.searchParams.set("category", category);
//   return url.toString();
// }

export function usePosts({ page = 1, enabled = true }: UsePostsOptions) {
  const { data, isLoading, error } = useQuery<PostsResponse, Error>({
    queryKey: ["posts", { page }],

    queryFn: () => apiFetch<PostsResponse>("posts"),
    enabled,
  });

  return { data, isLoading, error };
}
