바코드 기능 커밋밋
This commit is contained in:
115
frontend/lib/api/barcodeApi.ts
Normal file
115
frontend/lib/api/barcodeApi.ts
Normal file
@@ -0,0 +1,115 @@
|
||||
import { apiClient } from "./client";
|
||||
import {
|
||||
BarcodeLabelMaster,
|
||||
BarcodeLabelLayout,
|
||||
GetBarcodeLabelsParams,
|
||||
GetBarcodeLabelsResponse,
|
||||
CreateBarcodeLabelRequest,
|
||||
UpdateBarcodeLabelRequest,
|
||||
} from "@/types/barcode";
|
||||
|
||||
const BASE_URL = "/admin/barcode-labels";
|
||||
|
||||
export interface BarcodeLabelTemplate {
|
||||
template_id: string;
|
||||
template_name_kor: string;
|
||||
template_name_eng: string | null;
|
||||
width_mm: number;
|
||||
height_mm: number;
|
||||
layout_json: string;
|
||||
sort_order: number;
|
||||
}
|
||||
|
||||
export const barcodeApi = {
|
||||
/** 바코드 라벨 목록 조회 */
|
||||
getLabels: async (params: GetBarcodeLabelsParams) => {
|
||||
const response = await apiClient.get<{
|
||||
success: boolean;
|
||||
data: GetBarcodeLabelsResponse;
|
||||
}>(BASE_URL, { params });
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 바코드 라벨 상세 조회 */
|
||||
getLabelById: async (labelId: string) => {
|
||||
const response = await apiClient.get<{
|
||||
success: boolean;
|
||||
data: BarcodeLabelMaster;
|
||||
}>(`${BASE_URL}/${labelId}`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 라벨 레이아웃 조회 */
|
||||
getLayout: async (labelId: string) => {
|
||||
const response = await apiClient.get<{
|
||||
success: boolean;
|
||||
data: BarcodeLabelLayout;
|
||||
}>(`${BASE_URL}/${labelId}/layout`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 라벨 레이아웃 저장 */
|
||||
saveLayout: async (labelId: string, layout: BarcodeLabelLayout) => {
|
||||
const response = await apiClient.put<{
|
||||
success: boolean;
|
||||
message: string;
|
||||
}>(`${BASE_URL}/${labelId}/layout`, layout);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 기본 템플릿 목록 */
|
||||
getTemplates: async () => {
|
||||
const response = await apiClient.get<{
|
||||
success: boolean;
|
||||
data: BarcodeLabelTemplate[];
|
||||
}>(`${BASE_URL}/templates`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 템플릿 상세 (레이아웃 적용용) */
|
||||
getTemplateById: async (templateId: string) => {
|
||||
const response = await apiClient.get<{
|
||||
success: boolean;
|
||||
data: BarcodeLabelTemplate & { layout: BarcodeLabelLayout };
|
||||
}>(`${BASE_URL}/templates/${templateId}`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 바코드 라벨 생성 (templateId 선택 시 해당 레이아웃 적용) */
|
||||
createLabel: async (data: CreateBarcodeLabelRequest & { templateId?: string }) => {
|
||||
const response = await apiClient.post<{
|
||||
success: boolean;
|
||||
data: { labelId: string };
|
||||
message: string;
|
||||
}>(BASE_URL, data);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 바코드 라벨 수정 */
|
||||
updateLabel: async (labelId: string, data: UpdateBarcodeLabelRequest) => {
|
||||
const response = await apiClient.put<{
|
||||
success: boolean;
|
||||
message: string;
|
||||
}>(`${BASE_URL}/${labelId}`, data);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 바코드 라벨 삭제 */
|
||||
deleteLabel: async (labelId: string) => {
|
||||
const response = await apiClient.delete<{
|
||||
success: boolean;
|
||||
message: string;
|
||||
}>(`${BASE_URL}/${labelId}`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/** 바코드 라벨 복사 */
|
||||
copyLabel: async (labelId: string) => {
|
||||
const response = await apiClient.post<{
|
||||
success: boolean;
|
||||
data: { labelId: string };
|
||||
message: string;
|
||||
}>(`${BASE_URL}/${labelId}/copy`);
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user