// controllers/notificationRecipientController.js const notificationRecipientModel = require('../models/notificationRecipientModel'); const notificationRecipientController = { // 알림 유형 목록 getTypes: async (req, res) => { try { const types = notificationRecipientModel.getTypes(); res.json({ success: true, data: types }); } catch (error) { console.error('알림 유형 조회 오류:', error); res.status(500).json({ success: false, error: '알림 유형 조회 실패' }); } }, // 전체 수신자 목록 (유형별 그룹화) getAll: async (req, res) => { try { console.log('🔔 알림 수신자 목록 조회 시작'); const recipients = await notificationRecipientModel.getAll(); console.log('✅ 알림 수신자 목록 조회 완료:', recipients); res.json({ success: true, data: recipients }); } catch (error) { console.error('❌ 수신자 목록 조회 오류:', error.message); console.error('❌ 스택:', error.stack); res.status(500).json({ success: false, error: '수신자 목록 조회 실패', detail: error.message }); } }, // 유형별 수신자 조회 getByType: async (req, res) => { try { const { type } = req.params; const recipients = await notificationRecipientModel.getByType(type); res.json({ success: true, data: recipients }); } catch (error) { console.error('수신자 조회 오류:', error); res.status(500).json({ success: false, error: '수신자 조회 실패' }); } }, // 수신자 추가 add: async (req, res) => { try { const { notification_type, user_id } = req.body; if (!notification_type || !user_id) { return res.status(400).json({ success: false, error: '알림 유형과 사용자 ID가 필요합니다.' }); } await notificationRecipientModel.add(notification_type, user_id, req.user?.user_id); res.json({ success: true, message: '수신자가 추가되었습니다.' }); } catch (error) { console.error('수신자 추가 오류:', error); res.status(500).json({ success: false, error: '수신자 추가 실패' }); } }, // 수신자 제거 remove: async (req, res) => { try { const { type, userId } = req.params; await notificationRecipientModel.remove(type, userId); res.json({ success: true, message: '수신자가 제거되었습니다.' }); } catch (error) { console.error('수신자 제거 오류:', error); res.status(500).json({ success: false, error: '수신자 제거 실패' }); } }, // 유형별 수신자 일괄 설정 setRecipients: async (req, res) => { try { const { type } = req.params; const { user_ids } = req.body; if (!Array.isArray(user_ids)) { return res.status(400).json({ success: false, error: 'user_ids 배열이 필요합니다.' }); } await notificationRecipientModel.setRecipients(type, user_ids, req.user?.user_id); res.json({ success: true, message: '수신자가 설정되었습니다.' }); } catch (error) { console.error('수신자 설정 오류:', error); res.status(500).json({ success: false, error: '수신자 설정 실패' }); } } }; module.exports = notificationRecipientController;