feat: checklists, minibar and deposit modules
- DB migrations 057-059: checklist_templates/items/completions, minibar_items/consumptions, hotel_deposit_settings, booking_deposits - Backend routes: checklists (templates CRUD + task completions), minibar (items + consumptions), deposit (settings, cash/yookassa hold, release/capture) - YooKassa service for hold/capture/cancel payments - Frontend: ChecklistSettingsPage, MinibarSettingsPage, DepositSettingsPage - HousekeepingPage: task cards now show checklist + minibar panel with checkboxes and quantity buttons - BookingModal: minibar charges summary + deposit management (cash/YooKassa/release) for existing bookings - Sidebar + App.tsx: new routes /settings/checklists, /settings/minibar, /settings/deposit Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
34
backend/migrations/059_deposits.sql
Normal file
34
backend/migrations/059_deposits.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
CREATE TABLE hotel_deposit_settings (
|
||||
hotel_id UUID PRIMARY KEY REFERENCES hotels(id) ON DELETE CASCADE,
|
||||
is_enabled BOOLEAN NOT NULL DEFAULT false,
|
||||
amount NUMERIC(10,2) NOT NULL DEFAULT 5000,
|
||||
yookassa_shop_id TEXT,
|
||||
yookassa_secret_key TEXT,
|
||||
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE booking_deposits (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
hotel_id UUID NOT NULL REFERENCES hotels(id),
|
||||
booking_id UUID NOT NULL REFERENCES bookings(id),
|
||||
amount NUMERIC(10,2) NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'pending',
|
||||
-- pending = ожидает оплаты
|
||||
-- paid_cash = оплачен наличными
|
||||
-- hold_created = холд создан в ЮКасса
|
||||
-- hold_confirmed = холд подтверждён (webhook)
|
||||
-- captured = частично/полностью списано
|
||||
-- refunded = возвращён полностью
|
||||
-- cancelled = отменён
|
||||
payment_method TEXT, -- 'cash', 'yookassa_hold'
|
||||
yookassa_payment_id TEXT,
|
||||
yookassa_confirmation_url TEXT,
|
||||
captured_amount NUMERIC(10,2),
|
||||
retention_reason TEXT,
|
||||
guest_email_sent BOOLEAN NOT NULL DEFAULT false,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
paid_at TIMESTAMPTZ,
|
||||
released_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE INDEX ON booking_deposits(booking_id);
|
||||
Reference in New Issue
Block a user