/** * 배송/화물 관리 컨트롤러 */ import { Request, Response } from 'express'; import * as deliveryService from '../services/deliveryService'; /** * GET /api/delivery/status * 배송 현황 조회 */ export async function getDeliveryStatus(req: Request, res: Response): Promise { try { const data = await deliveryService.getDeliveryStatus(); res.json({ success: true, data, }); } catch (error) { console.error('배송 현황 조회 실패:', error); res.status(500).json({ success: false, message: '배송 현황 조회에 실패했습니다.', }); } } /** * GET /api/delivery/delayed * 지연 배송 목록 조회 */ export async function getDelayedDeliveries(req: Request, res: Response): Promise { try { const deliveries = await deliveryService.getDelayedDeliveries(); res.json({ success: true, data: deliveries, }); } catch (error) { console.error('지연 배송 조회 실패:', error); res.status(500).json({ success: false, message: '지연 배송 조회에 실패했습니다.', }); } } /** * GET /api/delivery/issues * 고객 이슈 목록 조회 */ export async function getCustomerIssues(req: Request, res: Response): Promise { try { const { status } = req.query; const issues = await deliveryService.getCustomerIssues(status as string); res.json({ success: true, data: issues, }); } catch (error) { console.error('고객 이슈 조회 실패:', error); res.status(500).json({ success: false, message: '고객 이슈 조회에 실패했습니다.', }); } } /** * PUT /api/delivery/:id/status * 배송 상태 업데이트 */ export async function updateDeliveryStatus(req: Request, res: Response): Promise { try { const { id } = req.params; const { status, delayReason } = req.body; await deliveryService.updateDeliveryStatus(id, status, delayReason); res.json({ success: true, message: '배송 상태가 업데이트되었습니다.', }); } catch (error) { console.error('배송 상태 업데이트 실패:', error); res.status(500).json({ success: false, message: '배송 상태 업데이트에 실패했습니다.', }); } } /** * PUT /api/delivery/issues/:id/status * 고객 이슈 상태 업데이트 */ export async function updateIssueStatus(req: Request, res: Response): Promise { try { const { id } = req.params; const { status } = req.body; await deliveryService.updateIssueStatus(id, status); res.json({ success: true, message: '이슈 상태가 업데이트되었습니다.', }); } catch (error) { console.error('이슈 상태 업데이트 실패:', error); res.status(500).json({ success: false, message: '이슈 상태 업데이트에 실패했습니다.', }); } }