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 }; } } /** * 카테고리 값 목록 조회 (테이블 스코프) */ export async function getCategoryValues( tableName: string, columnName: string, includeInactive: boolean = false ) { try { const response = await apiClient.get<{ success: boolean; data: TableCategoryValue[]; }>(`/table-categories/${tableName}/${columnName}/values`, { params: { includeInactive }, }); return response.data; } catch (error: any) { console.error("카테고리 값 조회 실패:", error); return { success: false, error: error.message }; } } /** * 카테고리 값 추가 */ export async function addCategoryValue(value: TableCategoryValue) { try { const response = await apiClient.post<{ success: boolean; data: TableCategoryValue; }>("/table-categories/values", value); return response.data; } catch (error: any) { console.error("카테고리 값 추가 실패:", error); return { success: false, error: error.message }; } } /** * 카테고리 값 수정 */ export async function updateCategoryValue( valueId: number, updates: Partial ) { 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 }; } }