const express = require("express"); const router = express.Router(); const db = require("../models"); const { validateInput, handleValidationErrorForAPI, } = require("../services/ValidationService"); // Validation rules for booking const bookingValidation = { name: "required|string", email: "required|email", company: "required|string", phone: "required|string", notes: "required|string", date: "required|string", time: "required|string", timezone: "required|string", }; // POST /api/bookings - Create a new booking router.post( "/bookings", validateInput(bookingValidation, { "name.required": "Name is required", "email.required": "Email is required", "email.email": "Invalid email address", "company.required": "Company is required", "phone.required": "Phone is required", "notes.required": "Notes are required", "date.required": "Date is required", "time.required": "Time is required", "timezone.required": "Timezone is required", }), handleValidationErrorForAPI, async (req, res) => { try { const { name, email, company, phone, notes, date, time, timezone } = req.body; const booking = await db.booking.create({ name, email, company, phone, notes, date, time, timezone, }); res.status(201).json({ success: true, booking }); } catch (err) { res.status(500).json({ error: err.message }); } } ); // GET /api/bookings - List all bookings router.get("/bookings", async (req, res) => { try { const bookings = await db.booking.findAll({ order: [["created_at", "DESC"]], }); res.json({ bookings }); } catch (err) { res.status(500).json({ error: err.message }); } }); module.exports = router;