/** * 채번 규칙 관리 API 클라이언트 */ import { apiClient } from "./client"; import { NumberingRuleConfig } from "@/types/numbering-rule"; export interface ApiResponse { success: boolean; data?: T; error?: string; message?: string; } export async function getNumberingRules(): Promise> { try { const response = await apiClient.get("/numbering-rules"); return response.data; } catch (error: any) { return { success: false, error: error.message || "규칙 목록 조회 실패" }; } } export async function getNumberingRuleById(ruleId: string): Promise> { try { const response = await apiClient.get(`/numbering-rules/${ruleId}`); return response.data; } catch (error: any) { return { success: false, error: error.message || "규칙 조회 실패" }; } } export async function createNumberingRule( config: NumberingRuleConfig ): Promise> { try { const response = await apiClient.post("/numbering-rules", config); return response.data; } catch (error: any) { return { success: false, error: error.message || "규칙 생성 실패" }; } } export async function updateNumberingRule( ruleId: string, config: Partial ): Promise> { try { const response = await apiClient.put(`/numbering-rules/${ruleId}`, config); return response.data; } catch (error: any) { return { success: false, error: error.message || "규칙 수정 실패" }; } } export async function deleteNumberingRule(ruleId: string): Promise> { try { const response = await apiClient.delete(`/numbering-rules/${ruleId}`); return response.data; } catch (error: any) { return { success: false, error: error.message || "규칙 삭제 실패" }; } } export async function generateCode(ruleId: string): Promise> { try { const response = await apiClient.post(`/numbering-rules/${ruleId}/generate`); return response.data; } catch (error: any) { return { success: false, error: error.message || "코드 생성 실패" }; } } export async function resetSequence(ruleId: string): Promise> { try { const response = await apiClient.post(`/numbering-rules/${ruleId}/reset`); return response.data; } catch (error: any) { return { success: false, error: error.message || "시퀀스 초기화 실패" }; } }