- Миграция 064: таблица hotel_payment_methods, поле require_payment_checkin - Бэкенд: CRUD /api/hotels/:slug/payment-methods, /api/hotels/:slug/payment-settings - PaymentSettingsPage (/settings/payments): управление способами оплаты (название, валюта, тип, активность, сортировка), контроль при заселении (нет/мягкий/жёсткий) - BookingDetailPanel: динамические методы оплаты вместо захардкоженных - Кнопка «Заселить»: hard — заблокирована при балансе > 0; soft — предупреждение с выбором Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
1.0 KiB
SQL
24 lines
1.0 KiB
SQL
-- Hotel payment methods (configurable per hotel)
|
|
CREATE TABLE hotel_payment_methods (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
hotel_id UUID NOT NULL REFERENCES hotels(id) ON DELETE CASCADE,
|
|
name TEXT NOT NULL,
|
|
currency TEXT NOT NULL DEFAULT 'RUB',
|
|
type TEXT NOT NULL DEFAULT 'cash', -- cash, card, transfer, other
|
|
is_active BOOLEAN NOT NULL DEFAULT true,
|
|
sort_order INTEGER NOT NULL DEFAULT 0
|
|
);
|
|
|
|
-- Require payment on check-in: none | soft | hard
|
|
ALTER TABLE hotels ADD COLUMN IF NOT EXISTS require_payment_checkin TEXT NOT NULL DEFAULT 'none';
|
|
|
|
-- Seed default payment methods for existing hotels
|
|
INSERT INTO hotel_payment_methods (hotel_id, name, currency, type, sort_order)
|
|
SELECT id, 'Наличные', 'RUB', 'cash', 0 FROM hotels;
|
|
|
|
INSERT INTO hotel_payment_methods (hotel_id, name, currency, type, sort_order)
|
|
SELECT id, 'Банковская карта', 'RUB', 'card', 1 FROM hotels;
|
|
|
|
INSERT INTO hotel_payment_methods (hotel_id, name, currency, type, sort_order)
|
|
SELECT id, 'Перевод (СБП)', 'RUB', 'transfer', 2 FROM hotels;
|