Files

2 lines
34 KiB
JavaScript
Raw Permalink Normal View History

Hotel Raxa - Advanced Booking System Implementation 🏨 Hotel Booking Enhancements: - Implemented Eagle Booking Advanced Pricing add-on - Added Booking.com-style rate management system - Created professional calendar interface for pricing - Integrated deals and discounts functionality 💰 Advanced Pricing Features: - Dynamic pricing models (per room, per person, per adult) - Base rates, adult rates, and child rates management - Length of stay discounts and early bird deals - Mobile rates and secret deals implementation - Seasonal promotions and flash sales 📅 Availability Management: - Real-time availability tracking - Stop sell and restriction controls - Closed to arrival/departure functionality - Minimum/maximum stay requirements - Automatic sold-out management 💳 Payment Integration: - Maintained Redsys payment gateway integration - Seamless integration with existing Eagle Booking - No modifications to core Eagle Booking plugin 🛠️ Technical Implementation: - Custom database tables for advanced pricing - WordPress hooks and filters integration - AJAX-powered admin interface - Data migration from existing Eagle Booking - Professional calendar view for revenue management 📊 Admin Interface: - Booking.com-style management dashboard - Visual rate and availability calendar - Bulk operations for date ranges - Statistics and analytics dashboard - Modal dialogs for quick editing 🔧 Code Quality: - WordPress coding standards compliance - Secure database operations with prepared statements - Proper input validation and sanitization - Error handling and logging - Responsive admin interface 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-11 07:43:22 +02:00
/*! For license information please see query.min.js.LICENSE.txt */
!function(){"use strict";var t={5251:function(t,e,s){var i=s(2403),r=Symbol.for("react.element"),n=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),a=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};e.jsx=function(t,e,s){var i,u={},c=null,h=null;for(i in void 0!==s&&(c=""+s),void 0!==e.key&&(c=""+e.key),void 0!==e.ref&&(h=e.ref),e)n.call(e,i)&&!o.hasOwnProperty(i)&&(u[i]=e[i]);if(t&&t.defaultProps)for(i in e=t.defaultProps)void 0===u[i]&&(u[i]=e[i]);return{$$typeof:r,type:t,key:c,ref:h,props:u,_owner:a.current}}},5893:function(t,e,s){t.exports=s(5251)},2403:function(t){t.exports=window.React}},e={};function s(i){var r=e[i];if(void 0!==r)return r.exports;var n=e[i]={exports:{}};return t[i](n,n.exports,s),n.exports}s.d=function(t,e){for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};!function(){s.r(i),s.d(i,{QueryClient:function(){return G},QueryClientProvider:function(){return V},createQueryClient:function(){return gt},useInfiniteQuery:function(){return yt},useMutation:function(){return vt},useQuery:function(){return bt},useQueryClient:function(){return z}});var t="undefined"==typeof window||"Deno"in globalThis;function e(){}function r(t){return"number"==typeof t&&t>=0&&t!==1/0}function n(t,e){return Math.max(t+(e||0)-Date.now(),0)}function a(t,e){return"function"==typeof t?t(e):t}function o(t,e){return"function"==typeof t?t(e):t}function u(t,e){const{type:s="all",exact:i,fetchStatus:r,predicate:n,queryKey:a,stale:o}=t;if(a)if(i){if(e.queryHash!==h(a,e.options))return!1}else if(!d(e.queryKey,a))return!1;if("all"!==s){const t=e.isActive();if("active"===s&&!t)return!1;if("inactive"===s&&t)return!1}return!("boolean"==typeof o&&e.isStale()!==o||r&&r!==e.state.fetchStatus||n&&!n(e))}function c(t,e){const{exact:s,status:i,predicate:r,mutationKey:n}=t;if(n){if(!e.options.mutationKey)return!1;if(s){if(l(e.options.mutationKey)!==l(n))return!1}else if(!d(e.options.mutationKey,n))return!1}return!(i&&e.state.status!==i||r&&!r(e))}function h(t,e){return(e?.queryKeyHashFn||l)(t)}function l(t){return JSON.stringify(t,((t,e)=>m(e)?Object.keys(e).sort().reduce(((t,s)=>(t[s]=e[s],t)),{}):e))}function d(t,e){return t===e||typeof t==typeof e&&!(!t||!e||"object"!=typeof t||"object"!=typeof e)&&!Object.keys(e).some((s=>!d(t[s],e[s])))}function f(t,e){if(t===e)return t;const s=y(t)&&y(e);if(s||m(t)&&m(e)){const i=s?t:Object.keys(t),r=i.length,n=s?e:Object.keys(e),a=n.length,o=s?[]:{};let u=0;for(let r=0;r<a;r++){const a=s?r:n[r];(!s&&i.includes(a)||s)&&void 0===t[a]&&void 0===e[a]?(o[a]=void 0,u++):(o[a]=f(t[a],e[a]),o[a]===t[a]&&void 0!==t[a]&&u++)}return r===a&&u===r?t:o}return e}function p(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(const s in t)if(t[s]!==e[s])return!1;return!0}function y(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function m(t){if(!v(t))return!1;const e=t.constructor;if(void 0===e)return!0;const s=e.prototype;return!!v(s)&&!!s.hasOwnProperty("isPrototypeOf")&&Object.getPrototypeOf(t)===Object.prototype}function v(t){return"[object Object]"===Object.prototype.toString.call(t)}function b(t,e,s){return"function"==typeof s.structuralSharing?s.structuralSharing(t,e):!1!==s.structuralSharing?f(t,e):e}function g(t,e,s=0){const i=[...t,e];return s&&i.length>s?i.slice(1):i}function O(t,e,s=0){const i=[e,...t];return s&&i.length>s?i.slice(0,-1):i}var R=Symbol(),C=(t,e)=>!t.queryFn&&e?.initialPromise?()=>e.initialPromise:t.queryFn&&t.queryFn!==R?t.queryFn:()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)),w=function(){let t=[],e=0,s=t=>{t()},i=t=>{t()},r=t=>setTimeout(t,0);const n=i=>{e?t.push(i):r((()=>{s(i)}))};return{batch:n=>{let a;e++;try{a=n()}finally{e--,e||(()=>{const e=t;t=[],e.length&&r((()=>{i((()=>{e.for