import { useQuery } from "@tanstack/react-query";
import { adminTransactionService } from "../services/transaction.service";

const TXN_KEY = "admin-transactions";

export const useAdminTransactions = (params: {
  page?: number;
  limit?: number;
  status?: string;
}) =>
  useQuery({
    queryKey: [TXN_KEY, params],
    queryFn: () => adminTransactionService.getTransactions(params),
    placeholderData: (prev) => prev,
  });

export const useAdminTransactionCounts = () => {
  const success = useQuery({
    queryKey: [TXN_KEY, "count", "SUCCESS"],
    queryFn: () => adminTransactionService.getTransactions({ page: 1, limit: 1, status: "SUCCESS" }),
    staleTime: 30_000,
  });
  const failed = useQuery({
    queryKey: [TXN_KEY, "count", "FAILED"],
    queryFn: () => adminTransactionService.getTransactions({ page: 1, limit: 1, status: "FAILED" }),
    staleTime: 30_000,
  });
  return {
    successCount: success.data?.meta.total ?? 0,
    failedCount: failed.data?.meta.total ?? 0,
    isLoading: success.isLoading || failed.isLoading,
  };
};
