import client from "@/honoClient"; import fetchRPC from "@/utils/fetchRPC"; import { queryOptions } from "@tanstack/react-query"; import { InferRequestType } from "hono"; export const aspectQueryOptions = (page: number, limit: number, q?: string) => queryOptions({ queryKey: ["management-aspect", { page, limit, q }], queryFn: async () => { const response = await fetchRPC( client["management-aspect"].$get({ query: { limit: String(limit), page: String(page), q, }, }) ); return response; }, }); export const getAspectByIdQueryOptions = (aspectId: string | undefined) => queryOptions({ queryKey: ["management-aspect", aspectId], queryFn: () => fetchRPC( client["management-aspect"][":id"].$get({ param: { id: aspectId!, }, query: {}, }) ), enabled: Boolean(aspectId), }); export const createAspect = async ( json: { name: string; subAspects?: string } ) => { try { return await fetchRPC( client["management-aspect"].$post({ json, }) ); } catch (error) { console.error("Error creating aspect:", error); throw error; } }; export const updateAspect = async ( form: { id: string; name: string; subAspects?: string } ) => { try { const payload = { name: form.name, subAspects: form.subAspects ? JSON.parse(form.subAspects) : [], }; return await fetchRPC( client["management-aspect"][":id"].$patch({ param: { id: form.id, }, json: payload, }) ); } catch (error) { console.error("Error updating aspect:", error); throw error; } }; export const deleteAspect = async (id: string) => { return await fetchRPC( (client["management-aspect"] as { [key: string]: any })[id].$delete() ); };