@mtnmanager/sdk 1.5.2 → 1.6.0

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 (50) hide show
  1. package/README.md +1 -0
  2. package/dist/apis/MtnManagerApi.d.ts +4 -4
  3. package/dist/apis/MtnManagerApi.js +1 -1
  4. package/dist/esm/apis/MtnManagerApi.d.ts +4 -4
  5. package/dist/esm/apis/MtnManagerApi.js +1 -1
  6. package/dist/esm/models/Amenity.d.ts +15 -0
  7. package/dist/esm/models/Amenity.js +7 -0
  8. package/dist/esm/models/EntityImage.d.ts +39 -0
  9. package/dist/esm/models/EntityImage.js +47 -0
  10. package/dist/esm/models/FullReport.d.ts +5 -3
  11. package/dist/esm/models/FullReport.js +2 -2
  12. package/dist/esm/models/Lift.d.ts +8 -0
  13. package/dist/esm/models/Lift.js +3 -0
  14. package/dist/esm/models/ParkingLot.d.ts +8 -0
  15. package/dist/esm/models/ParkingLot.js +3 -0
  16. package/dist/esm/models/Run.d.ts +8 -0
  17. package/dist/esm/models/Run.js +3 -0
  18. package/dist/esm/models/SummerTrail.d.ts +8 -0
  19. package/dist/esm/models/SummerTrail.js +3 -0
  20. package/dist/esm/models/TerrainPark.d.ts +8 -0
  21. package/dist/esm/models/TerrainPark.js +3 -0
  22. package/dist/esm/models/TerrainParkFeature.d.ts +8 -0
  23. package/dist/esm/models/TerrainParkFeature.js +3 -0
  24. package/dist/esm/models/Weather.d.ts +18 -0
  25. package/dist/esm/models/Weather.js +6 -0
  26. package/dist/esm/models/index.d.ts +1 -0
  27. package/dist/esm/models/index.js +1 -0
  28. package/dist/models/Amenity.d.ts +15 -0
  29. package/dist/models/Amenity.js +7 -0
  30. package/dist/models/EntityImage.d.ts +39 -0
  31. package/dist/models/EntityImage.js +54 -0
  32. package/dist/models/FullReport.d.ts +5 -3
  33. package/dist/models/FullReport.js +2 -2
  34. package/dist/models/Lift.d.ts +8 -0
  35. package/dist/models/Lift.js +3 -0
  36. package/dist/models/ParkingLot.d.ts +8 -0
  37. package/dist/models/ParkingLot.js +3 -0
  38. package/dist/models/Run.d.ts +8 -0
  39. package/dist/models/Run.js +3 -0
  40. package/dist/models/SummerTrail.d.ts +8 -0
  41. package/dist/models/SummerTrail.js +3 -0
  42. package/dist/models/TerrainPark.d.ts +8 -0
  43. package/dist/models/TerrainPark.js +3 -0
  44. package/dist/models/TerrainParkFeature.d.ts +8 -0
  45. package/dist/models/TerrainParkFeature.js +3 -0
  46. package/dist/models/Weather.d.ts +18 -0
  47. package/dist/models/Weather.js +6 -0
  48. package/dist/models/index.d.ts +1 -0
  49. package/dist/models/index.js +1 -0
  50. package/package.json +1 -1
package/README.md CHANGED
@@ -84,6 +84,7 @@ All URIs are relative to *https://your-resort.mtnmanager.com*
84
84
  - [DailyForecastImperial](docs/DailyForecastImperial.md)
85
85
  - [DailyForecastMetric](docs/DailyForecastMetric.md)
86
86
  - [DayOfWeek](docs/DayOfWeek.md)
87
+ - [EntityImage](docs/EntityImage.md)
87
88
  - [FeatureSize](docs/FeatureSize.md)
88
89
  - [FeatureType](docs/FeatureType.md)
89
90
  - [FullReport](docs/FullReport.md)
