feat: tech tasks page, priority in HK context menu, room status sync
Context menu (RoomContextMenu): - Dirty/Cleaning now show priority sub-form (срочно/высокий/средний/низкий) - New "Тех. задача" section with description text + priority grid Calendar (CalendarPage): - handleRoomUpdate: creates task for both 'dirty' AND 'cleaning' status - New handleMaintenanceTaskCreate for category=maintenance tasks - Passes priority from context menu to task creation Backend (housekeeping.ts): - task status → in_progress: room housekeeping_status = 'cleaning', broadcasts housekeeping_done with roomStatus='cleaning' so all connected Calendar clients update in real-time DB (migration 025): - category column on housekeeping_tasks (default 'housekeeping') - HousekeepingPage filters category=housekeeping - TechnicalPage filters category=maintenance New TechnicalPage (/technical): - List/filter/delete maintenance tasks - Status dropdown per task - Create modal with room/user/priority/date Sidebar: "Тех. задачи" nav item added Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -123,6 +123,15 @@ const housekeeping: FastifyPluginAsync = async (fastify) => {
|
||||
if (!rows[0]) return reply.code(404).send({ error: 'Task not found' })
|
||||
const task = rows[0]
|
||||
|
||||
// When task is marked in_progress → room becomes 'cleaning'
|
||||
if (request.body.status === 'in_progress' && task.room_id) {
|
||||
await db.query(
|
||||
`UPDATE rooms SET housekeeping_status = 'cleaning' WHERE id = $1`,
|
||||
[task.room_id],
|
||||
)
|
||||
broadcast(slug, { type: 'housekeeping_done', taskId: task.id, roomId: task.room_id, roomStatus: 'cleaning' })
|
||||
}
|
||||
|
||||
// When task is marked done → update room housekeeping status
|
||||
if (request.body.status === 'done' && task.room_id) {
|
||||
const settings = await getHkSettings(hotelId).catch(() => null)
|
||||
|
||||
Reference in New Issue
Block a user