85 lines
2.7 KiB
TypeScript
85 lines
2.7 KiB
TypeScript
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");
|
|
},
|
|
};
|