const ReturnRequest = require('../models/returnRequestModel'); // 1. Submit Return Request (Public) exports.submitRequest = async (req, res) => { try { const newRequest = await ReturnRequest.create(req.body); res.status(201).json({ status: 'success', message: 'تم إرسال طلب الاسترجاع بنجاح', data: { request: newRequest }, }); } catch (err) { res.status(400).json({ status: 'fail', message: err.message, }); } }; // 2. Get All Requests (Admin) exports.getAllRequests = async (req, res) => { try { const requests = await ReturnRequest.find().sort({ createdAt: -1 }); res.status(200).json({ status: 'success', results: requests.length, data: { requests }, }); } catch (err) { res.status(500).json({ status: 'fail', message: err.message, }); } }; // 3. Delete Request (Admin) exports.deleteRequest = async (req, res) => { try { const request = await ReturnRequest.findByIdAndDelete(req.params.id); if (!request) { return res.status(404).json({ status: 'fail', message: 'No request found with that ID', }); } res.status(204).json({ status: 'success', data: null, }); } catch (err) { res.status(400).json({ status: 'fail', message: err.message, }); } }; // 4. Toggle Read Status (Admin) exports.toggleReadStatus = async (req, res) => { try { const request = await ReturnRequest.findById(req.params.id); if (!request) { return res.status(404).json({ status: 'fail', message: 'No request found with that ID', }); } request.isRead = !request.isRead; await request.save(); res.status(200).json({ status: 'success', data: { request }, }); } catch (err) { res.status(400).json({ status: 'fail', message: err.message, }); } };