@mirai/core 0.3.50 → 0.3.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +19 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +103 -306
- package/build/services/Rates/__tests__/__mocks__/rates-response.json +8 -1
- package/build/services/Rates/get.js +14 -2
- package/build/services/Rates/get.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"assistant": false,
|
|
2
3
|
"items": [
|
|
3
4
|
{
|
|
4
5
|
"amenities": [
|
|
@@ -78,6 +79,9 @@
|
|
|
78
79
|
],
|
|
79
80
|
"name": "Habitación Clásica",
|
|
80
81
|
"maxOccupation": 2,
|
|
82
|
+
"media": {
|
|
83
|
+
"immersive3d": ""
|
|
84
|
+
},
|
|
81
85
|
"rates": [
|
|
82
86
|
{
|
|
83
87
|
"amount": [1, 1],
|
|
@@ -201,6 +205,9 @@
|
|
|
201
205
|
],
|
|
202
206
|
"name": "Habitación Superior",
|
|
203
207
|
"maxOccupation": 2,
|
|
208
|
+
"media": {
|
|
209
|
+
"immersive3d": ""
|
|
210
|
+
},
|
|
204
211
|
"rates": [
|
|
205
212
|
{
|
|
206
213
|
"amount": [1, 9],
|
|
@@ -324,6 +331,9 @@
|
|
|
324
331
|
],
|
|
325
332
|
"name": "Habitación Superior - Para personas con movilidad reducida",
|
|
326
333
|
"maxOccupation": 2,
|
|
334
|
+
"media": {
|
|
335
|
+
"immersive3d": ""
|
|
336
|
+
},
|
|
327
337
|
"rates": [
|
|
328
338
|
{
|
|
329
339
|
"amount": [1, 1],
|
|
@@ -447,6 +457,9 @@
|
|
|
447
457
|
],
|
|
448
458
|
"name": "Habitación Superior, Vista de la ciudad",
|
|
449
459
|
"maxOccupation": 2,
|
|
460
|
+
"media": {
|
|
461
|
+
"immersive3d": ""
|
|
462
|
+
},
|
|
450
463
|
"rates": [
|
|
451
464
|
{
|
|
452
465
|
"amount": [1, 7],
|
|
@@ -575,6 +588,9 @@
|
|
|
575
588
|
],
|
|
576
589
|
"name": "Habitación con Balcón",
|
|
577
590
|
"maxOccupation": 2,
|
|
591
|
+
"media": {
|
|
592
|
+
"immersive3d": ""
|
|
593
|
+
},
|
|
578
594
|
"rates": [
|
|
579
595
|
{
|
|
580
596
|
"amount": [1, 2],
|
|
@@ -698,6 +714,9 @@
|
|
|
698
714
|
],
|
|
699
715
|
"name": "Junior Suite - Para personas con movilidad reducida",
|
|
700
716
|
"maxOccupation": 2,
|
|
717
|
+
"media": {
|
|
718
|
+
"immersive3d": ""
|
|
719
|
+
},
|
|
701
720
|
"rates": [
|
|
702
721
|
{
|
|
703
722
|
"amount": [1, 1],
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"assistant": false,
|
|
2
3
|
"items": [
|
|
3
4
|
{
|
|
4
5
|
"amenities": [
|
|
@@ -102,9 +103,7 @@
|
|
|
102
103
|
}
|
|
103
104
|
]
|
|
104
105
|
],
|
|
105
|
-
"bedTypes": [
|
|
106
|
-
1
|
|
107
|
-
],
|
|
106
|
+
"bedTypes": [1],
|
|
108
107
|
"description": "Spacious room with two beds, ideal for long stays, along with all types of comforts and services.",
|
|
109
108
|
"images": [
|
|
110
109
|
{
|
|
@@ -145,12 +144,12 @@
|
|
|
145
144
|
],
|
|
146
145
|
"name": "Deluxe Twin Room",
|
|
147
146
|
"maxOccupation": 2,
|
|
147
|
+
"media": {
|
|
148
|
+
"immersive3d": ""
|
|
149
|
+
},
|
|
148
150
|
"rates": [
|
|
149
151
|
{
|
|
150
|
-
"amount": [
|
|
151
|
-
1,
|
|
152
|
-
5
|
|
153
|
-
],
|
|
152
|
+
"amount": [1, 5],
|
|
154
153
|
"basePrice": 407.4,
|
|
155
154
|
"boardName": "Room only",
|
|
156
155
|
"cancellation": {
|
|
@@ -176,9 +175,7 @@
|
|
|
176
175
|
"value": "07/02/2024"
|
|
177
176
|
}
|
|
178
177
|
],
|
|
179
|
-
"deals": [
|
|
180
|
-
"206539"
|
|
181
|
-
],
|
|
178
|
+
"deals": ["206539"],
|
|
182
179
|
"discount": {
|
|
183
180
|
"percentage": 3,
|
|
184
181
|
"breakdown": [
|
|
@@ -198,10 +195,7 @@
|
|
|
198
195
|
"taxes": 40.74
|
|
199
196
|
},
|
|
200
197
|
{
|
|
201
|
-
"amount": [
|
|
202
|
-
1,
|
|
203
|
-
5
|
|
204
|
-
],
|
|
198
|
+
"amount": [1, 5],
|
|
205
199
|
"basePrice": 420,
|
|
206
200
|
"boardName": "Room only",
|
|
207
201
|
"cancellation": {
|
|
@@ -227,17 +221,13 @@
|
|
|
227
221
|
"value": "07/02/2024"
|
|
228
222
|
}
|
|
229
223
|
],
|
|
230
|
-
"deals": [
|
|
231
|
-
"217946"
|
|
232
|
-
],
|
|
224
|
+
"deals": ["217946"],
|
|
233
225
|
"discount": {
|
|
234
226
|
"percentage": 0,
|
|
235
227
|
"breakdown": []
|
|
236
228
|
},
|
|
237
229
|
"id": "4824--3862--2283b0--0--217946",
|
|
238
|
-
"included": [
|
|
239
|
-
"100% ONLINE PREPAYMENT"
|
|
240
|
-
],
|
|
230
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
241
231
|
"originalPrice": 420,
|
|
242
232
|
"price": 420,
|
|
243
233
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -246,10 +236,7 @@
|
|
|
246
236
|
"taxes": 42
|
|
247
237
|
},
|
|
248
238
|
{
|
|
249
|
-
"amount": [
|
|
250
|
-
1,
|
|
251
|
-
5
|
|
252
|
-
],
|
|
239
|
+
"amount": [1, 5],
|
|
253
240
|
"basePrice": 528,
|
|
254
241
|
"boardName": "Breakfast included",
|
|
255
242
|
"cancellation": {
|
|
@@ -275,17 +262,13 @@
|
|
|
275
262
|
"value": "07/02/2024"
|
|
276
263
|
}
|
|
277
264
|
],
|
|
278
|
-
"deals": [
|
|
279
|
-
"217946"
|
|
280
|
-
],
|
|
265
|
+
"deals": ["217946"],
|
|
281
266
|
"discount": {
|
|
282
267
|
"percentage": 0,
|
|
283
268
|
"breakdown": []
|
|
284
269
|
},
|
|
285
270
|
"id": "4824--3862--2283b0--1--217946",
|
|
286
|
-
"included": [
|
|
287
|
-
"100% ONLINE PREPAYMENT"
|
|
288
|
-
],
|
|
271
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
289
272
|
"originalPrice": 528,
|
|
290
273
|
"price": 528,
|
|
291
274
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -294,10 +277,7 @@
|
|
|
294
277
|
"taxes": 52.8
|
|
295
278
|
},
|
|
296
279
|
{
|
|
297
|
-
"amount": [
|
|
298
|
-
1,
|
|
299
|
-
5
|
|
300
|
-
],
|
|
280
|
+
"amount": [1, 5],
|
|
301
281
|
"basePrice": 800.7,
|
|
302
282
|
"boardName": "Half board",
|
|
303
283
|
"cancellation": {
|
|
@@ -323,17 +303,13 @@
|
|
|
323
303
|
"value": "07/02/2024"
|
|
324
304
|
}
|
|
325
305
|
],
|
|
326
|
-
"deals": [
|
|
327
|
-
"217946"
|
|
328
|
-
],
|
|
306
|
+
"deals": ["217946"],
|
|
329
307
|
"discount": {
|
|
330
308
|
"percentage": 0,
|
|
331
309
|
"breakdown": []
|
|
332
310
|
},
|
|
333
311
|
"id": "4824--3862--2283b0--2--217946",
|
|
334
|
-
"included": [
|
|
335
|
-
"100% ONLINE PREPAYMENT"
|
|
336
|
-
],
|
|
312
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
337
313
|
"originalPrice": 800.7,
|
|
338
314
|
"price": 800.7,
|
|
339
315
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -342,10 +318,7 @@
|
|
|
342
318
|
"taxes": 80.07
|
|
343
319
|
},
|
|
344
320
|
{
|
|
345
|
-
"amount": [
|
|
346
|
-
1,
|
|
347
|
-
5
|
|
348
|
-
],
|
|
321
|
+
"amount": [1, 5],
|
|
349
322
|
"basePrice": 495,
|
|
350
323
|
"boardName": "Room only",
|
|
351
324
|
"cancellation": {
|
|
@@ -371,17 +344,13 @@
|
|
|
371
344
|
"value": "07/02/2024"
|
|
372
345
|
}
|
|
373
346
|
],
|
|
374
|
-
"deals": [
|
|
375
|
-
"206542"
|
|
376
|
-
],
|
|
347
|
+
"deals": ["206542"],
|
|
377
348
|
"discount": {
|
|
378
349
|
"percentage": 0,
|
|
379
350
|
"breakdown": []
|
|
380
351
|
},
|
|
381
352
|
"id": "4824--3862--2283b0--0--206542",
|
|
382
|
-
"included": [
|
|
383
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
384
|
-
],
|
|
353
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
385
354
|
"originalPrice": 495,
|
|
386
355
|
"price": 495,
|
|
387
356
|
"name": "Special Offer, Parking included",
|
|
@@ -390,10 +359,7 @@
|
|
|
390
359
|
"taxes": 49.5
|
|
391
360
|
},
|
|
392
361
|
{
|
|
393
|
-
"amount": [
|
|
394
|
-
1,
|
|
395
|
-
5
|
|
396
|
-
],
|
|
362
|
+
"amount": [1, 5],
|
|
397
363
|
"basePrice": 603,
|
|
398
364
|
"boardName": "Breakfast included",
|
|
399
365
|
"cancellation": {
|
|
@@ -419,17 +385,13 @@
|
|
|
419
385
|
"value": "07/02/2024"
|
|
420
386
|
}
|
|
421
387
|
],
|
|
422
|
-
"deals": [
|
|
423
|
-
"206542"
|
|
424
|
-
],
|
|
388
|
+
"deals": ["206542"],
|
|
425
389
|
"discount": {
|
|
426
390
|
"percentage": 0,
|
|
427
391
|
"breakdown": []
|
|
428
392
|
},
|
|
429
393
|
"id": "4824--3862--2283b0--1--206542",
|
|
430
|
-
"included": [
|
|
431
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
432
|
-
],
|
|
394
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
433
395
|
"originalPrice": 603,
|
|
434
396
|
"price": 603,
|
|
435
397
|
"name": "Special Offer, Parking included",
|
|
@@ -438,10 +400,7 @@
|
|
|
438
400
|
"taxes": 60.3
|
|
439
401
|
},
|
|
440
402
|
{
|
|
441
|
-
"amount": [
|
|
442
|
-
1,
|
|
443
|
-
5
|
|
444
|
-
],
|
|
403
|
+
"amount": [1, 5],
|
|
445
404
|
"basePrice": 875.7,
|
|
446
405
|
"boardName": "Half board",
|
|
447
406
|
"cancellation": {
|
|
@@ -467,17 +426,13 @@
|
|
|
467
426
|
"value": "07/02/2024"
|
|
468
427
|
}
|
|
469
428
|
],
|
|
470
|
-
"deals": [
|
|
471
|
-
"206542"
|
|
472
|
-
],
|
|
429
|
+
"deals": ["206542"],
|
|
473
430
|
"discount": {
|
|
474
431
|
"percentage": 0,
|
|
475
432
|
"breakdown": []
|
|
476
433
|
},
|
|
477
434
|
"id": "4824--3862--2283b0--2--206542",
|
|
478
|
-
"included": [
|
|
479
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
480
|
-
],
|
|
435
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
481
436
|
"originalPrice": 875.7,
|
|
482
437
|
"price": 875.7,
|
|
483
438
|
"name": "Special Offer, Parking included",
|
|
@@ -486,10 +441,7 @@
|
|
|
486
441
|
"taxes": 87.57
|
|
487
442
|
},
|
|
488
443
|
{
|
|
489
|
-
"amount": [
|
|
490
|
-
1,
|
|
491
|
-
5
|
|
492
|
-
],
|
|
444
|
+
"amount": [1, 5],
|
|
493
445
|
"basePrice": 528,
|
|
494
446
|
"boardName": "Breakfast included",
|
|
495
447
|
"cancellation": {
|
|
@@ -530,10 +482,7 @@
|
|
|
530
482
|
"taxes": 52.8
|
|
531
483
|
},
|
|
532
484
|
{
|
|
533
|
-
"amount": [
|
|
534
|
-
1,
|
|
535
|
-
5
|
|
536
|
-
],
|
|
485
|
+
"amount": [1, 5],
|
|
537
486
|
"basePrice": 800.7,
|
|
538
487
|
"boardName": "Half board",
|
|
539
488
|
"cancellation": {
|
|
@@ -683,9 +632,7 @@
|
|
|
683
632
|
}
|
|
684
633
|
]
|
|
685
634
|
],
|
|
686
|
-
"bedTypes": [
|
|
687
|
-
2
|
|
688
|
-
],
|
|
635
|
+
"bedTypes": [2],
|
|
689
636
|
"description": "Ideal for long stays for couples, king size bed. Rooms are exterior rooms with balconies, equipped with all types of comforts and services.",
|
|
690
637
|
"images": [
|
|
691
638
|
{
|
|
@@ -726,12 +673,12 @@
|
|
|
726
673
|
],
|
|
727
674
|
"name": "Deluxe Room",
|
|
728
675
|
"maxOccupation": 2,
|
|
676
|
+
"media": {
|
|
677
|
+
"immersive3d": ""
|
|
678
|
+
},
|
|
729
679
|
"rates": [
|
|
730
680
|
{
|
|
731
|
-
"amount": [
|
|
732
|
-
1,
|
|
733
|
-
5
|
|
734
|
-
],
|
|
681
|
+
"amount": [1, 5],
|
|
735
682
|
"basePrice": 407.4,
|
|
736
683
|
"boardName": "Room only",
|
|
737
684
|
"cancellation": {
|
|
@@ -757,9 +704,7 @@
|
|
|
757
704
|
"value": "07/02/2024"
|
|
758
705
|
}
|
|
759
706
|
],
|
|
760
|
-
"deals": [
|
|
761
|
-
"206539"
|
|
762
|
-
],
|
|
707
|
+
"deals": ["206539"],
|
|
763
708
|
"discount": {
|
|
764
709
|
"percentage": 3,
|
|
765
710
|
"breakdown": [
|
|
@@ -779,10 +724,7 @@
|
|
|
779
724
|
"taxes": 40.74
|
|
780
725
|
},
|
|
781
726
|
{
|
|
782
|
-
"amount": [
|
|
783
|
-
1,
|
|
784
|
-
5
|
|
785
|
-
],
|
|
727
|
+
"amount": [1, 5],
|
|
786
728
|
"basePrice": 420,
|
|
787
729
|
"boardName": "Room only",
|
|
788
730
|
"cancellation": {
|
|
@@ -808,17 +750,13 @@
|
|
|
808
750
|
"value": "07/02/2024"
|
|
809
751
|
}
|
|
810
752
|
],
|
|
811
|
-
"deals": [
|
|
812
|
-
"217946"
|
|
813
|
-
],
|
|
753
|
+
"deals": ["217946"],
|
|
814
754
|
"discount": {
|
|
815
755
|
"percentage": 0,
|
|
816
756
|
"breakdown": []
|
|
817
757
|
},
|
|
818
758
|
"id": "4824--4103--2280b0--0--217946",
|
|
819
|
-
"included": [
|
|
820
|
-
"100% ONLINE PREPAYMENT"
|
|
821
|
-
],
|
|
759
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
822
760
|
"originalPrice": 420,
|
|
823
761
|
"price": 420,
|
|
824
762
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -827,10 +765,7 @@
|
|
|
827
765
|
"taxes": 42
|
|
828
766
|
},
|
|
829
767
|
{
|
|
830
|
-
"amount": [
|
|
831
|
-
1,
|
|
832
|
-
5
|
|
833
|
-
],
|
|
768
|
+
"amount": [1, 5],
|
|
834
769
|
"basePrice": 528,
|
|
835
770
|
"boardName": "Breakfast included",
|
|
836
771
|
"cancellation": {
|
|
@@ -856,17 +791,13 @@
|
|
|
856
791
|
"value": "07/02/2024"
|
|
857
792
|
}
|
|
858
793
|
],
|
|
859
|
-
"deals": [
|
|
860
|
-
"217946"
|
|
861
|
-
],
|
|
794
|
+
"deals": ["217946"],
|
|
862
795
|
"discount": {
|
|
863
796
|
"percentage": 0,
|
|
864
797
|
"breakdown": []
|
|
865
798
|
},
|
|
866
799
|
"id": "4824--4103--2280b0--1--217946",
|
|
867
|
-
"included": [
|
|
868
|
-
"100% ONLINE PREPAYMENT"
|
|
869
|
-
],
|
|
800
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
870
801
|
"originalPrice": 528,
|
|
871
802
|
"price": 528,
|
|
872
803
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -875,10 +806,7 @@
|
|
|
875
806
|
"taxes": 52.8
|
|
876
807
|
},
|
|
877
808
|
{
|
|
878
|
-
"amount": [
|
|
879
|
-
1,
|
|
880
|
-
5
|
|
881
|
-
],
|
|
809
|
+
"amount": [1, 5],
|
|
882
810
|
"basePrice": 800.7,
|
|
883
811
|
"boardName": "Half board",
|
|
884
812
|
"cancellation": {
|
|
@@ -904,17 +832,13 @@
|
|
|
904
832
|
"value": "07/02/2024"
|
|
905
833
|
}
|
|
906
834
|
],
|
|
907
|
-
"deals": [
|
|
908
|
-
"217946"
|
|
909
|
-
],
|
|
835
|
+
"deals": ["217946"],
|
|
910
836
|
"discount": {
|
|
911
837
|
"percentage": 0,
|
|
912
838
|
"breakdown": []
|
|
913
839
|
},
|
|
914
840
|
"id": "4824--4103--2280b0--2--217946",
|
|
915
|
-
"included": [
|
|
916
|
-
"100% ONLINE PREPAYMENT"
|
|
917
|
-
],
|
|
841
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
918
842
|
"originalPrice": 800.7,
|
|
919
843
|
"price": 800.7,
|
|
920
844
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -923,10 +847,7 @@
|
|
|
923
847
|
"taxes": 80.07
|
|
924
848
|
},
|
|
925
849
|
{
|
|
926
|
-
"amount": [
|
|
927
|
-
1,
|
|
928
|
-
5
|
|
929
|
-
],
|
|
850
|
+
"amount": [1, 5],
|
|
930
851
|
"basePrice": 495,
|
|
931
852
|
"boardName": "Room only",
|
|
932
853
|
"cancellation": {
|
|
@@ -952,17 +873,13 @@
|
|
|
952
873
|
"value": "07/02/2024"
|
|
953
874
|
}
|
|
954
875
|
],
|
|
955
|
-
"deals": [
|
|
956
|
-
"206542"
|
|
957
|
-
],
|
|
876
|
+
"deals": ["206542"],
|
|
958
877
|
"discount": {
|
|
959
878
|
"percentage": 0,
|
|
960
879
|
"breakdown": []
|
|
961
880
|
},
|
|
962
881
|
"id": "4824--4103--2280b0--0--206542",
|
|
963
|
-
"included": [
|
|
964
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
965
|
-
],
|
|
882
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
966
883
|
"originalPrice": 495,
|
|
967
884
|
"price": 495,
|
|
968
885
|
"name": "Special Offer, Parking included",
|
|
@@ -971,10 +888,7 @@
|
|
|
971
888
|
"taxes": 49.5
|
|
972
889
|
},
|
|
973
890
|
{
|
|
974
|
-
"amount": [
|
|
975
|
-
1,
|
|
976
|
-
5
|
|
977
|
-
],
|
|
891
|
+
"amount": [1, 5],
|
|
978
892
|
"basePrice": 603,
|
|
979
893
|
"boardName": "Breakfast included",
|
|
980
894
|
"cancellation": {
|
|
@@ -1000,17 +914,13 @@
|
|
|
1000
914
|
"value": "07/02/2024"
|
|
1001
915
|
}
|
|
1002
916
|
],
|
|
1003
|
-
"deals": [
|
|
1004
|
-
"206542"
|
|
1005
|
-
],
|
|
917
|
+
"deals": ["206542"],
|
|
1006
918
|
"discount": {
|
|
1007
919
|
"percentage": 0,
|
|
1008
920
|
"breakdown": []
|
|
1009
921
|
},
|
|
1010
922
|
"id": "4824--4103--2280b0--1--206542",
|
|
1011
|
-
"included": [
|
|
1012
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
1013
|
-
],
|
|
923
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
1014
924
|
"originalPrice": 603,
|
|
1015
925
|
"price": 603,
|
|
1016
926
|
"name": "Special Offer, Parking included",
|
|
@@ -1019,10 +929,7 @@
|
|
|
1019
929
|
"taxes": 60.3
|
|
1020
930
|
},
|
|
1021
931
|
{
|
|
1022
|
-
"amount": [
|
|
1023
|
-
1,
|
|
1024
|
-
5
|
|
1025
|
-
],
|
|
932
|
+
"amount": [1, 5],
|
|
1026
933
|
"basePrice": 875.7,
|
|
1027
934
|
"boardName": "Half board",
|
|
1028
935
|
"cancellation": {
|
|
@@ -1048,17 +955,13 @@
|
|
|
1048
955
|
"value": "07/02/2024"
|
|
1049
956
|
}
|
|
1050
957
|
],
|
|
1051
|
-
"deals": [
|
|
1052
|
-
"206542"
|
|
1053
|
-
],
|
|
958
|
+
"deals": ["206542"],
|
|
1054
959
|
"discount": {
|
|
1055
960
|
"percentage": 0,
|
|
1056
961
|
"breakdown": []
|
|
1057
962
|
},
|
|
1058
963
|
"id": "4824--4103--2280b0--2--206542",
|
|
1059
|
-
"included": [
|
|
1060
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
1061
|
-
],
|
|
964
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
1062
965
|
"originalPrice": 875.7,
|
|
1063
966
|
"price": 875.7,
|
|
1064
967
|
"name": "Special Offer, Parking included",
|
|
@@ -1067,10 +970,7 @@
|
|
|
1067
970
|
"taxes": 87.57
|
|
1068
971
|
},
|
|
1069
972
|
{
|
|
1070
|
-
"amount": [
|
|
1071
|
-
1,
|
|
1072
|
-
5
|
|
1073
|
-
],
|
|
973
|
+
"amount": [1, 5],
|
|
1074
974
|
"basePrice": 528,
|
|
1075
975
|
"boardName": "Breakfast included",
|
|
1076
976
|
"cancellation": {
|
|
@@ -1111,10 +1011,7 @@
|
|
|
1111
1011
|
"taxes": 52.8
|
|
1112
1012
|
},
|
|
1113
1013
|
{
|
|
1114
|
-
"amount": [
|
|
1115
|
-
1,
|
|
1116
|
-
5
|
|
1117
|
-
],
|
|
1014
|
+
"amount": [1, 5],
|
|
1118
1015
|
"basePrice": 800.7,
|
|
1119
1016
|
"boardName": "Half board",
|
|
1120
1017
|
"cancellation": {
|
|
@@ -1279,9 +1176,7 @@
|
|
|
1279
1176
|
}
|
|
1280
1177
|
]
|
|
1281
1178
|
],
|
|
1282
|
-
"bedTypes": [
|
|
1283
|
-
2
|
|
1284
|
-
],
|
|
1179
|
+
"bedTypes": [2],
|
|
1285
1180
|
"description": "Loft room with exterior balcony, with a view over the rooftops of Madrid. Ideal for romantic weekends and long stays in an enchanting place in the heart of Madrid.",
|
|
1286
1181
|
"images": [
|
|
1287
1182
|
{
|
|
@@ -1337,12 +1232,12 @@
|
|
|
1337
1232
|
],
|
|
1338
1233
|
"name": "Penthouse with Terrace (one queen bed)",
|
|
1339
1234
|
"maxOccupation": 2,
|
|
1235
|
+
"media": {
|
|
1236
|
+
"immersive3d": ""
|
|
1237
|
+
},
|
|
1340
1238
|
"rates": [
|
|
1341
1239
|
{
|
|
1342
|
-
"amount": [
|
|
1343
|
-
1,
|
|
1344
|
-
2
|
|
1345
|
-
],
|
|
1240
|
+
"amount": [1, 2],
|
|
1346
1241
|
"basePrice": 630,
|
|
1347
1242
|
"boardName": "Room only",
|
|
1348
1243
|
"cancellation": {
|
|
@@ -1383,10 +1278,7 @@
|
|
|
1383
1278
|
"taxes": 63
|
|
1384
1279
|
},
|
|
1385
1280
|
{
|
|
1386
|
-
"amount": [
|
|
1387
|
-
1,
|
|
1388
|
-
2
|
|
1389
|
-
],
|
|
1281
|
+
"amount": [1, 2],
|
|
1390
1282
|
"basePrice": 738,
|
|
1391
1283
|
"boardName": "Breakfast included",
|
|
1392
1284
|
"cancellation": {
|
|
@@ -1427,10 +1319,7 @@
|
|
|
1427
1319
|
"taxes": 73.8
|
|
1428
1320
|
},
|
|
1429
1321
|
{
|
|
1430
|
-
"amount": [
|
|
1431
|
-
1,
|
|
1432
|
-
2
|
|
1433
|
-
],
|
|
1322
|
+
"amount": [1, 2],
|
|
1434
1323
|
"basePrice": 928.92,
|
|
1435
1324
|
"boardName": "Half board",
|
|
1436
1325
|
"cancellation": {
|
|
@@ -1471,10 +1360,7 @@
|
|
|
1471
1360
|
"taxes": 92.89
|
|
1472
1361
|
},
|
|
1473
1362
|
{
|
|
1474
|
-
"amount": [
|
|
1475
|
-
1,
|
|
1476
|
-
2
|
|
1477
|
-
],
|
|
1363
|
+
"amount": [1, 2],
|
|
1478
1364
|
"basePrice": 630,
|
|
1479
1365
|
"boardName": "Room only",
|
|
1480
1366
|
"cancellation": {
|
|
@@ -1500,17 +1386,13 @@
|
|
|
1500
1386
|
"value": "07/02/2024"
|
|
1501
1387
|
}
|
|
1502
1388
|
],
|
|
1503
|
-
"deals": [
|
|
1504
|
-
"217946"
|
|
1505
|
-
],
|
|
1389
|
+
"deals": ["217946"],
|
|
1506
1390
|
"discount": {
|
|
1507
1391
|
"percentage": 0,
|
|
1508
1392
|
"breakdown": []
|
|
1509
1393
|
},
|
|
1510
1394
|
"id": "4824--3842--2281b0--0--217946",
|
|
1511
|
-
"included": [
|
|
1512
|
-
"100% ONLINE PREPAYMENT"
|
|
1513
|
-
],
|
|
1395
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
1514
1396
|
"originalPrice": 630,
|
|
1515
1397
|
"price": 630,
|
|
1516
1398
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -1519,10 +1401,7 @@
|
|
|
1519
1401
|
"taxes": 63
|
|
1520
1402
|
},
|
|
1521
1403
|
{
|
|
1522
|
-
"amount": [
|
|
1523
|
-
1,
|
|
1524
|
-
2
|
|
1525
|
-
],
|
|
1404
|
+
"amount": [1, 2],
|
|
1526
1405
|
"basePrice": 738,
|
|
1527
1406
|
"boardName": "Breakfast included",
|
|
1528
1407
|
"cancellation": {
|
|
@@ -1548,17 +1427,13 @@
|
|
|
1548
1427
|
"value": "07/02/2024"
|
|
1549
1428
|
}
|
|
1550
1429
|
],
|
|
1551
|
-
"deals": [
|
|
1552
|
-
"217946"
|
|
1553
|
-
],
|
|
1430
|
+
"deals": ["217946"],
|
|
1554
1431
|
"discount": {
|
|
1555
1432
|
"percentage": 0,
|
|
1556
1433
|
"breakdown": []
|
|
1557
1434
|
},
|
|
1558
1435
|
"id": "4824--3842--2281b0--1--217946",
|
|
1559
|
-
"included": [
|
|
1560
|
-
"100% ONLINE PREPAYMENT"
|
|
1561
|
-
],
|
|
1436
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
1562
1437
|
"originalPrice": 738,
|
|
1563
1438
|
"price": 738,
|
|
1564
1439
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -1567,10 +1442,7 @@
|
|
|
1567
1442
|
"taxes": 73.8
|
|
1568
1443
|
},
|
|
1569
1444
|
{
|
|
1570
|
-
"amount": [
|
|
1571
|
-
1,
|
|
1572
|
-
2
|
|
1573
|
-
],
|
|
1445
|
+
"amount": [1, 2],
|
|
1574
1446
|
"basePrice": 928.92,
|
|
1575
1447
|
"boardName": "Half board",
|
|
1576
1448
|
"cancellation": {
|
|
@@ -1596,17 +1468,13 @@
|
|
|
1596
1468
|
"value": "07/02/2024"
|
|
1597
1469
|
}
|
|
1598
1470
|
],
|
|
1599
|
-
"deals": [
|
|
1600
|
-
"217946"
|
|
1601
|
-
],
|
|
1471
|
+
"deals": ["217946"],
|
|
1602
1472
|
"discount": {
|
|
1603
1473
|
"percentage": 0,
|
|
1604
1474
|
"breakdown": []
|
|
1605
1475
|
},
|
|
1606
1476
|
"id": "4824--3842--2281b0--2--217946",
|
|
1607
|
-
"included": [
|
|
1608
|
-
"100% ONLINE PREPAYMENT"
|
|
1609
|
-
],
|
|
1477
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
1610
1478
|
"originalPrice": 928.92,
|
|
1611
1479
|
"price": 928.92,
|
|
1612
1480
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -1615,10 +1483,7 @@
|
|
|
1615
1483
|
"taxes": 92.89
|
|
1616
1484
|
},
|
|
1617
1485
|
{
|
|
1618
|
-
"amount": [
|
|
1619
|
-
1,
|
|
1620
|
-
2
|
|
1621
|
-
],
|
|
1486
|
+
"amount": [1, 2],
|
|
1622
1487
|
"basePrice": 705,
|
|
1623
1488
|
"boardName": "Room only",
|
|
1624
1489
|
"cancellation": {
|
|
@@ -1644,17 +1509,13 @@
|
|
|
1644
1509
|
"value": "07/02/2024"
|
|
1645
1510
|
}
|
|
1646
1511
|
],
|
|
1647
|
-
"deals": [
|
|
1648
|
-
"206542"
|
|
1649
|
-
],
|
|
1512
|
+
"deals": ["206542"],
|
|
1650
1513
|
"discount": {
|
|
1651
1514
|
"percentage": 0,
|
|
1652
1515
|
"breakdown": []
|
|
1653
1516
|
},
|
|
1654
1517
|
"id": "4824--3842--2281b0--0--206542",
|
|
1655
|
-
"included": [
|
|
1656
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
1657
|
-
],
|
|
1518
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
1658
1519
|
"originalPrice": 705,
|
|
1659
1520
|
"price": 705,
|
|
1660
1521
|
"name": "Special Offer, Parking included",
|
|
@@ -1663,10 +1524,7 @@
|
|
|
1663
1524
|
"taxes": 70.5
|
|
1664
1525
|
},
|
|
1665
1526
|
{
|
|
1666
|
-
"amount": [
|
|
1667
|
-
1,
|
|
1668
|
-
2
|
|
1669
|
-
],
|
|
1527
|
+
"amount": [1, 2],
|
|
1670
1528
|
"basePrice": 813,
|
|
1671
1529
|
"boardName": "Breakfast included",
|
|
1672
1530
|
"cancellation": {
|
|
@@ -1692,17 +1550,13 @@
|
|
|
1692
1550
|
"value": "07/02/2024"
|
|
1693
1551
|
}
|
|
1694
1552
|
],
|
|
1695
|
-
"deals": [
|
|
1696
|
-
"206542"
|
|
1697
|
-
],
|
|
1553
|
+
"deals": ["206542"],
|
|
1698
1554
|
"discount": {
|
|
1699
1555
|
"percentage": 0,
|
|
1700
1556
|
"breakdown": []
|
|
1701
1557
|
},
|
|
1702
1558
|
"id": "4824--3842--2281b0--1--206542",
|
|
1703
|
-
"included": [
|
|
1704
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
1705
|
-
],
|
|
1559
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
1706
1560
|
"originalPrice": 813,
|
|
1707
1561
|
"price": 813,
|
|
1708
1562
|
"name": "Special Offer, Parking included",
|
|
@@ -1711,10 +1565,7 @@
|
|
|
1711
1565
|
"taxes": 81.3
|
|
1712
1566
|
},
|
|
1713
1567
|
{
|
|
1714
|
-
"amount": [
|
|
1715
|
-
1,
|
|
1716
|
-
2
|
|
1717
|
-
],
|
|
1568
|
+
"amount": [1, 2],
|
|
1718
1569
|
"basePrice": 1003.92,
|
|
1719
1570
|
"boardName": "Half board",
|
|
1720
1571
|
"cancellation": {
|
|
@@ -1740,17 +1591,13 @@
|
|
|
1740
1591
|
"value": "07/02/2024"
|
|
1741
1592
|
}
|
|
1742
1593
|
],
|
|
1743
|
-
"deals": [
|
|
1744
|
-
"206542"
|
|
1745
|
-
],
|
|
1594
|
+
"deals": ["206542"],
|
|
1746
1595
|
"discount": {
|
|
1747
1596
|
"percentage": 0,
|
|
1748
1597
|
"breakdown": []
|
|
1749
1598
|
},
|
|
1750
1599
|
"id": "4824--3842--2281b0--2--206542",
|
|
1751
|
-
"included": [
|
|
1752
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
1753
|
-
],
|
|
1600
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
1754
1601
|
"originalPrice": 1003.92,
|
|
1755
1602
|
"price": 1003.92,
|
|
1756
1603
|
"name": "Special Offer, Parking included",
|
|
@@ -1883,9 +1730,7 @@
|
|
|
1883
1730
|
}
|
|
1884
1731
|
]
|
|
1885
1732
|
],
|
|
1886
|
-
"bedTypes": [
|
|
1887
|
-
2
|
|
1888
|
-
],
|
|
1733
|
+
"bedTypes": [2],
|
|
1889
1734
|
"description": "These exclusive rooms are a step up from standard rooms, each with a balcony overlooking one of the iconic areas in the city of Madrid.",
|
|
1890
1735
|
"images": [
|
|
1891
1736
|
{
|
|
@@ -1941,12 +1786,12 @@
|
|
|
1941
1786
|
],
|
|
1942
1787
|
"name": "Premium Room with Balcony",
|
|
1943
1788
|
"maxOccupation": 2,
|
|
1789
|
+
"media": {
|
|
1790
|
+
"immersive3d": ""
|
|
1791
|
+
},
|
|
1944
1792
|
"rates": [
|
|
1945
1793
|
{
|
|
1946
|
-
"amount": [
|
|
1947
|
-
1,
|
|
1948
|
-
3
|
|
1949
|
-
],
|
|
1794
|
+
"amount": [1, 3],
|
|
1950
1795
|
"basePrice": 645,
|
|
1951
1796
|
"boardName": "Room only",
|
|
1952
1797
|
"cancellation": {
|
|
@@ -1987,10 +1832,7 @@
|
|
|
1987
1832
|
"taxes": 64.5
|
|
1988
1833
|
},
|
|
1989
1834
|
{
|
|
1990
|
-
"amount": [
|
|
1991
|
-
1,
|
|
1992
|
-
3
|
|
1993
|
-
],
|
|
1835
|
+
"amount": [1, 3],
|
|
1994
1836
|
"basePrice": 753,
|
|
1995
1837
|
"boardName": "Breakfast included",
|
|
1996
1838
|
"cancellation": {
|
|
@@ -2031,10 +1873,7 @@
|
|
|
2031
1873
|
"taxes": 75.3
|
|
2032
1874
|
},
|
|
2033
1875
|
{
|
|
2034
|
-
"amount": [
|
|
2035
|
-
1,
|
|
2036
|
-
3
|
|
2037
|
-
],
|
|
1876
|
+
"amount": [1, 3],
|
|
2038
1877
|
"basePrice": 943.92,
|
|
2039
1878
|
"boardName": "Half board",
|
|
2040
1879
|
"cancellation": {
|
|
@@ -2075,10 +1914,7 @@
|
|
|
2075
1914
|
"taxes": 94.39
|
|
2076
1915
|
},
|
|
2077
1916
|
{
|
|
2078
|
-
"amount": [
|
|
2079
|
-
1,
|
|
2080
|
-
3
|
|
2081
|
-
],
|
|
1917
|
+
"amount": [1, 3],
|
|
2082
1918
|
"basePrice": 645,
|
|
2083
1919
|
"boardName": "Room only",
|
|
2084
1920
|
"cancellation": {
|
|
@@ -2104,17 +1940,13 @@
|
|
|
2104
1940
|
"value": "07/02/2024"
|
|
2105
1941
|
}
|
|
2106
1942
|
],
|
|
2107
|
-
"deals": [
|
|
2108
|
-
"217946"
|
|
2109
|
-
],
|
|
1943
|
+
"deals": ["217946"],
|
|
2110
1944
|
"discount": {
|
|
2111
1945
|
"percentage": 0,
|
|
2112
1946
|
"breakdown": []
|
|
2113
1947
|
},
|
|
2114
1948
|
"id": "4824--9098--40590b0--0--217946",
|
|
2115
|
-
"included": [
|
|
2116
|
-
"100% ONLINE PREPAYMENT"
|
|
2117
|
-
],
|
|
1949
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
2118
1950
|
"originalPrice": 645,
|
|
2119
1951
|
"price": 645,
|
|
2120
1952
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -2123,10 +1955,7 @@
|
|
|
2123
1955
|
"taxes": 64.5
|
|
2124
1956
|
},
|
|
2125
1957
|
{
|
|
2126
|
-
"amount": [
|
|
2127
|
-
1,
|
|
2128
|
-
3
|
|
2129
|
-
],
|
|
1958
|
+
"amount": [1, 3],
|
|
2130
1959
|
"basePrice": 753,
|
|
2131
1960
|
"boardName": "Breakfast included",
|
|
2132
1961
|
"cancellation": {
|
|
@@ -2152,17 +1981,13 @@
|
|
|
2152
1981
|
"value": "07/02/2024"
|
|
2153
1982
|
}
|
|
2154
1983
|
],
|
|
2155
|
-
"deals": [
|
|
2156
|
-
"217946"
|
|
2157
|
-
],
|
|
1984
|
+
"deals": ["217946"],
|
|
2158
1985
|
"discount": {
|
|
2159
1986
|
"percentage": 0,
|
|
2160
1987
|
"breakdown": []
|
|
2161
1988
|
},
|
|
2162
1989
|
"id": "4824--9098--40590b0--1--217946",
|
|
2163
|
-
"included": [
|
|
2164
|
-
"100% ONLINE PREPAYMENT"
|
|
2165
|
-
],
|
|
1990
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
2166
1991
|
"originalPrice": 753,
|
|
2167
1992
|
"price": 753,
|
|
2168
1993
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -2171,10 +1996,7 @@
|
|
|
2171
1996
|
"taxes": 75.3
|
|
2172
1997
|
},
|
|
2173
1998
|
{
|
|
2174
|
-
"amount": [
|
|
2175
|
-
1,
|
|
2176
|
-
3
|
|
2177
|
-
],
|
|
1999
|
+
"amount": [1, 3],
|
|
2178
2000
|
"basePrice": 943.92,
|
|
2179
2001
|
"boardName": "Half board",
|
|
2180
2002
|
"cancellation": {
|
|
@@ -2200,17 +2022,13 @@
|
|
|
2200
2022
|
"value": "07/02/2024"
|
|
2201
2023
|
}
|
|
2202
2024
|
],
|
|
2203
|
-
"deals": [
|
|
2204
|
-
"217946"
|
|
2205
|
-
],
|
|
2025
|
+
"deals": ["217946"],
|
|
2206
2026
|
"discount": {
|
|
2207
2027
|
"percentage": 0,
|
|
2208
2028
|
"breakdown": []
|
|
2209
2029
|
},
|
|
2210
2030
|
"id": "4824--9098--40590b0--2--217946",
|
|
2211
|
-
"included": [
|
|
2212
|
-
"100% ONLINE PREPAYMENT"
|
|
2213
|
-
],
|
|
2031
|
+
"included": ["100% ONLINE PREPAYMENT"],
|
|
2214
2032
|
"originalPrice": 943.92,
|
|
2215
2033
|
"price": 943.92,
|
|
2216
2034
|
"name": "Flexible Rate, prepayment option",
|
|
@@ -2219,10 +2037,7 @@
|
|
|
2219
2037
|
"taxes": 94.39
|
|
2220
2038
|
},
|
|
2221
2039
|
{
|
|
2222
|
-
"amount": [
|
|
2223
|
-
1,
|
|
2224
|
-
3
|
|
2225
|
-
],
|
|
2040
|
+
"amount": [1, 3],
|
|
2226
2041
|
"basePrice": 720,
|
|
2227
2042
|
"boardName": "Room only",
|
|
2228
2043
|
"cancellation": {
|
|
@@ -2248,17 +2063,13 @@
|
|
|
2248
2063
|
"value": "07/02/2024"
|
|
2249
2064
|
}
|
|
2250
2065
|
],
|
|
2251
|
-
"deals": [
|
|
2252
|
-
"206542"
|
|
2253
|
-
],
|
|
2066
|
+
"deals": ["206542"],
|
|
2254
2067
|
"discount": {
|
|
2255
2068
|
"percentage": 0,
|
|
2256
2069
|
"breakdown": []
|
|
2257
2070
|
},
|
|
2258
2071
|
"id": "4824--9098--40590b0--0--206542",
|
|
2259
|
-
"included": [
|
|
2260
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
2261
|
-
],
|
|
2072
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
2262
2073
|
"originalPrice": 720,
|
|
2263
2074
|
"price": 720,
|
|
2264
2075
|
"name": "Special Offer, Parking included",
|
|
@@ -2267,10 +2078,7 @@
|
|
|
2267
2078
|
"taxes": 72
|
|
2268
2079
|
},
|
|
2269
2080
|
{
|
|
2270
|
-
"amount": [
|
|
2271
|
-
1,
|
|
2272
|
-
3
|
|
2273
|
-
],
|
|
2081
|
+
"amount": [1, 3],
|
|
2274
2082
|
"basePrice": 828,
|
|
2275
2083
|
"boardName": "Breakfast included",
|
|
2276
2084
|
"cancellation": {
|
|
@@ -2296,17 +2104,13 @@
|
|
|
2296
2104
|
"value": "07/02/2024"
|
|
2297
2105
|
}
|
|
2298
2106
|
],
|
|
2299
|
-
"deals": [
|
|
2300
|
-
"206542"
|
|
2301
|
-
],
|
|
2107
|
+
"deals": ["206542"],
|
|
2302
2108
|
"discount": {
|
|
2303
2109
|
"percentage": 0,
|
|
2304
2110
|
"breakdown": []
|
|
2305
2111
|
},
|
|
2306
2112
|
"id": "4824--9098--40590b0--1--206542",
|
|
2307
|
-
"included": [
|
|
2308
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
2309
|
-
],
|
|
2113
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
2310
2114
|
"originalPrice": 828,
|
|
2311
2115
|
"price": 828,
|
|
2312
2116
|
"name": "Special Offer, Parking included",
|
|
@@ -2315,10 +2119,7 @@
|
|
|
2315
2119
|
"taxes": 82.8
|
|
2316
2120
|
},
|
|
2317
2121
|
{
|
|
2318
|
-
"amount": [
|
|
2319
|
-
1,
|
|
2320
|
-
3
|
|
2321
|
-
],
|
|
2122
|
+
"amount": [1, 3],
|
|
2322
2123
|
"basePrice": 1018.92,
|
|
2323
2124
|
"boardName": "Half board",
|
|
2324
2125
|
"cancellation": {
|
|
@@ -2344,17 +2145,13 @@
|
|
|
2344
2145
|
"value": "07/02/2024"
|
|
2345
2146
|
}
|
|
2346
2147
|
],
|
|
2347
|
-
"deals": [
|
|
2348
|
-
"206542"
|
|
2349
|
-
],
|
|
2148
|
+
"deals": ["206542"],
|
|
2350
2149
|
"discount": {
|
|
2351
2150
|
"percentage": 0,
|
|
2352
2151
|
"breakdown": []
|
|
2353
2152
|
},
|
|
2354
2153
|
"id": "4824--9098--40590b0--2--206542",
|
|
2355
|
-
"included": [
|
|
2356
|
-
"SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"
|
|
2357
|
-
],
|
|
2154
|
+
"included": ["SPECIAL PRICE FOR THE PARKING : 25 EUR +10% TAXES"],
|
|
2358
2155
|
"originalPrice": 1018.92,
|
|
2359
2156
|
"price": 1018.92,
|
|
2360
2157
|
"name": "Special Offer, Parking included",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"assistant": false,
|
|
2
3
|
"items": [
|
|
3
4
|
{
|
|
4
5
|
"amenities": [],
|
|
@@ -45,6 +46,9 @@
|
|
|
45
46
|
],
|
|
46
47
|
"name": "Double/Twin Comfort Room",
|
|
47
48
|
"maxOccupation": 2,
|
|
49
|
+
"media": {
|
|
50
|
+
"immersive3d": ""
|
|
51
|
+
},
|
|
48
52
|
"rates": [
|
|
49
53
|
{
|
|
50
54
|
"amount": [1, 1],
|
|
@@ -333,6 +337,9 @@
|
|
|
333
337
|
],
|
|
334
338
|
"name": "Superior Double Room",
|
|
335
339
|
"maxOccupation": 2,
|
|
340
|
+
"media": {
|
|
341
|
+
"immersive3d": ""
|
|
342
|
+
},
|
|
336
343
|
"rates": [
|
|
337
344
|
{
|
|
338
345
|
"amount": [1, 1],
|
|
@@ -461,5 +468,5 @@
|
|
|
461
468
|
],
|
|
462
469
|
"size": "25 m²"
|
|
463
470
|
}
|
|
464
|
-
]
|
|
471
|
+
]
|
|
465
472
|
}
|
|
@@ -65,8 +65,15 @@ const get = function () {
|
|
|
65
65
|
} = response;
|
|
66
66
|
const currency = userCurrency || hotelCurrency;
|
|
67
67
|
await _services.ServiceCurrency.exchange(currency);
|
|
68
|
+
const items = Object.values(roomTypes);
|
|
68
69
|
resolve({
|
|
69
|
-
|
|
70
|
+
assistant: items.some(function () {
|
|
71
|
+
let {
|
|
72
|
+
occupationOptions: options = {}
|
|
73
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
74
|
+
return Object.keys(options).length > 1;
|
|
75
|
+
}),
|
|
76
|
+
items: items.map(function () {
|
|
70
77
|
let {
|
|
71
78
|
amountAvailable: availability,
|
|
72
79
|
name,
|
|
@@ -78,6 +85,7 @@ const get = function () {
|
|
|
78
85
|
description,
|
|
79
86
|
roomTypeInfo: {
|
|
80
87
|
bedDistributions: bedType = [],
|
|
88
|
+
galleryMedia: media,
|
|
81
89
|
photos,
|
|
82
90
|
roomSize: size
|
|
83
91
|
} = {}
|
|
@@ -88,7 +96,7 @@ const get = function () {
|
|
|
88
96
|
totalChildren: children = 0
|
|
89
97
|
} = {},
|
|
90
98
|
rates: occupationRates
|
|
91
|
-
} = Object.values(occupationOptions)[0];
|
|
99
|
+
} = Object.values(occupationOptions)[0] || {};
|
|
92
100
|
Object.values(occupationRates).forEach(function () {
|
|
93
101
|
let {
|
|
94
102
|
boardOptions: boards,
|
|
@@ -215,6 +223,10 @@ const get = function () {
|
|
|
215
223
|
}),
|
|
216
224
|
name,
|
|
217
225
|
maxOccupation: adults + children,
|
|
226
|
+
media: media ? {
|
|
227
|
+
immersive3d: media.url3D,
|
|
228
|
+
video: media.video
|
|
229
|
+
} : undefined,
|
|
218
230
|
rates,
|
|
219
231
|
size: size ? "".concat(size, " ").concat(_constants.UNIT[unit].size) : undefined
|
|
220
232
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","DOUBLE","SINGLE","BED_TYPE","KEY_HASH","get","clubDiscount","applyClubDiscount","currency","userCurrency","locale","session","others","arguments","length","undefined","Promise","resolve","reject","idtokenprovider","id","checkin","nights","params","Object","entries","accessClubToken","authorization","cid","sha1","concat","lang","split","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","currencyCode","hotelCurrency","measureUnit","unit","roomTypes","taxesInformation","vatIncluded","taxes","ServiceCurrency","exchange","items","values","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","rates","description","roomTypeInfo","bedDistributions","bedType","photos","roomSize","size","occupationQuantities","numAdults","adults","totalChildren","children","occupationRates","forEach","boardOptions","boards","cancellationPolicyDeadline","cancelEnd","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","includedList","included","paymentText","paymentConditions","restrictions","boardGroupName","boardName","detail","discountPricesBefore","discounts","maxRoomsPerReservation","max","minRoomsPerReservation","min","offersApplied","deals","originalAvgPrice","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeTotal","promoCode","clubTotal","club","offerTotal","deal","price","originalPrice","Math","withTaxes","original","push","amount","basePrice","normalizePrice","cancellation","hint","trim","title","text","dayPrice","getPrice","days","dayStandardFormat","offerId","priceWithoutTaxes","priceWithTaxes","discount","parseDiscount","Set","flat","slice","amenities","parseAmenities","bedDisposition","type","BED_DISPOSITION","bedTypes","reduce","next","includes","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","maxOccupation","UNIT","replace","exports"],"sources":["../../../src/services/Rates/get.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { BED_DISPOSITION, BED_TYPE, UNIT } from './constants';\nimport { getPrice, normalizePrice, parseAmenities, parseDiscount } from './helpers';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nconst KEY_HASH = 'm14357';\n\nexport const get = ({\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n locale,\n session = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const { idtokenprovider: id, checkin, nights } = others;\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: session.authorization,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n lang: locale.split('-')[0],\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n //TODO: back have to change the endpoint for don`t have remove this headers\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const {\n currencyCode: hotelCurrency,\n measureUnit: unit,\n roomTypes,\n taxesInformation,\n vatIncluded: taxes,\n } = response;\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n resolve({\n items: Object.values(roomTypes).map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const rates = [];\n const { description, roomTypeInfo: { bedDistributions: bedType = [], photos, roomSize: size } = {} } = info;\n const {\n occupationQuantities: { numAdults: adults = 0, totalChildren: children = 0 } = {},\n rates: occupationRates,\n } = Object.values(occupationOptions)[0];\n\n Object.values(occupationRates).forEach(\n ({\n boardOptions: boards,\n cancellationPolicyDeadline: cancelEnd,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n includedList: included,\n name,\n paymentText: paymentConditions,\n restrictions,\n } = {}) => {\n Object.values(boards).forEach(\n ({\n boardGroupName: boardName,\n detail,\n discountPricesBefore: discounts = {},\n id,\n maxRoomsPerReservation: max,\n minRoomsPerReservation: min,\n offersApplied: deals,\n originalAvgPrice,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n } = {}) => {\n const { clientCodeTotal: promoCode, clubTotal: club, offerTotal: deal } = discounts;\n const price = taxes ? totalPrice : totalPriceOriginal;\n const originalPrice =\n (taxes\n ? Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0)\n : Math.max(deal?.original || 0, club?.original || 0, promoCode?.original || 0)) || price;\n\n rates.push({\n amount: [min, availability < max ? availability : max],\n basePrice: normalizePrice(totalPriceOriginal, currency),\n boardName,\n cancellation: {\n hint: `${cancelName} ${cancelEnd ? cancelEnd : ''}`.trim(),\n title: cancelTitle,\n text: cancelText,\n },\n dayPrice: getPrice({\n currency,\n hotelCurrency,\n price: taxes ? withTaxesAvgPrice : originalAvgPrice,\n }),\n days: detail.map(\n ({\n dayStandardFormat: value,\n offerId: deal,\n priceWithoutTaxes: basePrice,\n priceWithTaxes: price,\n } = {}) => ({\n deal,\n price: getPrice({ currency, hotelCurrency, price: taxes ? price : basePrice }),\n value,\n }),\n ),\n deals,\n discount: parseDiscount({\n currency,\n hotelCurrency,\n ...discounts,\n originalPrice,\n taxes,\n totalPrice: price,\n }),\n id,\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({\n currency,\n hotelCurrency,\n price: price + (taxes ? localTaxes : 0),\n }),\n name,\n paymentConditions,\n restrictions,\n taxes: !taxes\n ? getPrice({ currency, hotelCurrency, price: totalPrice - totalPriceOriginal + localTaxes })\n : undefined,\n });\n },\n );\n },\n );\n\n return {\n amenities: parseAmenities(info),\n availability,\n bedDisposition: bedType.map((type) => BED_DISPOSITION[type]),\n bedTypes: bedType.reduce((result, next) => {\n BED_DISPOSITION[next].forEach(({ amount, type } = {}) => {\n if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;\n });\n\n return result;\n }, []),\n description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n maxOccupation: adults + children,\n rates,\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n ),\n taxes: !taxes ? taxesInformation.replace(/\\r?\\n|\\r/g, '') : undefined,\n });\n });\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","DOUBLE","SINGLE","BED_TYPE","KEY_HASH","get","clubDiscount","applyClubDiscount","currency","userCurrency","locale","session","others","arguments","length","undefined","Promise","resolve","reject","idtokenprovider","id","checkin","nights","params","Object","entries","accessClubToken","authorization","cid","sha1","concat","lang","split","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","currencyCode","hotelCurrency","measureUnit","unit","roomTypes","taxesInformation","vatIncluded","taxes","ServiceCurrency","exchange","items","values","assistant","some","occupationOptions","options","keys","map","amountAvailable","availability","name","newInfoRoom","info","rates","description","roomTypeInfo","bedDistributions","bedType","galleryMedia","media","photos","roomSize","size","occupationQuantities","numAdults","adults","totalChildren","children","occupationRates","forEach","boardOptions","boards","cancellationPolicyDeadline","cancelEnd","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","includedList","included","paymentText","paymentConditions","restrictions","boardGroupName","boardName","detail","discountPricesBefore","discounts","maxRoomsPerReservation","max","minRoomsPerReservation","min","offersApplied","deals","originalAvgPrice","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeTotal","promoCode","clubTotal","club","offerTotal","deal","price","originalPrice","Math","withTaxes","original","push","amount","basePrice","normalizePrice","cancellation","hint","trim","title","text","dayPrice","getPrice","days","dayStandardFormat","offerId","priceWithoutTaxes","priceWithTaxes","discount","parseDiscount","Set","flat","slice","amenities","parseAmenities","bedDisposition","type","BED_DISPOSITION","bedTypes","reduce","next","includes","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","maxOccupation","immersive3d","url3D","video","UNIT","replace","exports"],"sources":["../../../src/services/Rates/get.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { BED_DISPOSITION, BED_TYPE, UNIT } from './constants';\nimport { getPrice, normalizePrice, parseAmenities, parseDiscount } from './helpers';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nconst KEY_HASH = 'm14357';\n\nexport const get = ({\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n locale,\n session = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const { idtokenprovider: id, checkin, nights } = others;\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: session.authorization,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n lang: locale.split('-')[0],\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n //TODO: back have to change the endpoint for don`t have remove this headers\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const {\n currencyCode: hotelCurrency,\n measureUnit: unit,\n roomTypes,\n taxesInformation,\n vatIncluded: taxes,\n } = response;\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n const items = Object.values(roomTypes);\n\n resolve({\n assistant: items.some(({ occupationOptions: options = {} } = {}) => Object.keys(options).length > 1),\n items: items.map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const rates = [];\n const {\n description,\n roomTypeInfo: { bedDistributions: bedType = [], galleryMedia: media, photos, roomSize: size } = {},\n } = info;\n const {\n occupationQuantities: { numAdults: adults = 0, totalChildren: children = 0 } = {},\n rates: occupationRates,\n } = Object.values(occupationOptions)[0] || {};\n\n Object.values(occupationRates).forEach(\n ({\n boardOptions: boards,\n cancellationPolicyDeadline: cancelEnd,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n includedList: included,\n name,\n paymentText: paymentConditions,\n restrictions,\n } = {}) => {\n Object.values(boards).forEach(\n ({\n boardGroupName: boardName,\n detail,\n discountPricesBefore: discounts = {},\n id,\n maxRoomsPerReservation: max,\n minRoomsPerReservation: min,\n offersApplied: deals,\n originalAvgPrice,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n } = {}) => {\n const { clientCodeTotal: promoCode, clubTotal: club, offerTotal: deal } = discounts;\n const price = taxes ? totalPrice : totalPriceOriginal;\n const originalPrice =\n (taxes\n ? Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0)\n : Math.max(deal?.original || 0, club?.original || 0, promoCode?.original || 0)) || price;\n\n rates.push({\n amount: [min, availability < max ? availability : max],\n basePrice: normalizePrice(totalPriceOriginal, currency),\n boardName,\n cancellation: {\n hint: `${cancelName} ${cancelEnd ? cancelEnd : ''}`.trim(),\n title: cancelTitle,\n text: cancelText,\n },\n dayPrice: getPrice({\n currency,\n hotelCurrency,\n price: taxes ? withTaxesAvgPrice : originalAvgPrice,\n }),\n days: detail.map(\n ({\n dayStandardFormat: value,\n offerId: deal,\n priceWithoutTaxes: basePrice,\n priceWithTaxes: price,\n } = {}) => ({\n deal,\n price: getPrice({ currency, hotelCurrency, price: taxes ? price : basePrice }),\n value,\n }),\n ),\n deals,\n discount: parseDiscount({\n currency,\n hotelCurrency,\n ...discounts,\n originalPrice,\n taxes,\n totalPrice: price,\n }),\n id,\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({\n currency,\n hotelCurrency,\n price: price + (taxes ? localTaxes : 0),\n }),\n name,\n paymentConditions,\n restrictions,\n taxes: !taxes\n ? getPrice({ currency, hotelCurrency, price: totalPrice - totalPriceOriginal + localTaxes })\n : undefined,\n });\n },\n );\n },\n );\n\n return {\n amenities: parseAmenities(info),\n availability,\n bedDisposition: bedType.map((type) => BED_DISPOSITION[type]),\n bedTypes: bedType.reduce((result, next) => {\n BED_DISPOSITION[next].forEach(({ amount, type } = {}) => {\n if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;\n });\n\n return result;\n }, []),\n description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n maxOccupation: adults + children,\n media: media ? { immersive3d: media.url3D, video: media.video } : undefined,\n rates,\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n ),\n taxes: !taxes ? taxesInformation.replace(/\\r?\\n|\\r/g, '') : undefined,\n });\n });\n"],"mappings":"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"}
|