@@ -300,11 +300,11 @@ export interface MtnManagerApiInterface {
300
300
  * @throws {RequiredError}
301
301
  * @memberof MtnManagerApiInterface
302
302
  */
303
- getWeatherRaw(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Weather>>;
303
+ getWeatherRaw(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Weather>>>;
304
304
  /**
305
305
  * Get weather
306
306
  */
307
- getWeather(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Weather>;
307
+ getWeather(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Weather>>;
308
308
  }
309
309
  /**
310
310
  *
@@ -449,9 +449,9 @@ export declare class MtnManagerApi extends runtime.BaseAPI implements MtnManager
449
449
  /**
450
450
  * Get weather
451
451
  */
452
- getWeatherRaw(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Weather>>;
452
+ getWeatherRaw(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Weather>>>;
453
453
  /**
454
454
  * Get weather
455
455
  */
456
- getWeather(requestParameters?: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Weather>;
456
+ getWeather(requestParameters?: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Weather>>;
457
457
  }
@@ -484,7 +484,7 @@ class MtnManagerApi extends runtime.BaseAPI {
484
484
  return __awaiter(this, void 0, void 0, function* () {
485
485
  const requestOptions = yield this.getWeatherRequestOpts(requestParameters);
486
486
  const response = yield this.request(requestOptions, initOverrides);
487
- return new runtime.JSONApiResponse(response, (jsonValue) => (0, Weather_1.WeatherFromJSON)(jsonValue));
487
+ return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(Weather_1.WeatherFromJSON));
488
488
  });
489
489
  }
490
490
  /**
@@ -300,11 +300,11 @@ export interface MtnManagerApiInterface {
300
300
  * @throws {RequiredError}
301
301
  * @memberof MtnManagerApiInterface
302
302
  */
303
- getWeatherRaw(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Weather>>;
303
+ getWeatherRaw(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Weather>>>;
304
304
  /**
305
305
  * Get weather
306
306
  */
307
- getWeather(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Weather>;
307
+ getWeather(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Weather>>;
308
308
  }
309
309
  /**
310
310
  *
@@ -449,9 +449,9 @@ export declare class MtnManagerApi extends runtime.BaseAPI implements MtnManager
449
449
  /**
450
450
  * Get weather
451
451
  */
452
- getWeatherRaw(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Weather>>;
452
+ getWeatherRaw(requestParameters: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Weather>>>;
453
453
  /**
454
454
  * Get weather
455
455
  */
456
- getWeather(requestParameters?: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Weather>;
456
+ getWeather(requestParameters?: GetWeatherRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Weather>>;
457
457
  }
@@ -481,7 +481,7 @@ export class MtnManagerApi extends runtime.BaseAPI {
481
481
  return __awaiter(this, void 0, void 0, function* () {
482
482
  const requestOptions = yield this.getWeatherRequestOpts(requestParameters);
483
483
  const response = yield this.request(requestOptions, initOverrides);
484
- return new runtime.JSONApiResponse(response, (jsonValue) => WeatherFromJSON(jsonValue));
484
+ return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(WeatherFromJSON));
485
485
  });
486
486
  }
487
487
  /**
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { AmenityCategory } from './AmenityCategory';
13
13
  import type { Schedule } from './Schedule';
14
+ import type { EntityImage } from './EntityImage';
14
15
  /**
15
16
  * Represents an amenity at the resort (e.g. lodge, restaurant, ski school)
16
17
  * with its category, description, website, and hours.
@@ -48,6 +49,13 @@ export interface Amenity {
48
49
  * @memberof Amenity
49
50
  */
50
51
  website: string;
52
+ /**
53
+ * Whether this amenity reports operating hours. When false, clients should
54
+ * not expect `opens_at`, `closes_at`, or `schedules` to ever be populated.
55
+ * @type {boolean}
56
+ * @memberof Amenity
57
+ */
58
+ hasOperatingHours: boolean;
51
59
  /**
52
60
  * Today's scheduled opening time in 24-hour format (HH:MM), in resort's local timezone.
53
61
  * @type {string}
@@ -67,6 +75,13 @@ export interface Amenity {
67
75
  * @memberof Amenity
68
76
  */
69
77
  schedules: Array<Schedule>;
78
+ /**
79
+ * Images attached to this amenity, ordered for display. Each includes a
80
+ * ThumbHash for rendering a blurred placeholder while the image loads.
81
+ * @type {Array<EntityImage>}
82
+ * @memberof Amenity
83
+ */
84
+ images?: Array<EntityImage>;
70
85
  }
71
86
  /**
72
87
  * Check if a given object implements the Amenity interface.
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { AmenityCategoryFromJSON, AmenityCategoryToJSON, } from './AmenityCategory';
15
15
  import { ScheduleFromJSON, ScheduleToJSON, } from './Schedule';
16
+ import { EntityImageFromJSON, EntityImageToJSON, } from './EntityImage';
16
17
  /**
17
18
  * Check if a given object implements the Amenity interface.
18
19
  */
@@ -27,6 +28,8 @@ export function instanceOfAmenity(value) {
27
28
  return false;
28
29
  if (!('website' in value) || value['website'] === undefined)
29
30
  return false;
31
+ if ((!('hasOperatingHours' in value) && !('has_operating_hours' in value)) || (value['hasOperatingHours'] === undefined && value['has_operating_hours'] === undefined))
32
+ return false;
30
33
  if (!('schedules' in value) || value['schedules'] === undefined)
31
34
  return false;
32
35
  return true;
@@ -44,9 +47,11 @@ export function AmenityFromJSONTyped(json, ignoreDiscriminator) {
44
47
  'name': json['name'],
45
48
  'category': AmenityCategoryFromJSON(json['category']),
46
49
  'website': json['website'],
50
+ 'hasOperatingHours': json['has_operating_hours'],
47
51
  'opensAt': json['opens_at'] == null ? undefined : json['opens_at'],
48
52
  'closesAt': json['closes_at'] == null ? undefined : json['closes_at'],
49
53
  'schedules': (json['schedules'].map(ScheduleFromJSON)),
54
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImageFromJSON)),
50
55
  };
51
56
  }
52
57
  export function AmenityToJSON(json) {
@@ -62,8 +67,10 @@ export function AmenityToJSONTyped(value, ignoreDiscriminator = false) {
62
67
  'name': value['name'],
63
68
  'category': AmenityCategoryToJSON(value['category']),
64
69
  'website': value['website'],
70
+ 'has_operating_hours': value['hasOperatingHours'],
65
71
  'opens_at': value['opensAt'],
66
72
  'closes_at': value['closesAt'],
67
73
  'schedules': (value['schedules'].map(ScheduleToJSON)),
74
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImageToJSON)),
68
75
  };
69
76
  }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * MtnManager API
3
+ * The MtnManager API provides real-time access to your ski resort’s public operational data. Use it to display current conditions on your website, mobile app, or digital signage.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: support@mtnmanager.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * A single image attached to a resort entity, with a client-supplied ThumbHash
14
+ * for rendering a blurred placeholder while the full image loads.
15
+ * @export
16
+ * @interface EntityImage
17
+ */
18
+ export interface EntityImage {
19
+ /**
20
+ * Full public URL to the image.
21
+ * @type {string}
22
+ * @memberof EntityImage
23
+ */
24
+ url: string;
25
+ /**
26
+ * Base64-encoded ThumbHash for placeholder rendering.
27
+ * @type {string}
28
+ * @memberof EntityImage
29
+ */
30
+ thumbHash: string;
31
+ }
32
+ /**
33
+ * Check if a given object implements the EntityImage interface.
34
+ */
35
+ export declare function instanceOfEntityImage(value: object): value is EntityImage;
36
+ export declare function EntityImageFromJSON(json: any): EntityImage;
37
+ export declare function EntityImageFromJSONTyped(json: any, ignoreDiscriminator: boolean): EntityImage;
38
+ export declare function EntityImageToJSON(json: any): EntityImage;
39
+ export declare function EntityImageToJSONTyped(value?: EntityImage | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,47 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * MtnManager API
5
+ * The MtnManager API provides real-time access to your ski resort’s public operational data. Use it to display current conditions on your website, mobile app, or digital signage.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ * Contact: support@mtnmanager.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the EntityImage interface.
16
+ */
17
+ export function instanceOfEntityImage(value) {
18
+ if (!('url' in value) || value['url'] === undefined)
19
+ return false;
20
+ if ((!('thumbHash' in value) && !('thumb_hash' in value)) || (value['thumbHash'] === undefined && value['thumb_hash'] === undefined))
21
+ return false;
22
+ return true;
23
+ }
24
+ export function EntityImageFromJSON(json) {
25
+ return EntityImageFromJSONTyped(json, false);
26
+ }
27
+ export function EntityImageFromJSONTyped(json, ignoreDiscriminator) {
28
+ if (json == null) {
29
+ return json;
30
+ }
31
+ return {
32
+ 'url': json['url'],
33
+ 'thumbHash': json['thumb_hash'],
34
+ };
35
+ }
36
+ export function EntityImageToJSON(json) {
37
+ return EntityImageToJSONTyped(json, false);
38
+ }
39
+ export function EntityImageToJSONTyped(value, ignoreDiscriminator = false) {
40
+ if (value == null) {
41
+ return value;
42
+ }
43
+ return {
44
+ 'url': value['url'],
45
+ 'thumb_hash': value['thumbHash'],
46
+ };
47
+ }
@@ -88,11 +88,13 @@ export interface FullReport {
88
88
  */
89
89
  hours: OperatingHours;
90
90
  /**
91
- *
92
- * @type {Weather}
91
+ * Weather entries: the resort-wide entry first (current + forecast), then
92
+ * any per-area current-conditions entries. Empty when weather is disabled
93
+ * or unavailable.
94
+ * @type {Array<Weather>}
93
95
  * @memberof FullReport
94
96
  */
95
- weather?: Weather | null;
97
+ weather?: Array<Weather>;
96
98
  }
97
99
  /**
98
100
  * Check if a given object implements the FullReport interface.
@@ -62,7 +62,7 @@ export function FullReportFromJSONTyped(json, ignoreDiscriminator) {
62
62
  'parkingLots': (json['parking_lots'].map(ParkingLotFromJSON)),
63
63
  'summerTrails': (json['summer_trails'].map(SummerTrailFromJSON)),
64
64
  'hours': OperatingHoursFromJSON(json['hours']),
65
- 'weather': json['weather'] == null ? undefined : WeatherFromJSON(json['weather']),
65
+ 'weather': json['weather'] == null ? undefined : (json['weather'].map(WeatherFromJSON)),
66
66
  };
67
67
  }
68
68
  export function FullReportToJSON(json) {
@@ -82,6 +82,6 @@ export function FullReportToJSONTyped(value, ignoreDiscriminator = false) {
82
82
  'parking_lots': (value['parkingLots'].map(ParkingLotToJSON)),
83
83
  'summer_trails': (value['summerTrails'].map(SummerTrailToJSON)),
84
84
  'hours': OperatingHoursToJSON(value['hours']),
85
- 'weather': WeatherToJSON(value['weather']),
85
+ 'weather': value['weather'] == null ? undefined : (value['weather'].map(WeatherToJSON)),
86
86
  };
87
87
  }
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { LiftStatus } from './LiftStatus';
13
13
  import type { LiftType } from './LiftType';
14
+ import type { EntityImage } from './EntityImage';
14
15
  /**
15
16
  * Represents a single lift at the resort with its current operational status,
16
17
  * type, and optional wait time information.
@@ -146,6 +147,13 @@ export interface Lift {
146
147
  * @memberof Lift
147
148
  */
148
149
  updatedAt: Date;
150
+ /**
151
+ * Images attached to this lift, ordered for display. Each includes a
152
+ * ThumbHash for rendering a blurred placeholder while the image loads.
153
+ * @type {Array<EntityImage>}
154
+ * @memberof Lift
155
+ */
156
+ images?: Array<EntityImage>;
149
157
  }
150
158
  /**
151
159
  * Check if a given object implements the Lift interface.
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { LiftStatusFromJSON, LiftStatusToJSON, } from './LiftStatus';
15
15
  import { LiftTypeFromJSON, LiftTypeToJSON, } from './LiftType';
16
+ import { EntityImageFromJSON, EntityImageToJSON, } from './EntityImage';
16
17
  /**
17
18
  * Check if a given object implements the Lift interface.
18
19
  */
@@ -66,6 +67,7 @@ export function LiftFromJSONTyped(json, ignoreDiscriminator) {
66
67
  'areaName': json['area_name'] == null ? undefined : json['area_name'],
67
68
  'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
68
69
  'updatedAt': (new Date(json['updated_at'])),
70
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImageFromJSON)),
69
71
  };
70
72
  }
71
73
  export function LiftToJSON(json) {
@@ -97,5 +99,6 @@ export function LiftToJSONTyped(value, ignoreDiscriminator = false) {
97
99
  'area_name': value['areaName'],
98
100
  'area_display_order': value['areaDisplayOrder'],
99
101
  'updated_at': value['updatedAt'].toISOString(),
102
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImageToJSON)),
100
103
  };
101
104
  }
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { ParkingLotStatus } from './ParkingLotStatus';
13
+ import type { EntityImage } from './EntityImage';
13
14
  /**
14
15
  * Represents a parking lot at the resort with its current status and amenities.
15
16
  * @export
@@ -70,6 +71,13 @@ export interface ParkingLot {
70
71
  * @memberof ParkingLot
71
72
  */
72
73
  updatedAt: Date;
74
+ /**
75
+ * Images attached to this parking lot, ordered for display. Each includes a
76
+ * ThumbHash for rendering a blurred placeholder while the image loads.
77
+ * @type {Array<EntityImage>}
78
+ * @memberof ParkingLot
79
+ */
80
+ images?: Array<EntityImage>;
73
81
  }
