"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = require("express"); const prisma_1 = __importDefault(require("../lib/prisma")); const auth_1 = require("../middleware/auth"); const router = (0, express_1.Router)(); // GET /engagement/announcements router.get('/announcements', auth_1.requireAuth, async (req, res) => { try { const announcements = await prisma_1.default.announcement.findMany({ where: { companyId: req.user.companyId }, orderBy: [{ isPinned: 'desc' }, { publishedAt: 'desc' }], take: 20, }); return res.json(announcements); } catch (err) { return res.status(500).json({ error: 'Internal server error' }); } }); // POST /engagement/announcements router.post('/announcements', auth_1.requireAuth, async (req, res) => { try { const announcement = await prisma_1.default.announcement.create({ data: { ...req.body, companyId: req.user.companyId, authorId: req.user.employeeId, }, }); return res.status(201).json(announcement); } catch (err) { return res.status(500).json({ error: 'Internal server error' }); } }); // GET /engagement/recognition router.get('/recognition', auth_1.requireAuth, async (req, res) => { try { const recognitions = await prisma_1.default.recognition.findMany({ where: { isPublic: true }, include: { giver: { select: { firstName: true, lastName: true, department: { select: { name: true } } } }, receiver: { select: { firstName: true, lastName: true } }, }, orderBy: { createdAt: 'desc' }, take: 20, }); return res.json(recognitions); } catch (err) { return res.status(500).json({ error: 'Internal server error' }); } }); // POST /engagement/recognition router.post('/recognition', auth_1.requireAuth, async (req, res) => { try { const employeeId = req.user.employeeId; if (!employeeId) return res.status(400).json({ error: 'Employee not found' }); const recognition = await prisma_1.default.recognition.create({ data: { ...req.body, giverId: employeeId, companyId: req.user.companyId, }, }); return res.status(201).json(recognition); } catch (err) { return res.status(500).json({ error: 'Internal server error' }); } }); // GET /engagement/surveys router.get('/surveys', auth_1.requireAuth, async (req, res) => { try { const surveys = await prisma_1.default.survey.findMany({ where: { companyId: req.user.companyId }, include: { _count: { select: { responses: true } } }, orderBy: { createdAt: 'desc' }, }); return res.json(surveys); } catch (err) { return res.status(500).json({ error: 'Internal server error' }); } }); // POST /engagement/surveys router.post('/surveys', auth_1.requireAuth, async (req, res) => { try { const survey = await prisma_1.default.survey.create({ data: { ...req.body, companyId: req.user.companyId }, }); return res.status(201).json(survey); } catch (err) { return res.status(500).json({ error: 'Internal server error' }); } }); exports.default = router; //# sourceMappingURL=engagement.js.map