import prisma from '../prisma/client.js'; import { sendEmail } from '../utils/sendEmail.js'; import { getEmailsByType } from '../utils/getEmailByTypes.js'; /* CREATE INQUIRY */ export const createInquiry = async (req, res) => { try { const { fullName, number, emailId, subject, message } = req.body; if (!fullName || !number) { return res.status(400).json({ success: false, message: 'Full name and number are required', }); } const inquiry = await prisma.inquiry.create({ data: { fullName, number, emailId, subject, message, }, }); try { const emailList = await getEmailsByType('INQUIRY'); if (emailList && emailList.length > 0) { await sendEmail({ to: emailList, subject: 'New Inquiry Received', html: `

GG Hospital

New Inquiry Received

Contact Details

Name: ${fullName}
Phone: ${number}
Email: ${emailId}
Subject: ${subject}

Message

${message ? message.replace(/\n/g, '
') : '-'}
This message was sent from the GG Hospital website contact form.
`, }); } } catch (err) { console.error('Inquiry email failed:', err); } res.status(200).json({ success: true, status: 200, data: inquiry, message: 'Inquiry added successfully', }); } catch (error) { console.error(error); res.status(500).json({ success: false, message: 'Failed to add inquiry', }); } }; /* GET ALL */ export const getInquiries = async (req, res) => { try { const inquiries = await prisma.inquiry.findMany({ orderBy: { createdAt: 'desc', }, }); res.json({ success: true, data: inquiries, }); } catch (error) { res.status(500).json({ success: false, message: 'Failed to fetch inquiries', }); } }; /* GET SINGLE */ export const getInquiry = async (req, res) => { try { const { id } = req.params; const inquiry = await prisma.inquiry.findUnique({ where: { id: Number(id) }, }); if (!inquiry) { return res.status(404).json({ success: false, message: 'Inquiry not found', }); } res.json({ success: true, data: inquiry, }); } catch (error) { res.status(500).json({ success: false, message: 'Failed to fetch inquiry', }); } }; /* DELETE */ export const deleteInquiry = async (req, res) => { try { const { id } = req.params; await prisma.inquiry.delete({ where: { id: Number(id) }, }); res.json({ success: true, message: 'Inquiry deleted successfully', }); } catch (error) { res.status(500).json({ success: false, message: 'Failed to delete inquiry', }); } };