74
82
  /**
75
83
  * Check if a given object implements the ParkingLot interface.
@@ -12,6 +12,7 @@
12
12
  * Do not edit the class manually.
13
13
  */
14
14
  import { ParkingLotStatusFromJSON, ParkingLotStatusToJSON, } from './ParkingLotStatus';
15
+ import { EntityImageFromJSON, EntityImageToJSON, } from './EntityImage';
15
16
  /**
16
17
  * Check if a given object implements the ParkingLot interface.
17
18
  */
@@ -51,6 +52,7 @@ export function ParkingLotFromJSONTyped(json, ignoreDiscriminator) {
51
52
  'paid': json['paid'],
52
53
  'reservationRequired': json['reservation_required'],
53
54
  'updatedAt': (new Date(json['updated_at'])),
55
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImageFromJSON)),
54
56
  };
55
57
  }
56
58
  export function ParkingLotToJSON(json) {
@@ -70,5 +72,6 @@ export function ParkingLotToJSONTyped(value, ignoreDiscriminator = false) {
70
72
  'paid': value['paid'],
71
73
  'reservation_required': value['reservationRequired'],
72
74
  'updated_at': value['updatedAt'].toISOString(),
75
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImageToJSON)),
73
76
  };
74
77
  }
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { RunStatus } from './RunStatus';
13
+ import type { EntityImage } from './EntityImage';
13
14
  import type { RunDifficulty } from './RunDifficulty';
14
15
  /**
15
16
  * Represents a single run at the resort with its current status,
@@ -109,6 +110,13 @@ export interface Run {
109
110
  * @memberof Run
110
111
  */
111
112
  updatedAt: Date;
113
+ /**
114
+ * Images attached to this run, ordered for display. Each includes a
115
+ * ThumbHash for rendering a blurred placeholder while the image loads.
116
+ * @type {Array<EntityImage>}
117
+ * @memberof Run
118
+ */
119
+ images?: Array<EntityImage>;
112
120
  }
113
121
  /**
114
122
  * Check if a given object implements the Run interface.
@@ -12,6 +12,7 @@
12
12
  * Do not edit the class manually.
13
13
  */
14
14
  import { RunStatusFromJSON, RunStatusToJSON, } from './RunStatus';
15
+ import { EntityImageFromJSON, EntityImageToJSON, } from './EntityImage';
15
16
  import { RunDifficultyFromJSON, RunDifficultyToJSON, } from './RunDifficulty';
16
17
  /**
17
18
  * Check if a given object implements the Run interface.
@@ -62,6 +63,7 @@ export function RunFromJSONTyped(json, ignoreDiscriminator) {
62
63
  'areaName': json['area_name'] == null ? undefined : json['area_name'],
63
64
  'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
64
65
  'updatedAt': (new Date(json['updated_at'])),
66
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImageFromJSON)),
65
67
  };
66
68
  }
67
69
  export function RunToJSON(json) {
@@ -87,5 +89,6 @@ export function RunToJSONTyped(value, ignoreDiscriminator = false) {
87
89
  'area_name': value['areaName'],
88
90
  'area_display_order': value['areaDisplayOrder'],
89
91
  'updated_at': value['updatedAt'].toISOString(),
92
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImageToJSON)),
90
93
  };
91
94
  }
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { SummerTrailStatus } from './SummerTrailStatus';
13
13
  import type { SummerTrailType } from './SummerTrailType';
14
+ import type { EntityImage } from './EntityImage';
14
15
  import type { SummerTrailDifficulty } from './SummerTrailDifficulty';
15
16
  /**
16
17
  * Represents a single summer trail at the resort with its current status,
@@ -91,6 +92,13 @@ export interface SummerTrail {
91
92
  * @memberof SummerTrail
92
93
  */
