@revolugo/common 6.9.6 → 6.9.7-beta.1

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.
Files changed (63) hide show
  1. package/package.json +12 -7
  2. package/src/cancellation-policies.test.ts +12 -9
  3. package/src/cancellation-policies.ts +31 -26
  4. package/src/constants/countries.ts +0 -2515
  5. package/src/constants/currencies.ts +0 -1812
  6. package/src/constants/environment.ts +1 -0
  7. package/src/constants/hotel-offers.ts +2 -0
  8. package/src/constants/hotel.ts +3 -0
  9. package/src/constants/locales.ts +6 -0
  10. package/src/constants/measurement.ts +1 -0
  11. package/src/constants/time.ts +1 -0
  12. package/src/countries/constants.ts +2518 -0
  13. package/src/countries/index.ts +7 -0
  14. package/src/currencies/index.ts +1817 -0
  15. package/src/models/paginated-queries.ts +1 -0
  16. package/src/types/country.ts +1 -1
  17. package/src/types/elements/amenity.ts +266 -0
  18. package/src/types/elements/bed.ts +20 -0
  19. package/src/types/elements/booking-policy.ts +80 -0
  20. package/src/types/elements/booking.ts +236 -0
  21. package/src/types/elements/cancellation-policy.ts +20 -0
  22. package/src/types/elements/contact-person.ts +158 -0
  23. package/src/types/elements/currency.ts +3 -0
  24. package/src/types/elements/event-metadata.ts +38 -0
  25. package/src/types/elements/event.ts +14 -0
  26. package/src/types/elements/hotel-image.ts +44 -0
  27. package/src/types/elements/hotel-images.ts +47 -0
  28. package/src/types/elements/hotel-offer-request.ts +82 -0
  29. package/src/types/elements/hotel-offer.ts +208 -0
  30. package/src/types/elements/hotel-review-rating.ts +14 -0
  31. package/src/types/elements/hotel-room-offer-package-type.ts +8 -0
  32. package/src/types/elements/hotel-room-offer-request.ts +77 -0
  33. package/src/types/elements/hotel-room-offer-type.ts +6 -0
  34. package/src/types/elements/hotel-room-offer.ts +192 -0
  35. package/src/types/elements/hotel-room.ts +102 -0
  36. package/src/types/elements/hotel-rooming-list.ts +49 -0
  37. package/src/types/elements/hotel.ts +184 -0
  38. package/src/types/elements/index.ts +22 -0
  39. package/src/types/elements/invoice.ts +21 -0
  40. package/src/types/elements/payment-method.ts +159 -0
  41. package/src/types/elements/source-market.ts +247 -0
  42. package/src/types/elements/tag.ts +32 -0
  43. package/src/types/elements/tax.ts +52 -0
  44. package/src/types/elements/travel-times.ts +45 -0
  45. package/src/types/index.ts +1 -0
  46. package/src/utils/array-tools.ts +3 -2
  47. package/src/utils/case-transformers.ts +1 -0
  48. package/src/utils/colors.ts +4 -4
  49. package/src/utils/currency.ts +30 -18
  50. package/src/utils/dates.ts +6 -10
  51. package/src/utils/debounce.ts +2 -2
  52. package/src/utils/find-unique-keys.ts +2 -2
  53. package/src/utils/get-guest-count.ts +1 -0
  54. package/src/utils/index.ts +1 -1
  55. package/src/utils/lang-default-fallbacks.ts +1 -1
  56. package/src/utils/math.ts +3 -3
  57. package/src/utils/numbers.ts +8 -7
  58. package/src/utils/object-tools.ts +60 -2
  59. package/src/utils/poller.ts +1 -0
  60. package/src/utils/random.ts +12 -0
  61. package/src/utils/strings.ts +5 -2
  62. package/src/utils/validators.ts +1 -0
  63. package/src/utils/countries.ts +0 -4
@@ -1,5 +1,6 @@
1
1
  import type { IPaginatedQueriesConfig } from '../types/index.ts'
2
2
 
