import prisma from '../prisma/client.js'; // GET ALL CAREERS export const getAllCareers = async (req, res) => { try { const { admin } = req.query; const careers = await prisma.career.findMany({ where: admin === 'true' ? {} : { isActive: true }, orderBy: [{ sortOrder: 'asc' }, { createdAt: 'desc' }], }); const response = careers.map((c) => ({ id: c.id, post: c.post, designation: c.designation, qualification: c.qualification, experienceNeed: c.experienceNeed, email: c.email, number: c.number, status: c.status, isActive: c.isActive, sortOrder: c.sortOrder, })); return res.status(200).json({ success: true, data: response, }); } catch (error) { console.error(error); return res.status(500).json({ success: false, message: 'Failed to fetch careers', }); } }; // CREATE CAREER export const createCareer = async (req, res) => { try { const { post, designation, qualification, experienceNeed, email, number, status, isActive, sortOrder } = req.body; if (!post || !designation) { return res.status(400).json({ success: false, message: 'Post and designation are required', }); } const career = await prisma.career.create({ data: { post, designation, qualification, experienceNeed, email, number, status, isActive: isActive !== undefined ? isActive : true, sortOrder: sortOrder !== undefined ? Number(sortOrder) : 0, }, }); return res.status(201).json({ success: true, message: 'Career created successfully', data: career, }); } catch (error) { console.error(error); return res.status(500).json({ success: false, message: 'Failed to create career', }); } }; // UPDATE CAREER (PATCH) export const updateCareer = async (req, res) => { try { const { id } = req.params; const updateData = { ...req.body }; if (updateData.sortOrder !== undefined) { updateData.sortOrder = Number(updateData.sortOrder); } const career = await prisma.career.update({ where: { id: Number(id) }, data: updateData, }); return res.status(200).json({ success: true, message: 'Career updated successfully', data: career, }); } catch (error) { console.error(error); return res.status(500).json({ success: false, message: 'Failed to update career', }); } }; // DELETE CAREER export const deleteCareer = async (req, res) => { try { const { id } = req.params; await prisma.career.delete({ where: { id: Number(id) }, }); return res.status(200).json({ success: true, message: 'Career deleted successfully', }); } catch (error) { console.error(error); return res.status(500).json({ success: false, message: 'Failed to delete career', }); } };