93
94
  updatedAt: Date;
95
+ /**
96
+ * Images attached to this trail, ordered for display. Each includes a
97
+ * ThumbHash for rendering a blurred placeholder while the image loads.
98
+ * @type {Array<EntityImage>}
99
+ * @memberof SummerTrail
100
+ */
101
+ images?: Array<EntityImage>;
94
102
  }
95
103
  /**
96
104
  * Check if a given object implements the SummerTrail interface.
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { SummerTrailStatusFromJSON, SummerTrailStatusToJSON, } from './SummerTrailStatus';
15
15
  import { SummerTrailTypeFromJSON, SummerTrailTypeToJSON, } from './SummerTrailType';
16
+ import { EntityImageFromJSON, EntityImageToJSON, } from './EntityImage';
16
17
  import { SummerTrailDifficultyFromJSON, SummerTrailDifficultyToJSON, } from './SummerTrailDifficulty';
17
18
  /**
18
19
  * Check if a given object implements the SummerTrail interface.
@@ -54,6 +55,7 @@ export function SummerTrailFromJSONTyped(json, ignoreDiscriminator) {
54
55
  'areaName': json['area_name'] == null ? undefined : json['area_name'],
55
56
  'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
56
57
  'updatedAt': (new Date(json['updated_at'])),
58
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImageFromJSON)),
57
59
  };
58
60
  }
59
61
  export function SummerTrailToJSON(json) {
@@ -76,5 +78,6 @@ export function SummerTrailToJSONTyped(value, ignoreDiscriminator = false) {
76
78
  'area_name': value['areaName'],
77
79
  'area_display_order': value['areaDisplayOrder'],
78
80
  'updated_at': value['updatedAt'].toISOString(),
81
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImageToJSON)),
79
82
  };
80
83
  }
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { TerrainParkFeature } from './TerrainParkFeature';
13
+ import type { EntityImage } from './EntityImage';
13
14
  import type { TerrainParkStatus } from './TerrainParkStatus';
14
15
  /**
15
16
  * Represents a terrain park at the resort with its current status,
@@ -84,6 +85,13 @@ export interface TerrainPark {
84
85
  * @memberof TerrainPark
85
86
  */
86
87
  updatedAt: Date;
88
+ /**
89
+ * Images attached to this terrain park, ordered for display. Each includes
90
+ * a ThumbHash for rendering a blurred placeholder while the image loads.
91
+ * @type {Array<EntityImage>}
92
+ * @memberof TerrainPark
93
+ */
94
+ images?: Array<EntityImage>;
87
95
  }
88
96
  /**
89
97
  * Check if a given object implements the TerrainPark interface.
@@ -12,6 +12,7 @@
12
12
  * Do not edit the class manually.
13
13
  */
14
14
  import { TerrainParkFeatureFromJSON, TerrainParkFeatureToJSON, } from './TerrainParkFeature';
15
+ import { EntityImageFromJSON, EntityImageToJSON, } from './EntityImage';
15
16
  import { TerrainParkStatusFromJSON, TerrainParkStatusToJSON, } from './TerrainParkStatus';
16
17
  /**
17
18
  * Check if a given object implements the TerrainPark interface.
@@ -52,6 +53,7 @@ export function TerrainParkFromJSONTyped(json, ignoreDiscriminator) {
52
53
  'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
53
54
  'features': (json['features'].map(TerrainParkFeatureFromJSON)),
54
55
  'updatedAt': (new Date(json['updated_at'])),
56
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImageFromJSON)),
55
57
  };
56
58
  }
57
59
  export function TerrainParkToJSON(json) {
@@ -73,5 +75,6 @@ export function TerrainParkToJSONTyped(value, ignoreDiscriminator = false) {
73
75
  'area_display_order': value['areaDisplayOrder'],
74
76
  'features': (value['features'].map(TerrainParkFeatureToJSON)),
75
77
  'updated_at': value['updatedAt'].toISOString(),
78
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImageToJSON)),
76
79
  };
77
80
  }
@@ -12,6 +12,7 @@
12
12
  import type { FeatureType } from './FeatureType';
13
13
  import type { FeatureSize } from './FeatureSize';
14
14
  import type { TerrainParkFeatureStatus } from './TerrainParkFeatureStatus';
15
+ import type { EntityImage } from './EntityImage';
15
16
  /**
16
17
  * Represents a single feature within a terrain park (jump, box, rail, etc.)
17
18
  * with its current status and size rating.
@@ -62,6 +63,13 @@ export interface TerrainParkFeature {
62
63
  * @memberof TerrainParkFeature
63
64
  */
64
65
  status: TerrainParkFeatureStatus;
66
+ /**
67
+ * Images attached to this feature, ordered for display. Each includes a
68
+ * ThumbHash for rendering a blurred placeholder while the image loads.
69
+ * @type {Array<EntityImage>}
70
+ * @memberof TerrainParkFeature
71
+ */
72
+ images?: Array<EntityImage>;
65
73
  }
66
74
  /**
67
75
  * Check if a given object implements the TerrainParkFeature interface.
@@ -14,6 +14,7 @@
14
14
  import { FeatureTypeFromJSON, FeatureTypeToJSON, } from './FeatureType';
15
15
  import { FeatureSizeFromJSON, FeatureSizeToJSON, } from './FeatureSize';
16
16
  import { TerrainParkFeatureStatusFromJSON, TerrainParkFeatureStatusToJSON, } from './TerrainParkFeatureStatus';
17
+ import { EntityImageFromJSON, EntityImageToJSON, } from './EntityImage';
17
18
  /**
18
19
  * Check if a given object implements the TerrainParkFeature interface.
19
20
  */
@@ -45,6 +46,7 @@ export function TerrainParkFeatureFromJSONTyped(json, ignoreDiscriminator) {
45
46
  'featureType': FeatureTypeFromJSON(json['feature_type']),
46
47
  'size': json['size'] == null ? undefined : FeatureSizeFromJSON(json['size']),
47
48
  'status': TerrainParkFeatureStatusFromJSON(json['status']),
49
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImageFromJSON)),
48
50
  };
49
51
  }
50
52
  export function TerrainParkFeatureToJSON(json) {
@@ -62,5 +64,6 @@ export function TerrainParkFeatureToJSONTyped(value, ignoreDiscriminator = false
62
64
  'feature_type': FeatureTypeToJSON(value['featureType']),
63
65
  'size': FeatureSizeToJSON(value['size']),
64
66
  'status': TerrainParkFeatureStatusToJSON(value['status']),
67
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImageToJSON)),
65
68
  };
66
69
  }
@@ -19,6 +19,24 @@ import type { DailyForecast } from './DailyForecast';
19
19
  * @interface Weather
20
20
  */
