import { fetchApi } from "@/lib/api/http";  // ✅ ADD
import type {
  Standard,
  CreateStandardDto,
  UpdateStandardDto,
} from "@/lib/api/types/standard.types";

export const STANDARDS_API_BASE_URL =
  process.env.NEXT_PUBLIC_API_BASE_URL ?? "http://localhost:3007/api";

// ✅ DELETE local fetchApi entirely

export async function getStandards(): Promise<Standard[]> {
  return fetchApi<Standard[]>(`${STANDARDS_API_BASE_URL}/standards`);
}

export async function getStandard(id: number): Promise<Standard> {
  return fetchApi<Standard>(`${STANDARDS_API_BASE_URL}/standards/${id}`);
}

export async function createStandard(dto: CreateStandardDto): Promise<Standard> {
  return fetchApi<Standard>(`${STANDARDS_API_BASE_URL}/standards`, {
    method: "POST",
    body: JSON.stringify(dto),
  });
}

export async function updateStandard(id: number, dto: UpdateStandardDto): Promise<Standard> {
  return fetchApi<Standard>(`${STANDARDS_API_BASE_URL}/standards/${id}`, {
    method: "PUT",
    body: JSON.stringify(dto),
  });
}

export async function deleteStandard(id: number): Promise<void> {
  return fetchApi<void>(`${STANDARDS_API_BASE_URL}/standards/${id}`, {
    method: "DELETE",
  });
}