3
+ /* @__PURE__ */
3
4
  export const PAGINATED_QUERY_DEFAULT_CONFIG: IPaginatedQueriesConfig = {
4
5
  defaultScope: {
5
6
  limit: 20,
@@ -1,5 +1,5 @@
1
- import type { ISO_COUNTRIES } from '../constants/countries.ts'
2
1
  import type { Currency } from '../constants/currencies.ts'
2
+ import type { ISO_COUNTRIES } from '../countries/constants.ts'
3
3
 
4
4
  export type CountryIsoCode = (typeof ISO_COUNTRIES)[number]
5
5
 
@@ -0,0 +1,266 @@
1
+ export interface Amenities {
2
+ /**
3
+ * Air conditioning.
4
+ * @type {boolean}
5
+ * @memberof Amenities
6
+ */
7
+ airConditioning?: boolean
8
+ /**
9
+ * Airport transportation service.
10
+ * @type {boolean}
11
+ * @memberof Amenities
12
+ */
13
+ airportTransportation?: boolean
14
+ /**
15
+ * Business center.
16
+ * @type {boolean}
17
+ * @memberof Amenities
18
+ */
19
+ businessCenter?: boolean
20
+ /**
21
+ * Car rental desk service.
22
+ * @type {boolean}
23
+ * @memberof Amenities
24
+ */
25
+ carRentDesk?: boolean
26
+ /**
27
+ * Children welcomed.
28
+ * @type {boolean}
29
+ * @memberof Amenities
30
+ */
31
+ childrenAllowed?: boolean
32
+ /**
33
+ * Clothing iron.
34
+ * @type {boolean}
35
+ * @memberof Amenities
36
+ */
37
+ clothingIron?: boolean
38
+ /**
39
+ * Coffea/tea maker.
40
+ * @type {boolean}
41
+ * @memberof Amenities
42
+ */
43
+ coffeeTeaMaker?: boolean
44
+ /**
45
+ * Combination.
46
+ * @type {boolean}
47
+ * @memberof Amenities
48
+ */
49
+ combination?: boolean
50
+ /**
51
+ * Continental Breakfast.
52
+ * @type {boolean}
53
+ * @memberof Amenities
54
+ */
55
+ continentalBreakfast?: boolean
56
+ /**
57
+ * Data ports in room.
58
+ * @type {boolean}
59
+ * @memberof Amenities
60
+ */
61
+ dataPorts?: boolean
62
+ /**
63
+ * Dry cleaning.
64
+ * @type {boolean}
65
+ * @memberof Amenities
66
+ */
67
+ dryCleaning?: boolean
68
+ /**
69
+ * Electornic room keys.
70
+ * @type {boolean}
71
+ * @memberof Amenities
72
+ */
73
+ electronicRoomKeys?: boolean
74
+ /**
75
+ * Exterior room entrance.
76
+ * @type {boolean}
77
+ * @memberof Amenities
78
+ */
79
+ exteriorRoomEntrance?: boolean
80
+ /**
81
+ * Family rooms.
82
+ * @type {boolean}
83
+ * @memberof Amenities
84
+ */
85
+ familyRooms?: boolean
86
+ /**
87
+ * Fitness facility.
88
+ * @type {boolean}
89
+ * @memberof Amenities
90
+ */
91
+ fitnessFacility?: boolean
92
+ /**
93
+ * Game room.
94
+ * @type {boolean}
95
+ * @memberof Amenities
96
+ */
97
+ gameRoom?: boolean
98
+ /**
99
+ * Golf course.
100
+ * @type {boolean}
101
+ * @memberof Amenities
102
+ */
103
+ golfCourse?: boolean
104
+ /**
105
+ * Hair dryer.
106
+ * @type {boolean}
107
+ * @memberof Amenities
108
+ */
109
+ hairDryer?: boolean
110
+ /**
111
+ * Handicap Accessible.
112
+ * @type {boolean}
113
+ * @memberof Amenities
114
+ */
115
+ handicapAccessible?: boolean
116
+ /**
117
+ * In house bar.
118
+ * @type {boolean}
119
+ * @memberof Amenities
120
+ */
121
+ inHouseBar?: boolean
122
+ /**
123
+ * In house dining.
124
+ * @type {boolean}
125
+ * @memberof Amenities
126
+ */
127
+ inHouseDining?: boolean
128
+ /**
129
+ * In room movies.
130
+ * @type {boolean}
131
+ * @memberof Amenities
132
+ */
133
+ inRoomMovies?: boolean
134
+ /**
135
+ * Indoor pool.
136
+ * @type {boolean}
137
+ * @memberof Amenities
138
+ */
139
+ indoorPool?: boolean
140
+ /**
141
+ * Interior room entrance.
142
+ * @type {boolean}
143
+ * @memberof Amenities
144
+ */
145
+ interiorRoomEntrance?: boolean
146
+ /**
147
+ * Kitchen.
148
+ * @type {boolean}
149
+ * @memberof Amenities
150
+ */
151
+ kitchen?: boolean
152
+ /**
153
+ * Map.
154
+ * @type {boolean}
155
+ * @memberof Amenities
156
+ */
157
+ map?: boolean
158
+ /**
159
+ * Meeting rooms.
160
+ * @type {boolean}
161
+ * @memberof Amenities
162
+ */
163
+ meetingRooms?: boolean
164
+ /**
165
+ * mini bar in room.
166
+ * @type {boolean}
167
+ * @memberof Amenities
168
+ */
169
+ miniBarInRoom?: boolean
170
+ /**
171
+ * Non smoking rooms.
172
+ * @type {boolean}
173
+ * @memberof Amenities
174
+ */
175
+ nonSmokingRooms?: boolean
176
+ /**
177
+ * Outdoor pool.
178
+ * @type {boolean}
179
+ * @memberof Amenities
180
+ */
181
+ outdoorPool?: boolean
182
+ /**
183
+ * Parking garage.
184
+ * @type {boolean}
185
+ * @memberof Amenities
186
+ */
187
+ parkingGarage?: boolean
188
+ /**
189
+ * Pets allowed.
190
+ * @type {boolean}
191
+ * @memberof Amenities
192
+ */
193
+ petsAllowed?: boolean
194
+ /**
195
+ * Restricted access.
196
+ * @type {boolean}
197
+ * @memberof Amenities
198
+ */
199
+ restrictedAccess?: boolean
200
+ /**
201
+ * Room service.
202
+ * @type {boolean}
203
+ * @memberof Amenities
204
+ */
205
+ roomService?: boolean
206
+ /**
207
+ * Safe in room.
208
+ * @type {boolean}
209
+ * @memberof Amenities
210
+ */
211
+ safe?: boolean
212
+ /**
213
+ * Sauna.
214
+ * @type {boolean}
215
+ * @memberof Amenities
216
+ */
217
+ sauna?: boolean
218
+ /**
219
+ * TV in room.
220
+ * @type {boolean}
221
+ * @memberof Amenities
222
+ */
223
+ tVInRoom?: boolean
224
+ /**
225
+ * Tennis court.
226
+ * @type {boolean}
227
+ * @memberof Amenities
228
+ */
229
+ tennisCourt?: boolean
230
+ /**
231
+ * 24/7 security.
232
+ * @type {boolean}
233
+ * @memberof Amenities
234
+ */
235
+ twentyFourHourSecurity?: boolean
236
+ /**
237
+ * Valet parking.
238
+ * @type {boolean}
239
+ * @memberof Amenities
240
+ */
241
+ valetParking?: boolean
242
+ /**
243
+ * Video check out.
244
+ * @type {boolean}
245
+ * @memberof Amenities
246
+ */
247
+ videoCheckOut?: boolean
248
+ /**
249
+ * Voice mail.
250
+ * @type {boolean}
251
+ * @memberof Amenities
252
+ */
253
+ voiceMail?: boolean
254
+ /**
255
+ * Wake up service.
256
+ * @type {boolean}
257
+ * @memberof Amenities
258
+ */
259
+ wakeUpService?: boolean
260
+ /**
261
+ * Whirpool.
262
+ * @type {boolean}
263
+ * @memberof Amenities
264
+ */
265
+ whirpool?: boolean
266
+ }
@@ -0,0 +1,20 @@
1
+ export interface Bed {
2
+ /**
3
+ * Number of beds of the given type in the room.
4
+ * @type {number}
5
+ * @memberof BedApi
6
+ */
7
+ count: number
8
+ /**
9
+ * Bed name.
10
+ * @type {string}
11
+ * @memberof BedApi
12
+ */
13
+ name: string
14
+ /**
15
+ * Bed occupancy.
16
+ * @type {number}
17
+ * @memberof BedApi
18
+ */
19
+ occupancy: number
20
+ }
@@ -0,0 +1,80 @@
1
+ import type { CancellationPolicy } from './cancellation-policy.ts'
2
+ import type { CurrencyType } from './currency.ts'
3
+ import type { HotelRoomOffer } from './hotel-room-offer.ts'
4
+
5
+ export interface BookingPolicies {
6
+ /**
7
+ * The total number of adults who will be staying in the property.
8
+ * @type {number}
9
+ * @memberof BookingPolicies
10
+ */
11
+ adultCount: number
12
+ /**
13
+ * The list of cancellation policy date range with their corresponding penalty percentage.
14
+ * @type {Array<CancellationPolicy>}
15
+ * @memberof BookingPolicies
16
+ */
17
+ cancellationPolicies: CancellationPolicy[]
18
+ /**
19
+ * Date of check-in formatted as YYYY-MM-DD.
20
+ * @type {string}
21
+ * @memberof BookingPolicies
22
+ */
23
+ checkInDate: string
24
+ /**
25
+ * Date of check-out formatted as YYYY-MM-DD.
26
+ * @type {string}
27
+ * @memberof BookingPolicies
28
+ */
29
+ checkOutDate: string
30
+ /**
31
+ * A comma-separated list of child ages (0 up to 17). e.g.: "3,7" represents 2 children respectively 3 and 7 years old.
32
+ * @type {string}
33
+ * @memberof BookingPolicies
34
+ */
35
+ children?: string | null
36
+ /**
37
+ *
38
+ * @type {CurrencyBookingApiClient}
39
+ * @memberof BookingPolicies
40
+ */
41
+ currency: CurrencyType
42
+ /**
43
+ * Expiration date for this **Booking Policy**.
44
+ *
45
+ * The returned **Booking Policy** (price and cancellation policies) is valid bookable policy up to this **expires_at** date, while it may be valid for a longer period in the case of some suppliers, this API call is equivalent to an availability check and it is important not to let long periods between retrieval of this policy and the booking confirmation call itself as this will often reduce the likelihood of a **Hotel Room Offer** being successfully booked.
46
+ * @type {string}
47
+ * @memberof BookingPolicies
48
+ */
49
+ expiresAt: string | null
50
+ /**
51
+ * Hotel id
52
+ * @type {string}
53
+ * @memberof BookingPolicies
54
+ */
55
+ hotelId: string
56
+ /**
57
+ *
58
+ * @type {HotelRoomOffer}
59
+ * @memberof BookingPolicies
60
+ */
61
+ hotelRoomOffer: HotelRoomOffer
62
+ /**
63
+ * **Booking Policy** id
64
+ * @type {string}
65
+ * @memberof BookingPolicies
66
+ */
67
+ id: string
68
+ /**
69
+ * Indicates whether the price of the **Hotel Room Offer** (without breakfast included) has increased compared to the price returned by [Retrieve Hotel Room Offers endpoint](/v1/documentation#operation/getV1Hotel_room_offers).
70
+ *
71
+ * In some case, the returned price may increase for various reasons including: Currency rate change between the POST **Booking Policies** call and the GET **Hotel Room Offers** call, **Hotel Room Offer** price has increased since the GET **Hotel Room Offers** call.
72
+ *
73
+ * If **is_price_increased** is **true**, it means that the actual/updated price of the **Hotel Room Offer** is greater than the price previously returned by [Retrieve Hotel Room Offers endpoint](/v1/documentation#operation/getV1Hotel_room_offers). If **is_price_increased** is **false**, the price of the **Hotel Room Offer** is equal to the price returned by [Retrieve Hotel Room Offers endpoint](/v1/documentation#operation/getV1Hotel_room_offers).
74
+ *
75
+ * ⚠️ It is strongly advised to clearly inform your customer of any price increase that may occur.
76
+ * @type {boolean}
77
+ * @memberof BookingPolicies
78
+ */
79
+ isPriceIncreased: boolean
80
+ }
@@ -0,0 +1,236 @@
1
+ import type { CancellationPolicy } from './cancellation-policy.ts'
2
+ import type { ContactPerson } from './contact-person.ts'
3
+ import type { CurrencyType } from './currency.ts'
4
+ import type { Event } from './event.ts'
5
+ import type { HotelRoomOffer } from './hotel-room-offer.ts'
6
+ import type { HotelRoomingList } from './hotel-rooming-list.ts'
7
+ import type { InvoiceApi } from './invoice.ts'
8
+ import type { PaymentMethodApi } from './payment-method.ts'
9
+ import type { SourceMarket } from './source-market.ts'
10
+ import type { Tax } from './tax.ts'
11
+
12
+ export interface Booking {
13
+ /**
14
+ * The total number of adults who will be staying in the property.
15
+ * @type {number}
16
+ * @memberof Booking
17
+ */
18
+ adultCount: number
19
+ /**
20
+ * Date of booking cancellation request, when applicable.
21
+ * @type {string}
22
+ * @memberof Booking
23
+ */
24
+ canceledAt?: string | null
25
+ /**
26
+ * The list of cancellation policy date range with their corresponding penalty percentage.
27
+ * @type {Array<CancellationPolicy>}
28
+ * @memberof Booking
29
+ */
30
+ cancellationPolicies: CancellationPolicy[]
31
+ /**
32
+ * Remarks about the cancellation policy.
33
+ * @type {string}
34
+ * @memberof Booking
35
+ */
36
+ cancellationPolicyRemarks?: string | null
37
+ /**
38
+ * Date of check-in formatted as YYYY-MM-DD.
39
+ * @type {string}
40
+ * @memberof Booking
41
+ */
42
+ checkInDate: string
43
+ /**
44
+ * Date of check-out formatted as YYYY-MM-DD.
45
+ * @type {string}
46
+ * @memberof Booking
47
+ */
48
+ checkOutDate: string
49
+ /**
50
+ * A comma-separated list of child ages (0 up to 17). e.g.: "3,7" represents 2 children respectively 3 and 7 years old.
51
+ * @type {string}
52
+ * @memberof Booking
53
+ */
54
+ children?: string | null
55
+ /**
56
+ * Date of booking confirmation request, when applicable.
57
+ * @type {string}
58
+ * @memberof Booking
59
+ */
60
+ confirmedAt?: string | null
61
+ /**
62
+ *
63
+ * @type {ContactPerson}
64
+ * @memberof Booking
65
+ */
66
+ contactPerson: ContactPerson
67
+ /**
68
+ * Creation date of the **Booking**.
69
+ * @type {string}
70
+ * @memberof Booking
71
+ */
72
+ createdAt: string
73
+ /**
74
+ *
75
+ * @type {CurrencyBookingApiClient}
76
+ * @memberof Booking
77
+ */
78
+ currency: CurrencyType
79
+ /**
80
+ * Customer Reference of the requested Booking (sometimes to present by the customer at hotel check-in).
81
+ * @type {string}
82
+ * @memberof Booking
83
+ */
84
+ customerReference?: string | null
85
+ /**
86
+ *
87
+ * @type {Event}
88
+ * @memberof Booking
89
+ */
90
+ event?: Event | null
91
+ /**
92
+ * Date of booking failure, when applicable.
93
+ * @type {string}
94
+ * @memberof Booking
95
+ */
96
+ failedAt?: string | null
97
+ /**
98
+ * Hotel Id of the requested Booking.
99
+ * @type {string}
100
+ * @memberof Booking
101
+ */
102
+ hotelId: string
103
+ /**
104
+ *
105
+ * @type {HotelRoomOffer}
106
+ * @memberof Booking
107
+ */
108
+ hotelRoomOffer: HotelRoomOffer
109
+ /**
110
+ * Hotel rooming lists of a hotel booking
111
+ * @type {Array<HotelRoomingList>}
112
+ * @memberof Booking
113
+ */
114
+ hotelRoomingLists?: HotelRoomingList[]
115
+ /**
116
+ * Booking Id
117
+ * @type {string}
118
+ * @memberof Booking
119
+ */
120
+ id?: string | null
121
+ /**
122
+ * The list of invoices and credit notes (when applicable) direct urls associated to the Booking.
123
+ * @type {Array<InvoiceApi>}
124
+ * @memberof Booking
125
+ */
126
+ invoices?: InvoiceApi[] | null
127
+ /**
128
+ * Date of the last booking status update.
129
+ * @type {string}
130
+ * @memberof Booking
131
+ */
132
+ lastStatusUpdatedAt: string
133
+ /**
134
+ * You can use this parameter to attach key-value data to bookings. Metadata is useful for storing additional, structured information on a booking. As an example, you could store your user's full name and corresponding unique identifier from your system on a booking. Metadata is not used internally by the Booking Engine and won't be seen by your users unless you choose to show it to them.
135
+ * @type {{ [key: string]: string; }}
136
+ * @memberof Booking
137
+ */
138
+ metadata?: {
139
+ [key: string]: string
140
+ } | null
141
+ /**
142
+ * Booking Pay Later Status
143
+ * @type {string}
144
+ * @memberof Booking
145
+ */
146
+ payLater?: BookingApiPayLater
147
+ /**
148
+ * List of preferred payment methods to be used along with their respective payload (when applicable) in order to fulfill the booking.
149
+ *
150
+ * ⚠️ This field is only returned when **booking.status = bkg-created**
151
+ * @type {Array<PaymentMethodApi>}
152
+ * @memberof Booking
153
+ */
154
+ paymentMethods?: PaymentMethodApi[]
155
+ /**
156
+ * Penalty percentage of the requested Booking.
157
+ *
158
+ * When **booking.status = bkg-cx** this is the percentage of the **booking.tax_included_price** that have been charged on the canceled booking. Otherwise, this field won't be returned.
159
+ * @type {number}
160
+ * @memberof Booking
161
+ */
162
+ penaltyPercentage?: number | null
163
+ /**
164
+ * Booking Reference of the requested Booking.
165
+ * @type {string}
166
+ * @memberof Booking
167
+ */
168
+ reference: string
169
+ /**
170
+ *
171
+ * @type {SourceMarket}
172
+ * @memberof Booking
173
+ */
174
+ sourceMarket: SourceMarket
175
+ /**
176
+ * Booking status. Please, refer to [Booking Status](/v1/documentation#tag/Booking-Status) for details.
177
+ * @type {string}
178
+ * @memberof Booking
179
+ */
180
+ status: BookingStatus
181
+ /**
182
+ * Total tax amount expressed in the booking currency.
183
+ * @type {number}
184
+ * @memberof Booking
185
+ */
186
+ taxAmount: number
187
+ /**
188
+ * Price of the booking including taxes expressed in the booking currency.
189
+ * @type {number}
190
+ * @memberof Booking
191
+ */
192
+ taxIncludedPrice: number
193
+ /**
194
+ *
195
+ * @type {Array<Tax>}
196
+ * @memberof Booking
197
+ */
198
+ taxes?: Tax[] | null
199
+ /**
200
+ * Link to Revolugo terms and conditions under which the booking is made.
201
+ * @type {string}
202
+ * @memberof Booking
203
+ */
204
+ terms: string
205
+ /**
206
+ * This is the token to pass as URL params to [Cancel Booking endpoint](/v1/documentation#operation/deleteV1BookingsId) in order to perform a cancel request on the booking. If you want to cancel a booking, you should use this token instead of the booking id.
207
+ *
208
+ * ⚠️ For security reasons, this token is unique and once generated, it is valid during a period of 10 minutes.
209
+ *
210
+ * In order to get a fresh valid token you need to call **[Retrieve Booking endpoint](/v1/documentation#operation/getV1BookingsId)**.
211
+ * @type {string}
212
+ * @memberof Booking
213
+ */
214
+ token?: string | null
215
+ }
216
+
217
+ export enum BookingApiPayLaterEnum {
218
+ Disabled = 'DISABLED',
219
+ Enabled = 'ENABLED',
220
+ Forced = 'FORCED',
221
+ }
222
+
223
+ type BookingApiPayLater = `${BookingApiPayLaterEnum}`
224
+
225
+ export enum BookingStatusEnum {
226
+ Cx = 'bkg-cx',
227
+ Cf = 'bkg-cf',
228
+ Created = 'bkg-created',
229
+ Af = 'bkg-af',
230
+ Ip = 'bkg-ip',
231
+ Pc = 'bkg-pc',
232
+ Pp = 'bkg-pp',
233
+ Qr = 'bkg-qr',
234
+ }
235
+
236
+ type BookingStatus = `${BookingStatusEnum}`
@@ -0,0 +1,20 @@
1
+ export interface CancellationPolicy {
2
+ /**
3
+ * The start date and time of the cancellation policy, given in the hotel timezone.
4
+ * @type {string}
5
+ * @memberof CancellationPolicyApi
6
+ */
7
+ dateFrom: string
8
+ /**
9
+ * The end date and time of the cancellation policy, given in the hotel timezone.
10
+ * @type {string}
11
+ * @memberof CancellationPolicyApi
12
+ */
13
+ dateTo: string
14
+ /**
15
+ * The penalty percentage that is due in case of cancellation during the **date_from** to **date_to** period range.
16
+ * @type {number}
17
+ * @memberof CancellationPolicyApi
18
+ */
19
+ penaltyPercentage: number
20
+ }