21
21
  export interface Weather {
22
+ /**
23
+ * The area this weather belongs to, or omitted for resort-wide weather.
24
+ * @type {string}
25
+ * @memberof Weather
26
+ */
27
+ areaUuid?: string | null;
28
+ /**
29
+ * The area's name, or omitted for resort-wide weather.
30
+ * @type {string}
31
+ * @memberof Weather
32
+ */
33
+ areaName?: string | null;
34
+ /**
35
+ * The area's display order, or omitted for resort-wide weather.
36
+ * @type {number}
37
+ * @memberof Weather
38
+ */
39
+ areaDisplayOrder?: number | null;
22
40
  /**
23
41
  * Current weather conditions
24
42
  * @type {CurrentWeather}
@@ -38,6 +38,9 @@ export function WeatherFromJSONTyped(json, ignoreDiscriminator) {
38
38
  return json;
39
39
  }
40
40
  return {
41
+ 'areaUuid': json['area_uuid'] == null ? undefined : json['area_uuid'],
42
+ 'areaName': json['area_name'] == null ? undefined : json['area_name'],
43
+ 'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
41
44
  'current': CurrentWeatherFromJSON(json['current']),
42
45
  'hourlyForecast': (json['hourly_forecast'].map(HourlyForecastFromJSON)),
43
46
  'dailyForecast': (json['daily_forecast'].map(DailyForecastFromJSON)),
@@ -53,6 +56,9 @@ export function WeatherToJSONTyped(value, ignoreDiscriminator = false) {
53
56
  return value;
54
57
  }
55
58
  return {
59
+ 'area_uuid': value['areaUuid'],
60
+ 'area_name': value['areaName'],
61
+ 'area_display_order': value['areaDisplayOrder'],
56
62
  'current': CurrentWeatherToJSON(value['current']),
57
63
  'hourly_forecast': (value['hourlyForecast'].map(HourlyForecastToJSON)),
58
64
  'daily_forecast': (value['dailyForecast'].map(DailyForecastToJSON)),
@@ -11,6 +11,7 @@ export * from './DailyForecast';
11
11
  export * from './DailyForecastImperial';
12
12
  export * from './DailyForecastMetric';
13
13
  export * from './DayOfWeek';
14
+ export * from './EntityImage';
14
15
  export * from './FeatureSize';
15
16
  export * from './FeatureType';
16
17
  export * from './FullReport';
@@ -13,6 +13,7 @@ export * from './DailyForecast';
13
13
  export * from './DailyForecastImperial';
14
14
  export * from './DailyForecastMetric';
15
15
  export * from './DayOfWeek';
16
+ export * from './EntityImage';
16
17
  export * from './FeatureSize';
17
18
  export * from './FeatureType';
18
19
  export * from './FullReport';
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { AmenityCategory } from './AmenityCategory';
13
13
  import type { Schedule } from './Schedule';
14
+ import type { EntityImage } from './EntityImage';
14
15
  /**
15
16
  * Represents an amenity at the resort (e.g. lodge, restaurant, ski school)
16
17
  * with its category, description, website, and hours.
@@ -48,6 +49,13 @@ export interface Amenity {
48
49
  * @memberof Amenity
49
50
  */
50
51
  website: string;
52
+ /**
53
+ * Whether this amenity reports operating hours. When false, clients should
54
+ * not expect `opens_at`, `closes_at`, or `schedules` to ever be populated.
55
+ * @type {boolean}
56
+ * @memberof Amenity
57
+ */
58
+ hasOperatingHours: boolean;
51
59
  /**
52
60
  * Today's scheduled opening time in 24-hour format (HH:MM), in resort's local timezone.
53
61
  * @type {string}
@@ -67,6 +75,13 @@ export interface Amenity {
67
75
  * @memberof Amenity
68
76
  */
69
77
  schedules: Array<Schedule>;
78
+ /**
79
+ * Images attached to this amenity, ordered for display. Each includes a
80
+ * ThumbHash for rendering a blurred placeholder while the image loads.
81
+ * @type {Array<EntityImage>}
82
+ * @memberof Amenity
83
+ */
84
+ images?: Array<EntityImage>;
70
85
  }
71
86
  /**
72
87
  * Check if a given object implements the Amenity interface.
@@ -20,6 +20,7 @@ exports.AmenityToJSON = AmenityToJSON;
20
20
  exports.AmenityToJSONTyped = AmenityToJSONTyped;
21
21
  const AmenityCategory_1 = require("./AmenityCategory");
22
22
  const Schedule_1 = require("./Schedule");
23
+ const EntityImage_1 = require("./EntityImage");
23
24
  /**
24
25
  * Check if a given object implements the Amenity interface.
25
26
  */
@@ -34,6 +35,8 @@ function instanceOfAmenity(value) {
34
35
  return false;
35
36
  if (!('website' in value) || value['website'] === undefined)
36
37
  return false;
38
+ if ((!('hasOperatingHours' in value) && !('has_operating_hours' in value)) || (value['hasOperatingHours'] === undefined && value['has_operating_hours'] === undefined))
39
+ return false;
37
40
  if (!('schedules' in value) || value['schedules'] === undefined)
38
41
  return false;
39
42
  return true;
@@ -51,9 +54,11 @@ function AmenityFromJSONTyped(json, ignoreDiscriminator) {
51
54
  'name': json['name'],
52
55
  'category': (0, AmenityCategory_1.AmenityCategoryFromJSON)(json['category']),
53
56
  'website': json['website'],
57
+ 'hasOperatingHours': json['has_operating_hours'],
54
58
  'opensAt': json['opens_at'] == null ? undefined : json['opens_at'],
55
59
  'closesAt': json['closes_at'] == null ? undefined : json['closes_at'],
56
60
  'schedules': (json['schedules'].map(Schedule_1.ScheduleFromJSON)),
61
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImage_1.EntityImageFromJSON)),
57
62
  };
58
63
  }
59
64
  function AmenityToJSON(json) {
@@ -69,8 +74,10 @@ function AmenityToJSONTyped(value, ignoreDiscriminator = false) {
69
74
  'name': value['name'],
70
75
  'category': (0, AmenityCategory_1.AmenityCategoryToJSON)(value['category']),
71
76
  'website': value['website'],
77
+ 'has_operating_hours': value['hasOperatingHours'],
72
78
  'opens_at': value['opensAt'],
73
79
  'closes_at': value['closesAt'],
74
80
  'schedules': (value['schedules'].map(Schedule_1.ScheduleToJSON)),
81
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImage_1.EntityImageToJSON)),
75
82
  };
76
83
  }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * MtnManager API
