feat: настройки оплаты — способы оплаты + контроль при заселении

- Миграция 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>
This commit is contained in:
2026-04-06 16:12:38 +03:00
parent 45a8cf7c10
commit f94d4723d5
8 changed files with 632 additions and 24 deletions

View File

@@ -42,6 +42,7 @@ import checklistsRoutes from './routes/checklists'
import minibarRoutes from './routes/minibar'
import depositRoutes from './routes/deposit'
import paymentsRoutes from './routes/payments'
import paymentMethodsRoutes from './routes/paymentMethods'
import { setupAgentWsRoute } from './agent-ws'
import { startJobs } from './jobs'
@@ -136,6 +137,7 @@ export async function buildApp() {
await fastify.register(minibarRoutes)
await fastify.register(depositRoutes)
await fastify.register(paymentsRoutes)
await fastify.register(paymentMethodsRoutes)
await fastify.register(setupAgentWsRoute)
startJobs()