ERP-node/frontend/lib/api/tableCategoryValue.ts

148 lines
3.8 KiB
TypeScript
Raw Normal View History

2025-11-05 15:23:57 +09:00
import { apiClient } from "./client";
import {
TableCategoryValue,
CategoryColumn,
} from "@/types/tableCategoryValue";
/**
*
*/
export async function getCategoryColumns(tableName: string) {
try {
const response = await apiClient.get<{
success: boolean;
data: CategoryColumn[];
}>(`/table-categories/${tableName}/columns`);
return response.data;
} catch (error: any) {
console.error("카테고리 컬럼 조회 실패:", error);
return { success: false, error: error.message };
}
}
/**
* ( )
*
* @param tableName
* @param columnName
* @param includeInactive
* @param menuObjid OBJID (, )
2025-11-05 15:23:57 +09:00
*/
export async function getCategoryValues(
tableName: string,
columnName: string,
includeInactive: boolean = false,
menuObjid?: number
2025-11-05 15:23:57 +09:00
) {
try {
const params: any = { includeInactive };
if (menuObjid) {
params.menuObjid = menuObjid;
}
2025-11-05 15:23:57 +09:00
const response = await apiClient.get<{
success: boolean;
data: TableCategoryValue[];
}>(`/table-categories/${tableName}/${columnName}/values`, {
params,
2025-11-05 15:23:57 +09:00
});
return response.data;
} catch (error: any) {
console.error("카테고리 값 조회 실패:", error);
return { success: false, error: error.message };
}
}
/**
* ( )
*
* @param value
* @param menuObjid OBJID ()
2025-11-05 15:23:57 +09:00
*/
export async function addCategoryValue(
value: TableCategoryValue,
menuObjid: number
) {
2025-11-05 15:23:57 +09:00
try {
const response = await apiClient.post<{
success: boolean;
data: TableCategoryValue;
}>("/table-categories/values", {
...value,
menuObjid, // ← menuObjid 포함
});
2025-11-05 15:23:57 +09:00
return response.data;
} catch (error: any) {
console.error("카테고리 값 추가 실패:", error);
return { success: false, error: error.message };
}
}
/**
*
*/
export async function updateCategoryValue(
valueId: number,
updates: Partial<TableCategoryValue>
) {
try {
const response = await apiClient.put<{
success: boolean;
data: TableCategoryValue;
}>(`/table-categories/values/${valueId}`, updates);
return response.data;
} catch (error: any) {
console.error("카테고리 값 수정 실패:", error);
return { success: false, error: error.message };
}
}
/**
*
*/
export async function deleteCategoryValue(valueId: number) {
try {
const response = await apiClient.delete<{
success: boolean;
message: string;
}>(`/table-categories/values/${valueId}`);
return response.data;
} catch (error: any) {
console.error("카테고리 값 삭제 실패:", error);
return { success: false, error: error.message };
}
}
/**
*
*/
export async function bulkDeleteCategoryValues(valueIds: number[]) {
try {
const response = await apiClient.post<{
success: boolean;
message: string;
}>("/table-categories/values/bulk-delete", { valueIds });
return response.data;
} catch (error: any) {
console.error("카테고리 값 일괄 삭제 실패:", error);
return { success: false, error: error.message };
}
}
/**
*
*/
export async function reorderCategoryValues(orderedValueIds: number[]) {
try {
const response = await apiClient.post<{
success: boolean;
message: string;
}>("/table-categories/values/reorder", { orderedValueIds });
return response.data;
} catch (error: any) {
console.error("카테고리 값 순서 변경 실패:", error);
return { success: false, error: error.message };
}
}