3
+ * The MtnManager API provides real-time access to your ski resort’s public operational data. Use it to display current conditions on your website, mobile app, or digital signage.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: support@mtnmanager.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * A single image attached to a resort entity, with a client-supplied ThumbHash
14
+ * for rendering a blurred placeholder while the full image loads.
15
+ * @export
16
+ * @interface EntityImage
17
+ */
18
+ export interface EntityImage {
19
+ /**
20
+ * Full public URL to the image.
21
+ * @type {string}
22
+ * @memberof EntityImage
23
+ */
24
+ url: string;
25
+ /**
26
+ * Base64-encoded ThumbHash for placeholder rendering.
27
+ * @type {string}
28
+ * @memberof EntityImage
29
+ */
30
+ thumbHash: string;
31
+ }
32
+ /**
33
+ * Check if a given object implements the EntityImage interface.
34
+ */
35
+ export declare function instanceOfEntityImage(value: object): value is EntityImage;
36
+ export declare function EntityImageFromJSON(json: any): EntityImage;
37
+ export declare function EntityImageFromJSONTyped(json: any, ignoreDiscriminator: boolean): EntityImage;
38
+ export declare function EntityImageToJSON(json: any): EntityImage;
39
+ export declare function EntityImageToJSONTyped(value?: EntityImage | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * MtnManager API
6
+ * The MtnManager API provides real-time access to your ski resort’s public operational data. Use it to display current conditions on your website, mobile app, or digital signage.
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ * Contact: support@mtnmanager.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfEntityImage = instanceOfEntityImage;
17
+ exports.EntityImageFromJSON = EntityImageFromJSON;
18
+ exports.EntityImageFromJSONTyped = EntityImageFromJSONTyped;
19
+ exports.EntityImageToJSON = EntityImageToJSON;
20
+ exports.EntityImageToJSONTyped = EntityImageToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the EntityImage interface.
23
+ */
24
+ function instanceOfEntityImage(value) {
25
+ if (!('url' in value) || value['url'] === undefined)
26
+ return false;
27
+ if ((!('thumbHash' in value) && !('thumb_hash' in value)) || (value['thumbHash'] === undefined && value['thumb_hash'] === undefined))
28
+ return false;
29
+ return true;
30
+ }
31
+ function EntityImageFromJSON(json) {
32
+ return EntityImageFromJSONTyped(json, false);
33
+ }
34
+ function EntityImageFromJSONTyped(json, ignoreDiscriminator) {
35
+ if (json == null) {
36
+ return json;
37
+ }
38
+ return {
39
+ 'url': json['url'],
40
+ 'thumbHash': json['thumb_hash'],
41
+ };
42
+ }
43
+ function EntityImageToJSON(json) {
44
+ return EntityImageToJSONTyped(json, false);
45
+ }
46
+ function EntityImageToJSONTyped(value, ignoreDiscriminator = false) {
47
+ if (value == null) {
48
+ return value;
49
+ }
50
+ return {
51
+ 'url': value['url'],
52
+ 'thumb_hash': value['thumbHash'],
53
+ };
54
+ }
@@ -88,11 +88,13 @@ export interface FullReport {
88
88
  */
89
89
  hours: OperatingHours;
90
90
  /**
91
- *
92
- * @type {Weather}
91
+ * Weather entries: the resort-wide entry first (current + forecast), then
92
+ * any per-area current-conditions entries. Empty when weather is disabled
93
+ * or unavailable.
94
+ * @type {Array<Weather>}
93
95
  * @memberof FullReport
94
96
  */
95
- weather?: Weather | null;
97
+ weather?: Array<Weather>;
96
98
  }
97
99
  /**
98
100
  * Check if a given object implements the FullReport interface.
@@ -69,7 +69,7 @@ function FullReportFromJSONTyped(json, ignoreDiscriminator) {
69
69
  'parkingLots': (json['parking_lots'].map(ParkingLot_1.ParkingLotFromJSON)),
70
70
  'summerTrails': (json['summer_trails'].map(SummerTrail_1.SummerTrailFromJSON)),
71
71
  'hours': (0, OperatingHours_1.OperatingHoursFromJSON)(json['hours']),
72
- 'weather': json['weather'] == null ? undefined : (0, Weather_1.WeatherFromJSON)(json['weather']),
72
+ 'weather': json['weather'] == null ? undefined : (json['weather'].map(Weather_1.WeatherFromJSON)),
73
73
  };
74
74
  }
75
75
  function FullReportToJSON(json) {
@@ -89,6 +89,6 @@ function FullReportToJSONTyped(value, ignoreDiscriminator = false) {
89
89
  'parking_lots': (value['parkingLots'].map(ParkingLot_1.ParkingLotToJSON)),
90
90
  'summer_trails': (value['summerTrails'].map(SummerTrail_1.SummerTrailToJSON)),
91
91
  'hours': (0, OperatingHours_1.OperatingHoursToJSON)(value['hours']),
92
- 'weather': (0, Weather_1.WeatherToJSON)(value['weather']),
92
+ 'weather': value['weather'] == null ? undefined : (value['weather'].map(Weather_1.WeatherToJSON)),
93
93
  };
94
94
  }
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { LiftStatus } from './LiftStatus';
13
13
  import type { LiftType } from './LiftType';
14
+ import type { EntityImage } from './EntityImage';
14
15
  /**
15
16
  * Represents a single lift at the resort with its current operational status,
16
17
  * type, and optional wait time information.
@@ -146,6 +147,13 @@ export interface Lift {
146
147
  * @memberof Lift
147
148
  */
148
149
  updatedAt: Date;
150
+ /**
151
+ * Images attached to this lift, ordered for display. Each includes a
152
+ * ThumbHash for rendering a blurred placeholder while the image loads.
153
+ * @type {Array<EntityImage>}
154
+ * @memberof Lift
155
+ */
156
+ images?: Array<EntityImage>;
149
157
  }
150
158
  /**
151
159
  * Check if a given object implements the Lift interface.
@@ -20,6 +20,7 @@ exports.LiftToJSON = LiftToJSON;
20
20
  exports.LiftToJSONTyped = LiftToJSONTyped;
21
21
  const LiftStatus_1 = require("./LiftStatus");
22
22
  const LiftType_1 = require("./LiftType");
23
+ const EntityImage_1 = require("./EntityImage");
23
24
  /**
24
25
  * Check if a given object implements the Lift interface.
25
26
  */
@@ -73,6 +74,7 @@ function LiftFromJSONTyped(json, ignoreDiscriminator) {
73
74
  'areaName': json['area_name'] == null ? undefined : json['area_name'],
74
75
  'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
75
76
  'updatedAt': (new Date(json['updated_at'])),
77
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImage_1.EntityImageFromJSON)),
76
78
  };
77
79
  }
78
80
  function LiftToJSON(json) {
@@ -104,5 +106,6 @@ function LiftToJSONTyped(value, ignoreDiscriminator = false) {
104
106
  'area_name': value['areaName'],
105
107
  'area_display_order': value['areaDisplayOrder'],
106
108
  'updated_at': value['updatedAt'].toISOString(),
109
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImage_1.EntityImageToJSON)),
107
110
  };
108
111
  }
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { ParkingLotStatus } from './ParkingLotStatus';
13
+ import type { EntityImage } from './EntityImage';
13
14
  /**
14
15
  * Represents a parking lot at the resort with its current status and amenities.
15
16
  * @export
@@ -70,6 +71,13 @@ export interface ParkingLot {
70
71
  * @memberof ParkingLot
71
72
  */
72
73
  updatedAt: Date;
74
+ /**
75
+ * Images attached to this parking lot, ordered for display. Each includes a
76
+ * ThumbHash for rendering a blurred placeholder while the image loads.
77
+ * @type {Array<EntityImage>}
78
+ * @memberof ParkingLot
79
+ */
80
+ images?: Array<EntityImage>;
73
81
  }
