Commit Graph

44 Commits

Author SHA1 Message Date
muken dc0c5fd289 feat: add security hardening for reservation APIs
- Add rate limiting (5/hr public, 100/min admin endpoints)
- Add honeypot bot protection on public POST
- Add audit logging for status changes and deletions
- Add input validation (email, phone, date, length limits)
- Fix missing auth on private event GET endpoints
- Add audit_log table to schema
- Fix failing tests (auth.test, rooms-route.test)
2026-07-02 20:56:36 -05:00
muken 0ca4f961f6 feat: add reservation system for public and private events
- Add private_event_reservations table with contact info fields
- Add status column to social_event_reservations (pending/confirmed/cancelled)
- Create /api/private-event-reservations CRUD endpoints
- Update social_event_reservations API to support guest submissions
- Add Reservations tab to Public Events admin section
- Add full reservation management UI for Private Events
- Support filtering by status (pending/confirmed/cancelled/all)
- Allow confirm/cancel/reactivate/delete actions
2026-07-02 20:29:17 -05:00
muken 09bbe0a441 refactor: migrate room photos from rooms.photos to images table
- Photos now stored exclusively in images table (no duplication)
- rooms.photos array cleared, freed 17 MB storage
- Updated room APIs to fetch images by room_id
- Added PUT endpoint for room updates
- Updated RoomEditor to load/delete images from images table
- Fixed images API to return 'data' key consistently
2026-07-01 21:54:39 -05:00
muken ee68dc2897 feat: add WebP migration UI and API endpoint
- Add /api/admin/migrate-images endpoint to convert JPEG/PNG to WebP
- Add WebPMigration component in admin gallery showing stats
- Upload endpoint already converts new images to WebP
- Migration saves ~30-50% storage space per image
2026-07-01 21:47:16 -05:00
muken f7bb5ed752 feat: food ordering on coffee page
- Add 'Place Order' button to coffee page
- Order modal with menu item selection by category
- Order type options: pickup, dine in, room delivery (+10%)
- Room delivery requires login (disabled for guests)
- Calculate subtotal, service fee, and total
- Special instructions field
- Admin receives new orders in database
- Create orders and order_items tables
2026-07-01 00:12:34 -05:00
muken d9049d2294 feat: guest reservations and messages with proper table names
- Remove Reserve button from rooms page
- Calendar modal now supports direct reservation for guests
- Message modal works for guests (asks for name, contact method, contact)
- Create room_reservations table (separate from restaurant reservations)
- Create messages table for room inquiries
- LEFT JOIN users in queries to include guest reservations/messages
- Auto-fill form for logged-in users, show input fields for guests
2026-07-01 00:09:25 -05:00
muken ae6ea0ea46 feat: guest reservations and messages
- Remove Reserve button from rooms page
- Calendar modal now supports direct reservation for guests
- Message modal works for guests (asks for name, contact method, contact)
- Add guest_name, guest_contact_method, guest_contact to reservations and messages tables
- LEFT JOIN users in reservations GET to include guest reservations
- Auto-fill form for logged-in users, show input fields for guests
2026-07-01 00:05:39 -05:00
muken 81c12ace7b feat: image optimization with multiple sizes and lazy loading
- Generate thumbnail (150px), medium (800px), full size on upload
- OptimizedImage component with Intersection Observer lazy loading
- Blur placeholder while loading
- Fetches appropriate size based on props (thumbnail/medium/full)
- Async image loading reduces initial page load time
- Added medium and thumbnail columns to images table
2026-06-30 23:34:23 -05:00
muken 2353198924 feat: add room likes feature
- Users can like/unlike rooms
- Like count displayed on room cards
- LikeButton component with heart icon
- room_likes table with unique constraint
2026-06-30 21:57:28 -05:00
muken 7eae73eefb feat: room booking system with 4 action buttons
- Display amenity icons on room cards
- Reserve button: date picker, availability check, booking
- Message button: contact admins via platform
- Calendar button: view room availability
- Comment button: submit reviews for admin approval
- Admin comment queue for approve/reject/edit
- Reservations, availability, and messages tables
2026-06-30 21:54:46 -05:00
muken c42b1c3cc8 perf: add sharp for image optimization, lazy loading on menu
- Added sharp for server-side image resizing
- Lazy loading and async decoding on menu images
- Added thumbnail column to images table
- Images API now generates 400x300 thumbnails on upload
2026-06-30 20:54:43 -05:00
muken 3bdaee333b fix: contact page now fetches brand info from config
- Created contact API endpoint to store messages
- Added contact_messages table
- Contact page now displays phone, email, WhatsApp, and address from site config
2026-06-30 00:20:00 -05:00
muken b46d490be2 feat: add photo support to food menu items
- Add photos and featured_photo columns to menu_items table
- Update MenuEditor with photo upload functionality
- Add click-to-set-featured-photo interaction
- Update menu API endpoints to handle photos
2026-06-30 00:04:04 -05:00
muken d753a3713f fix: menu drag-and-drop reorder using sorted array and correct sort_order 2026-06-29 21:41:12 -05:00
muken 2dc949553e fix: slide image upload - clear image_url when image_id set, fix slides.image_url column type to TEXT, add bed amenities (Queen, 2 Queen) 2026-06-29 21:38:27 -05:00
muken 91fce014fd feat: room amenities selection in room editor 2026-06-29 20:49:51 -05:00
muken 262cd4745c feat: room amenities with editable SVG icons 2026-06-29 20:45:56 -05:00
muken 8cc1d4bb96 fix: calendar strip NaN days and 3-day weather forecast 2026-06-29 20:38:14 -05:00
muken 6b7720d2d8 feat: users can change their own password via user portal 2026-06-29 18:09:54 -05:00
muken 765465348e feat: allow admins to change user passwords 2026-06-29 18:07:24 -05:00
muken 59698686d5 feat: add weather widget to user portal below navbar 2026-06-28 23:36:29 -05:00
muken 291df16f1f feat: user portal with trips, wifi, welcome message, chat; admin trips & messages mgmt 2026-06-28 23:33:39 -05:00
muken 658a3f00a7 fix: remove wifi_password from public site-assets API - only show in logged-in user portal 2026-06-28 23:28:02 -05:00
muken a1d88af78b feat: add footer configuration (address, phone, email, social URLs, tagline) to admin panel 2026-06-28 23:21:41 -05:00
muken abf46b9075 fix: image upload returns correct data structure for all editors 2026-06-28 23:18:27 -05:00
muken 991e73fcff feat: harden bootstrap and add tests 2026-06-28 16:43:03 -05:00
muken 295c024ced fix: image gallery organized with sections and borders, images now show correctly 2026-06-28 13:50:32 -05:00
muken e1b091b25d fix: admin menu fetch and add item — use /api/admin/menu endpoint, parse response.data correctly 2026-06-28 13:45:15 -05:00
muken 4b6e7f4362 feat: menu visibility toggle + drag-and-drop reorder in admin 2026-06-28 13:43:02 -05:00
muken f6b76eb396 feat: add like/unlike toggle API for rooms 2026-06-28 13:40:52 -05:00
muken fdca926468 feat: add image serving endpoint for rooms gallery 2026-06-28 13:37:55 -05:00
muken b4b8cbcce1 fix: social_events API public + add availability table
- Make social_events GET endpoint public (was returning 401)
- Add WHERE active = TRUE filter to social_events query
- Create availability table for room date management
2026-06-28 10:20:33 -05:00
muken a47f54d22b Fix image handling to support category, room_id, and location_target fields 2026-06-28 06:35:38 -05:00
muken 49bf370d41 Prod hardening and K8s drafts: auth fail-close, DB pool, init/schema split, prod init guard 2026-06-27 20:41:41 -05:00
muken 744830c3cd Add Social Events tab with reservations 2026-06-27 19:40:22 -05:00
muken 71ae322b3f feat(landscape): multi-photo gallery like rooms with uploads and ordering 2026-06-27 19:29:08 -05:00
muken a11bd3ada8 feat: room photo gallery, featured photo, and comments moderation 2026-06-27 19:25:00 -05:00
muken 085ecd5ce4 Show weather in both Celsius and Fahrenheit 2026-06-27 18:59:32 -05:00
muken 8394b60bc2 Add admin slideshow, horizontal animated calendar, and weather strip 2026-06-27 18:40:56 -05:00
muken 75da132327 Admin portal, public pages, footer, site config 2026-06-27 18:10:49 -05:00
muken 4bb3596412 Add rooms, menu, places, reviews APIs and site config bulk endpoint 2026-06-27 18:06:31 -05:00
muken 1bd5325baa Add createUser helper, admin users API, and bootstrap endpoint for mmendoza 2026-06-27 16:47:02 -05:00
muken 1148f7a72f Switch navbar to #001321, admin can update logo/favicon, logo links home 2026-06-27 16:44:17 -05:00
muken cc59177a74 Add database integration, auth API, admin/user portals, and deploy-db.sh 2026-06-27 16:40:58 -05:00