feat: deposit release lock + billing fixes + centralized payment gateway
- Add releaseRequiresCheckout toggle in DepositSettingsPage (UI + payload) - Migration 066: release_requires_checkout column on hotel_deposit_settings - Migration 065: hotel_payment_gateways table for centralized YooKassa config - Block deposit release buttons when releaseRequiresCheckout && not checked_out - Fix billing calculation: use Number() to prevent PostgreSQL NUMERIC string concat - Fix minibar billing: show current price (JOIN minibar_items.price) not recorded price - Auto-poll deposit status every 5s while hold_created; clear QR message on confirmation - Add billing/folio tab in BookingDetailPanel (room charges + minibar + payments + balance) - PaymentSettingsPage: new "Онлайн-оплата (ЮКасса)" section with gateway CRUD - DepositSettingsPage: replace YooKassa fields with link to centralized payment settings - BookingWidgetPage: connect to real API, gateway status banner, async booking submission - New backend routes: paymentGateways, publicWidget - YooKassa service: add createCharge() for immediate payment (online bookings) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1450,6 +1450,7 @@ export interface MinibarBookingCharge {
|
||||
itemName: string
|
||||
quantity: number
|
||||
pricePerUnit: number
|
||||
currentPrice: number
|
||||
total: number
|
||||
recordedAt: string
|
||||
recordedByName: string | null
|
||||
@@ -1553,6 +1554,7 @@ export interface DepositSettings {
|
||||
amount: number
|
||||
yookassaShopId: string | null
|
||||
yookassaSecretKey: string | null
|
||||
releaseRequiresCheckout: boolean
|
||||
updatedAt?: string
|
||||
}
|
||||
|
||||
@@ -1561,6 +1563,7 @@ export interface DepositSettingsPayload {
|
||||
amount?: number
|
||||
yookassa_shop_id?: string
|
||||
yookassa_secret_key?: string
|
||||
release_requires_checkout?: boolean
|
||||
}
|
||||
|
||||
export interface BookingDeposit {
|
||||
|
||||
Reference in New Issue
Block a user