74
82
  /**
75
83
  * Check if a given object implements the ParkingLot interface.
@@ -19,6 +19,7 @@ exports.ParkingLotFromJSONTyped = ParkingLotFromJSONTyped;
19
19
  exports.ParkingLotToJSON = ParkingLotToJSON;
20
20
  exports.ParkingLotToJSONTyped = ParkingLotToJSONTyped;
21
21
  const ParkingLotStatus_1 = require("./ParkingLotStatus");
22
+ const EntityImage_1 = require("./EntityImage");
22
23
  /**
23
24
  * Check if a given object implements the ParkingLot interface.
24
25
  */
@@ -58,6 +59,7 @@ function ParkingLotFromJSONTyped(json, ignoreDiscriminator) {
58
59
  'paid': json['paid'],
59
60
  'reservationRequired': json['reservation_required'],
60
61
  'updatedAt': (new Date(json['updated_at'])),
62
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImage_1.EntityImageFromJSON)),
61
63
  };
62
64
  }
63
65
  function ParkingLotToJSON(json) {
@@ -77,5 +79,6 @@ function ParkingLotToJSONTyped(value, ignoreDiscriminator = false) {
77
79
  'paid': value['paid'],
78
80
  'reservation_required': value['reservationRequired'],
79
81
  'updated_at': value['updatedAt'].toISOString(),
82
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImage_1.EntityImageToJSON)),
80
83
  };
81
84
  }
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { RunStatus } from './RunStatus';
13
+ import type { EntityImage } from './EntityImage';
13
14
  import type { RunDifficulty } from './RunDifficulty';
14
15
  /**
15
16
  * Represents a single run at the resort with its current status,
@@ -109,6 +110,13 @@ export interface Run {
109
110
  * @memberof Run
110
111
  */
111
112
  updatedAt: Date;
113
+ /**
114
+ * Images attached to this run, ordered for display. Each includes a
115
+ * ThumbHash for rendering a blurred placeholder while the image loads.
116
+ * @type {Array<EntityImage>}
117
+ * @memberof Run
118
+ */
119
+ images?: Array<EntityImage>;
112
120
  }
113
121
  /**
114
122
  * Check if a given object implements the Run interface.
@@ -19,6 +19,7 @@ exports.RunFromJSONTyped = RunFromJSONTyped;
19
19
  exports.RunToJSON = RunToJSON;
20
20
  exports.RunToJSONTyped = RunToJSONTyped;
21
21
  const RunStatus_1 = require("./RunStatus");
22
+ const EntityImage_1 = require("./EntityImage");
22
23
  const RunDifficulty_1 = require("./RunDifficulty");
23
24
  /**
24
25
  * Check if a given object implements the Run interface.
@@ -69,6 +70,7 @@ function RunFromJSONTyped(json, ignoreDiscriminator) {
69
70
  'areaName': json['area_name'] == null ? undefined : json['area_name'],
70
71
  'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
71
72
  'updatedAt': (new Date(json['updated_at'])),
73
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImage_1.EntityImageFromJSON)),
72
74
  };
73
75
  }
74
76
  function RunToJSON(json) {
@@ -94,5 +96,6 @@ function RunToJSONTyped(value, ignoreDiscriminator = false) {
94
96
  'area_name': value['areaName'],
95
97
  'area_display_order': value['areaDisplayOrder'],
96
98
  'updated_at': value['updatedAt'].toISOString(),
99
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImage_1.EntityImageToJSON)),
97
100
  };
98
101
  }
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { SummerTrailStatus } from './SummerTrailStatus';
13
13
  import type { SummerTrailType } from './SummerTrailType';
14
+ import type { EntityImage } from './EntityImage';
14
15
  import type { SummerTrailDifficulty } from './SummerTrailDifficulty';
15
16
  /**
16
17
  * Represents a single summer trail at the resort with its current status,
@@ -91,6 +92,13 @@ export interface SummerTrail {
91
92
  * @memberof SummerTrail
92
93
  */
93
94
  updatedAt: Date;
95
+ /**
96
+ * Images attached to this trail, ordered for display. Each includes a
97
+ * ThumbHash for rendering a blurred placeholder while the image loads.
98
+ * @type {Array<EntityImage>}
99
+ * @memberof SummerTrail
100
+ */
101
+ images?: Array<EntityImage>;
94
102
  }
95
103
  /**
96
104
  * Check if a given object implements the SummerTrail interface.
@@ -20,6 +20,7 @@ exports.SummerTrailToJSON = SummerTrailToJSON;
20
20
  exports.SummerTrailToJSONTyped = SummerTrailToJSONTyped;
21
21
  const SummerTrailStatus_1 = require("./SummerTrailStatus");
22
22
  const SummerTrailType_1 = require("./SummerTrailType");
23
+ const EntityImage_1 = require("./EntityImage");
23
24
  const SummerTrailDifficulty_1 = require("./SummerTrailDifficulty");
24
25
  /**
25
26
  * Check if a given object implements the SummerTrail interface.
@@ -61,6 +62,7 @@ function SummerTrailFromJSONTyped(json, ignoreDiscriminator) {
61
62
  'areaName': json['area_name'] == null ? undefined : json['area_name'],
62
63
  'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
63
64
  'updatedAt': (new Date(json['updated_at'])),
65
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImage_1.EntityImageFromJSON)),
64
66
  };
65
67
  }
66
68
  function SummerTrailToJSON(json) {
@@ -83,5 +85,6 @@ function SummerTrailToJSONTyped(value, ignoreDiscriminator = false) {
83
85
  'area_name': value['areaName'],
84
86
  'area_display_order': value['areaDisplayOrder'],
85
87
  'updated_at': value['updatedAt'].toISOString(),
88
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImage_1.EntityImageToJSON)),
86
89
  };
87
90
  }
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { TerrainParkFeature } from './TerrainParkFeature';
13
+ import type { EntityImage } from './EntityImage';
13
14
  import type { TerrainParkStatus } from './TerrainParkStatus';
14
15
  /**
15
16
  * Represents a terrain park at the resort with its current status,
@@ -84,6 +85,13 @@ export interface TerrainPark {
84
85
  * @memberof TerrainPark
85
86
  */
86
87
  updatedAt: Date;
88
+ /**
89
+ * Images attached to this terrain park, ordered for display. Each includes
90
+ * a ThumbHash for rendering a blurred placeholder while the image loads.
91
+ * @type {Array<EntityImage>}
92
+ * @memberof TerrainPark
93
+ */
94
+ images?: Array<EntityImage>;
87
95
  }
