import { apiCall } from "./client"; // 야드 레이아웃 관리 API export const yardLayoutApi = { // 모든 야드 레이아웃 목록 조회 async getAllLayouts() { return apiCall("GET", "/yard-layouts"); }, // 특정 야드 레이아웃 상세 조회 async getLayoutById(id: number) { return apiCall("GET", `/yard-layouts/${id}`); }, // 새 야드 레이아웃 생성 async createLayout(data: { name: string; description?: string }) { return apiCall("POST", "/yard-layouts", data); }, // 야드 레이아웃 수정 async updateLayout(id: number, data: { name?: string; description?: string }) { return apiCall("PUT", `/yard-layouts/${id}`, data); }, // 야드 레이아웃 삭제 async deleteLayout(id: number) { return apiCall("DELETE", `/yard-layouts/${id}`); }, // 야드 레이아웃 복제 async duplicateLayout(id: number, name: string) { return apiCall("POST", `/yard-layouts/${id}/duplicate`, { name }); }, // 특정 야드의 배치 자재 목록 조회 async getPlacementsByLayoutId(layoutId: number) { return apiCall("GET", `/yard-layouts/${layoutId}/placements`); }, // 야드에 자재 배치 추가 async addMaterialPlacement(layoutId: number, data: any) { return apiCall("POST", `/yard-layouts/${layoutId}/placements`, data); }, // 배치 정보 수정 async updatePlacement(placementId: number, data: any) { return apiCall("PUT", `/yard-layouts/placements/${placementId}`, data); }, // 배치 해제 async removePlacement(placementId: number) { return apiCall("DELETE", `/yard-layouts/placements/${placementId}`); }, // 여러 배치 일괄 업데이트 async batchUpdatePlacements(layoutId: number, placements: any[]) { return apiCall("PUT", `/yard-layouts/${layoutId}/placements/batch`, { placements }); }, }; // 자재 관리 API export const materialApi = { // 임시 자재 마스터 목록 조회 async getTempMaterials(params?: { search?: string; category?: string; page?: number; limit?: number }) { const queryParams = new URLSearchParams(); if (params?.search) queryParams.append("search", params.search); if (params?.category) queryParams.append("category", params.category); if (params?.page) queryParams.append("page", params.page.toString()); if (params?.limit) queryParams.append("limit", params.limit.toString()); const queryString = queryParams.toString(); return apiCall("GET", `/materials/temp${queryString ? `?${queryString}` : ""}`); }, // 특정 자재 상세 조회 async getTempMaterialByCode(code: string) { return apiCall("GET", `/materials/temp/${code}`); }, // 카테고리 목록 조회 async getCategories() { return apiCall("GET", "/materials/temp/categories"); }, };