import { Router } from 'express';
import { mailSentHistoryController } from '../controllers/mailSentHistoryController';
import { authenticateToken } from '../middleware/authMiddleware';

const router = Router();

// 모든 라우트에 인증 미들웨어 적용
router.use(authenticateToken);

// GET /api/mail/sent/statistics - 통계 조회 (⚠️ 반드시 /:id 보다 먼저 정의)
router.get('/statistics', (req, res) => mailSentHistoryController.getStatistics(req, res));

// GET /api/mail/sent - 발송 이력 목록 조회
router.get('/', (req, res) => mailSentHistoryController.getList(req, res));

// POST /api/mail/sent/draft - 임시 저장 (Draft)
router.post('/draft', (req, res) => mailSentHistoryController.saveDraft(req, res));

// PUT /api/mail/sent/draft/:id - 임시 저장 업데이트
router.put('/draft/:id', (req, res) => mailSentHistoryController.updateDraft(req, res));

// POST /api/mail/sent/bulk/delete - 일괄 삭제
router.post('/bulk/delete', (req, res) => mailSentHistoryController.bulkDelete(req, res));

// POST /api/mail/sent/bulk/permanent-delete - 일괄 영구 삭제
router.post('/bulk/permanent-delete', (req, res) => mailSentHistoryController.bulkPermanentDelete(req, res));

// POST /api/mail/sent/bulk/restore - 일괄 복구
router.post('/bulk/restore', (req, res) => mailSentHistoryController.bulkRestore(req, res));

// POST /api/mail/sent/:id/restore - 메일 복구
router.post('/:id/restore', (req, res) => mailSentHistoryController.restoreMail(req, res));

// DELETE /api/mail/sent/:id/permanent - 메일 영구 삭제
router.delete('/:id/permanent', (req, res) => mailSentHistoryController.permanentlyDelete(req, res));

// GET /api/mail/sent/:id - 특정 발송 이력 상세 조회
router.get('/:id', (req, res) => mailSentHistoryController.getById(req, res));

// DELETE /api/mail/sent/:id - 발송 이력 삭제 (Soft Delete)
router.delete('/:id', (req, res) => mailSentHistoryController.deleteById(req, res));

export default router;

