"use client";

import { useRepositories } from "@/di/repository-provider";
import { useApiQuery } from "@/presentation/hooks/use-api-query";
import { useApiMutation } from "@/presentation/hooks/use-api-mutation";
import { useT } from "@/shared/i18n/client";
import type { HealthConfig, UpdateHealthConfigPayload } from "@/domain/entities/health";

export function useHealthConfig() {
  const c = useRepositories();
  const t = useT();

  const query = useApiQuery(() => c.healthRepository.getConfig(), { deps: [] });

  const save = useApiMutation<UpdateHealthConfigPayload, HealthConfig>(
    (payload) => c.healthRepository.updateConfig(payload),
    { successMessage: t.health.config.toasts.saved, onSuccess: () => query.refetch() }
  );

  const reset = useApiMutation<void, HealthConfig>(
    () => c.healthRepository.resetConfig(),
    { successMessage: t.health.config.toasts.reset, onSuccess: () => query.refetch() }
  );

  return { ...query, save, reset };
}
