import { Request, Response } from "express"; import MaterialService from "../services/MaterialService"; export class MaterialController { // 임시 자재 마스터 목록 조회 async getTempMaterials(req: Request, res: Response) { try { const { search, category, page, limit } = req.query; const result = await MaterialService.getTempMaterials({ search: search as string, category: category as string, page: page ? parseInt(page as string) : 1, limit: limit ? parseInt(limit as string) : 20, }); return res.json({ success: true, ...result }); } catch (error: any) { console.error("Error fetching temp materials:", error); return res.status(500).json({ success: false, message: "자재 목록 조회 중 오류가 발생했습니다.", error: error.message, }); } } // 특정 자재 상세 조회 async getTempMaterialByCode(req: Request, res: Response) { try { const { code } = req.params; const material = await MaterialService.getTempMaterialByCode(code); if (!material) { return res.status(404).json({ success: false, message: "자재를 찾을 수 없습니다.", }); } return res.json({ success: true, data: material }); } catch (error: any) { console.error("Error fetching temp material:", error); return res.status(500).json({ success: false, message: "자재 조회 중 오류가 발생했습니다.", error: error.message, }); } } // 카테고리 목록 조회 async getCategories(req: Request, res: Response) { try { const categories = await MaterialService.getCategories(); return res.json({ success: true, data: categories }); } catch (error: any) { console.error("Error fetching categories:", error); return res.status(500).json({ success: false, message: "카테고리 목록 조회 중 오류가 발생했습니다.", error: error.message, }); } } } export default new MaterialController();