"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = require("express"); const zod_1 = require("zod"); const Member_1 = require("../models/Member"); const auth_1 = require("../middleware/auth"); const router = (0, express_1.Router)(); const memberSchema = zod_1.z.object({ firstName: zod_1.z.string().min(1), lastName: zod_1.z.string().min(1), email: zod_1.z.string().email(), phone: zod_1.z.string().optional(), address: zod_1.z.string().optional(), membershipType: zod_1.z.enum(['regular', 'honorary', 'board']).optional(), status: zod_1.z.enum(['active', 'inactive']).optional(), joinDate: zod_1.z.string().optional(), notes: zod_1.z.string().optional(), }); router.get('/', auth_1.requireAuth, async (_req, res) => { const members = await Member_1.Member.find().sort({ lastName: 1, firstName: 1 }); res.json(members); }); router.post('/', auth_1.requireAuth, async (req, res) => { const data = memberSchema.parse(req.body); const member = await Member_1.Member.create(data); res.status(201).json(member); }); router.put('/:id', auth_1.requireAuth, async (req, res) => { const data = memberSchema.partial().parse(req.body); const member = await Member_1.Member.findByIdAndUpdate(req.params.id, data, { new: true }); if (!member) { res.status(404).json({ error: 'Not found' }); return; } res.json(member); }); router.delete('/:id', auth_1.requireAuth, async (req, res) => { await Member_1.Member.findByIdAndDelete(req.params.id); res.status(204).send(); }); exports.default = router; //# sourceMappingURL=members.js.map