feat: enforce checklist/minibar completion before marking task done

- ApiError now carries errors[] array from 422 responses
- updateStatus re-throws 422 so TaskCard can surface errors
- TaskCard: minibarCheckedLocal state + 'Подтвердить проверку минибара' button
- TaskCard: async handleComplete with completionErrors display
- Backend validation errors shown inline in completion panel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-02 23:09:03 +03:00
parent 3c1a6ccebf
commit d98389e2bc
8 changed files with 289 additions and 24 deletions

View File

@@ -0,0 +1,13 @@
-- Настройка "требовать выполнения чек-листа перед завершением уборки"
ALTER TABLE checklist_templates
ADD COLUMN IF NOT EXISTS require_before_complete BOOLEAN NOT NULL DEFAULT false;
-- Настройка "требовать проверки минибара перед завершением уборки" (уровень отеля)
CREATE TABLE IF NOT EXISTS hotel_housekeeping_rules (
hotel_id UUID PRIMARY KEY REFERENCES hotels(id) ON DELETE CASCADE,
require_minibar_check BOOLEAN NOT NULL DEFAULT false
);
-- Флаг "горничная подтвердила проверку минибара" на задаче уборки
ALTER TABLE housekeeping_tasks
ADD COLUMN IF NOT EXISTS minibar_checked BOOLEAN NOT NULL DEFAULT false;