import { apiClient } from "./client"; export interface MoldInfo { id: string; company_code: string; mold_code: string; mold_name: string; mold_type: string | null; category: string | null; manufacturer: string | null; manufacturing_number: string | null; manufacturing_date: string | null; cavity_count: number; shot_count: number; mold_quantity: number; base_input_qty: number; operation_status: string; remarks: string | null; image_path: string | null; memo: string | null; created_date: string; updated_date: string; writer: string | null; } export interface MoldSerial { id: string; company_code: string; mold_code: string; serial_number: string; status: string; progress: number; work_description: string | null; manager: string | null; completion_date: string | null; remarks: string | null; created_date: string; } export interface MoldInspectionItem { id: string; company_code: string; mold_code: string; inspection_item: string; inspection_cycle: string | null; inspection_method: string | null; inspection_content: string | null; lower_limit: string | null; upper_limit: string | null; unit: string | null; is_active: string; checklist: string | null; remarks: string | null; created_date: string; } export interface MoldPart { id: string; company_code: string; mold_code: string; part_name: string; replacement_cycle: string | null; unit: string | null; specification: string | null; manufacturer: string | null; manufacturer_code: string | null; image_path: string | null; remarks: string | null; created_date: string; } export interface MoldSerialSummary { total: number; in_use: number; repair: number; stored: number; disposed: number; } interface ApiResponse { success: boolean; data?: T; message?: string; } const handleResponse = async (promise: Promise): Promise> => { try { const response = await promise; return response.data; } catch (error: any) { return { success: false, message: error.response?.data?.message || error.message || "오류가 발생했습니다.", }; } }; // 금형 마스터 export const getMoldList = (params?: Record) => handleResponse(apiClient.get("/mold", { params })); export const getMoldDetail = (moldCode: string) => handleResponse(apiClient.get(`/mold/${moldCode}`)); export const createMold = (data: Partial) => handleResponse(apiClient.post("/mold", data)); export const updateMold = (moldCode: string, data: Partial) => handleResponse(apiClient.put(`/mold/${moldCode}`, data)); export const deleteMold = (moldCode: string) => handleResponse(apiClient.delete(`/mold/${moldCode}`)); // 일련번호 export const getMoldSerials = (moldCode: string) => handleResponse(apiClient.get(`/mold/${moldCode}/serials`)); export const createMoldSerial = (moldCode: string, data: Partial) => handleResponse(apiClient.post(`/mold/${moldCode}/serials`, data)); export const deleteMoldSerial = (id: string) => handleResponse(apiClient.delete(`/mold/serials/${id}`)); export const getMoldSerialSummary = (moldCode: string) => handleResponse(apiClient.get(`/mold/${moldCode}/serial-summary`)); // 점검항목 export const getMoldInspections = (moldCode: string) => handleResponse(apiClient.get(`/mold/${moldCode}/inspections`)); export const createMoldInspection = (moldCode: string, data: Partial) => handleResponse(apiClient.post(`/mold/${moldCode}/inspections`, data)); export const deleteMoldInspection = (id: string) => handleResponse(apiClient.delete(`/mold/inspections/${id}`)); // 부품 export const getMoldParts = (moldCode: string) => handleResponse(apiClient.get(`/mold/${moldCode}/parts`)); export const createMoldPart = (moldCode: string, data: Partial) => handleResponse(apiClient.post(`/mold/${moldCode}/parts`, data)); export const deleteMoldPart = (id: string) => handleResponse(apiClient.delete(`/mold/parts/${id}`));