88
96
  /**
89
97
  * Check if a given object implements the TerrainPark interface.
@@ -19,6 +19,7 @@ exports.TerrainParkFromJSONTyped = TerrainParkFromJSONTyped;
19
19
  exports.TerrainParkToJSON = TerrainParkToJSON;
20
20
  exports.TerrainParkToJSONTyped = TerrainParkToJSONTyped;
21
21
  const TerrainParkFeature_1 = require("./TerrainParkFeature");
22
+ const EntityImage_1 = require("./EntityImage");
22
23
  const TerrainParkStatus_1 = require("./TerrainParkStatus");
23
24
  /**
24
25
  * Check if a given object implements the TerrainPark interface.
@@ -59,6 +60,7 @@ function TerrainParkFromJSONTyped(json, ignoreDiscriminator) {
59
60
  'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
60
61
  'features': (json['features'].map(TerrainParkFeature_1.TerrainParkFeatureFromJSON)),
61
62
  'updatedAt': (new Date(json['updated_at'])),
63
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImage_1.EntityImageFromJSON)),
62
64
  };
63
65
  }
64
66
  function TerrainParkToJSON(json) {
@@ -80,5 +82,6 @@ function TerrainParkToJSONTyped(value, ignoreDiscriminator = false) {
80
82
  'area_display_order': value['areaDisplayOrder'],
81
83
  'features': (value['features'].map(TerrainParkFeature_1.TerrainParkFeatureToJSON)),
82
84
  'updated_at': value['updatedAt'].toISOString(),
85
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImage_1.EntityImageToJSON)),
83
86
  };
84
87
  }
@@ -12,6 +12,7 @@
12
12
  import type { FeatureType } from './FeatureType';
13
13
  import type { FeatureSize } from './FeatureSize';
14
14
  import type { TerrainParkFeatureStatus } from './TerrainParkFeatureStatus';
15
+ import type { EntityImage } from './EntityImage';
15
16
  /**
16
17
  * Represents a single feature within a terrain park (jump, box, rail, etc.)
17
18
  * with its current status and size rating.
@@ -62,6 +63,13 @@ export interface TerrainParkFeature {
62
63
  * @memberof TerrainParkFeature
63
64
  */
64
65
  status: TerrainParkFeatureStatus;
66
+ /**
67
+ * Images attached to this feature, ordered for display. Each includes a
68
+ * ThumbHash for rendering a blurred placeholder while the image loads.
69
+ * @type {Array<EntityImage>}
70
+ * @memberof TerrainParkFeature
71
+ */
72
+ images?: Array<EntityImage>;
65
73
  }
66
74
  /**
67
75
  * Check if a given object implements the TerrainParkFeature interface.
@@ -21,6 +21,7 @@ exports.TerrainParkFeatureToJSONTyped = TerrainParkFeatureToJSONTyped;
21
21
  const FeatureType_1 = require("./FeatureType");
22
22
  const FeatureSize_1 = require("./FeatureSize");
23
23
  const TerrainParkFeatureStatus_1 = require("./TerrainParkFeatureStatus");
24
+ const EntityImage_1 = require("./EntityImage");
24
25
  /**
25
26
  * Check if a given object implements the TerrainParkFeature interface.
26
27
  */
@@ -52,6 +53,7 @@ function TerrainParkFeatureFromJSONTyped(json, ignoreDiscriminator) {
52
53
  'featureType': (0, FeatureType_1.FeatureTypeFromJSON)(json['feature_type']),
53
54
  'size': json['size'] == null ? undefined : (0, FeatureSize_1.FeatureSizeFromJSON)(json['size']),
54
55
  'status': (0, TerrainParkFeatureStatus_1.TerrainParkFeatureStatusFromJSON)(json['status']),
56
+ 'images': json['images'] == null ? undefined : (json['images'].map(EntityImage_1.EntityImageFromJSON)),
55
57
  };
56
58
  }
57
59
  function TerrainParkFeatureToJSON(json) {
@@ -69,5 +71,6 @@ function TerrainParkFeatureToJSONTyped(value, ignoreDiscriminator = false) {
69
71
  'feature_type': (0, FeatureType_1.FeatureTypeToJSON)(value['featureType']),
70
72
  'size': (0, FeatureSize_1.FeatureSizeToJSON)(value['size']),
71
73
  'status': (0, TerrainParkFeatureStatus_1.TerrainParkFeatureStatusToJSON)(value['status']),
74
+ 'images': value['images'] == null ? undefined : (value['images'].map(EntityImage_1.EntityImageToJSON)),
72
75
  };
73
76
  }
@@ -19,6 +19,24 @@ import type { DailyForecast } from './DailyForecast';
19
19
  * @interface Weather
20
20
  */
21
21
  export interface Weather {
22
+ /**
23
+ * The area this weather belongs to, or omitted for resort-wide weather.
24
+ * @type {string}
25
+ * @memberof Weather
26
+ */
27
+ areaUuid?: string | null;
28
+ /**
29
+ * The area's name, or omitted for resort-wide weather.
30
+ * @type {string}
31
+ * @memberof Weather
32
+ */
33
+ areaName?: string | null;
34
+ /**
35
+ * The area's display order, or omitted for resort-wide weather.
36
+ * @type {number}
37
+ * @memberof Weather
38
+ */
39
+ areaDisplayOrder?: number | null;
22
40
  /**
23
41
  * Current weather conditions
24
42
  * @type {CurrentWeather}
@@ -45,6 +45,9 @@ function WeatherFromJSONTyped(json, ignoreDiscriminator) {
45
45
  return json;
46
46
  }
47
47
  return {
48
+ 'areaUuid': json['area_uuid'] == null ? undefined : json['area_uuid'],
49
+ 'areaName': json['area_name'] == null ? undefined : json['area_name'],
50
+ 'areaDisplayOrder': json['area_display_order'] == null ? undefined : json['area_display_order'],
48
51
  'current': (0, CurrentWeather_1.CurrentWeatherFromJSON)(json['current']),
49
52
  'hourlyForecast': (json['hourly_forecast'].map(HourlyForecast_1.HourlyForecastFromJSON)),
50
53
  'dailyForecast': (json['daily_forecast'].map(DailyForecast_1.DailyForecastFromJSON)),
@@ -60,6 +63,9 @@ function WeatherToJSONTyped(value, ignoreDiscriminator = false) {
60
63
  return value;
61
64
  }
62
65
  return {
66
+ 'area_uuid': value['areaUuid'],
67
+ 'area_name': value['areaName'],
68
+ 'area_display_order': value['areaDisplayOrder'],
63
69
  'current': (0, CurrentWeather_1.CurrentWeatherToJSON)(value['current']),
64
70
  'hourly_forecast': (value['hourlyForecast'].map(HourlyForecast_1.HourlyForecastToJSON)),
65
71
  'daily_forecast': (value['dailyForecast'].map(DailyForecast_1.DailyForecastToJSON)),
@@ -11,6 +11,7 @@ export * from './DailyForecast';
11
11
  export * from './DailyForecastImperial';
12
12
  export * from './DailyForecastMetric';
13
13
  export * from './DayOfWeek';
14
+ export * from './EntityImage';
14
15
  export * from './FeatureSize';
15
16
  export * from './FeatureType';
16
17
  export * from './FullReport';
@@ -29,6 +29,7 @@ __exportStar(require("./DailyForecast"), exports);
29
29
  __exportStar(require("./DailyForecastImperial"), exports);
30
30
  __exportStar(require("./DailyForecastMetric"), exports);
31
31
  __exportStar(require("./DayOfWeek"), exports);
32
+ __exportStar(require("./EntityImage"), exports);
32
33
  __exportStar(require("./FeatureSize"), exports);
33
34
  __exportStar(require("./FeatureType"), exports);
34
35
  __exportStar(require("./FullReport"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mtnmanager/sdk",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "SDK for interacting with the MtnManager API, providing real-time access to your ski resort's public operational data.",
5
5
  "author": "OpenAPI-Generator",
6
6
  "main": "./dist/index.js",