feat: notifications API, auto-jobs, calendar housekeeping fixes
Backend: - notifications table (024 migration) — stores per-hotel notifications - GET/PATCH/POST/DELETE /api/hotels/:slug/notifications endpoints - createNotification() helper used by jobs + future hooks - jobs.ts — background tasks every 10min: auto-cancel no-shows and auto-checkout overdue stays based on hotel_settings, broadcasts WS events and creates notifications for each automated action Frontend: - CalendarPage: handle housekeeping_done WS → update room status in calendar in real-time (bug fix) - CalendarPage: when manually setting room to dirty via context menu, auto-create housekeeping task and broadcast via WS (bug fix) - NotificationsContext: replaced mock data with real API integration, polls every 60s, syncs markRead/delete to backend - SettingsPage booking section: auto-cancel no-show toggle + hours selector; auto-checkout toggle + hours selector - api.ts: notifications API methods - useHotelSocket: notification:new WS message type Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,8 @@ import ratePeriodsRoutes from './routes/rate-periods'
|
||||
import rateOverridesRoutes from './routes/rate-overrides'
|
||||
import uploadRoutes from './routes/upload'
|
||||
import housekeepingSettingsRoutes from './routes/housekeeping-settings'
|
||||
import notificationsRoutes from './routes/notifications'
|
||||
import { startJobs } from './jobs'
|
||||
|
||||
export async function buildApp() {
|
||||
const fastify = Fastify({
|
||||
@@ -102,6 +104,9 @@ export async function buildApp() {
|
||||
await fastify.register(rateOverridesRoutes)
|
||||
await fastify.register(uploadRoutes)
|
||||
await fastify.register(housekeepingSettingsRoutes)
|
||||
await fastify.register(notificationsRoutes)
|
||||
|
||||
startJobs()
|
||||
|
||||
return fastify
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user