import { useState, useEffect } from "react";
import {
  getProjectAnalytics,
  ProjectAnalyticsData,
} from "@/lib/services/dashboardService";

interface UseProjectAnalyticsProps {
  fromMonth?: number;
  fromYear?: number;
  toMonth?: number;
  toYear?: number;
}

export default function useProjectAnalytics(filters?: UseProjectAnalyticsProps) {
  const [data, setData] = useState<ProjectAnalyticsData | null>(null);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState<string | null>(null);

  useEffect(() => {
    const fetchProjectAnalytics = async () => {
      try {
        setLoading(true);
        setError(null);
        const response = await getProjectAnalytics(filters);

        if (response.data) {
          setData(response.data.data);
        } else {
          setError("Failed to fetch project analytics");
        }
      } catch (err: any) {
        setError(err?.message || "An error occurred while fetching data");
      } finally {
        setLoading(false);
      }
    };

    fetchProjectAnalytics();
  }, [filters?.fromMonth, filters?.fromYear, filters?.toMonth, filters?.toYear]);

  return { data, loading, error };
}
