@munchi_oy/core 2.8.0 → 2.10.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.
package/generated/api.ts CHANGED
@@ -216,6 +216,31 @@ export interface AddEmployeeRoleDto {
216
216
  */
217
217
  'permissionKeys': Array<PosPermission>;
218
218
  }
219
+ /**
220
+ *
221
+ * @export
222
+ * @interface AddShiftDto
223
+ */
224
+ export interface AddShiftDto {
225
+ /**
226
+ * The staff member the shift is of, by employee id; they must work at the venue
227
+ * @type {string}
228
+ * @memberof AddShiftDto
229
+ */
230
+ 'employeeId': string;
231
+ /**
232
+ * When the staff member clocked in, an ISO 8601 instant
233
+ * @type {string}
234
+ * @memberof AddShiftDto
235
+ */
236
+ 'clockInTime': string;
237
+ /**
238
+ * When the staff member clocked out, an ISO 8601 instant at or after the clock-in. Absent or null: the shift is still open
239
+ * @type {string}
240
+ * @memberof AddShiftDto
241
+ */
242
+ 'clockOutTime'?: string | null;
243
+ }
219
244
  /**
220
245
  *
221
246
  * @export
@@ -2846,6 +2871,25 @@ export interface ChangeResQOfferDto {
2846
2871
  */
2847
2872
  'fetchEnd'?: string;
2848
2873
  }
2874
+ /**
2875
+ *
2876
+ * @export
2877
+ * @interface ChangeShiftDto
2878
+ */
2879
+ export interface ChangeShiftDto {
2880
+ /**
2881
+ * The new clock-in, an ISO 8601 instant; null is refused. Absent: unchanged
2882
+ * @type {string}
2883
+ * @memberof ChangeShiftDto
2884
+ */
2885
+ 'clockInTime'?: string;
2886
+ /**
2887
+ * The new clock-out, an ISO 8601 instant at or after the clock-in (a forgotten clock-out set). Absent: unchanged
2888
+ * @type {string}
2889
+ * @memberof ChangeShiftDto
2890
+ */
2891
+ 'clockOutTime'?: string;
2892
+ }
2849
2893
  /**
2850
2894
  *
2851
2895
  * @export
@@ -11454,9 +11498,34 @@ export interface KdsStationDto {
11454
11498
  * @memberof KdsStationDto
11455
11499
  */
11456
11500
  'categoryIds': Array<string>;
11501
+ /**
11502
+ * The ordering channels whose whole orders this station takes, whatever its categories list; an empty list when it takes none
11503
+ * @type {Array<ProviderEnum>}
11504
+ * @memberof KdsStationDto
11505
+ */
11506
+ 'channels': Array<ProviderEnum>;
11457
11507
  }
11458
11508
 
11459
11509
 
11510
+ /**
11511
+ *
11512
+ * @export
11513
+ * @interface KioskAutoRejectDto
11514
+ */
11515
+ export interface KioskAutoRejectDto {
11516
+ /**
11517
+ * The kiosk order\'s id
11518
+ * @type {string}
11519
+ * @memberof KioskAutoRejectDto
11520
+ */
11521
+ 'orderId': string;
11522
+ /**
11523
+ * The venue whose order this is, by its venue id
11524
+ * @type {number}
11525
+ * @memberof KioskAutoRejectDto
11526
+ */
11527
+ 'orderingBusinessId': number;
11528
+ }
11460
11529
  /**
11461
11530
  *
11462
11531
  * @export
@@ -30532,6 +30601,25 @@ export interface SetEmployeeRoleDto {
30532
30601
  */
30533
30602
  'roleId': string;
30534
30603
  }
30604
+ /**
30605
+ *
30606
+ * @export
30607
+ * @interface SetKdsChannelStationsDto
30608
+ */
30609
+ export interface SetKdsChannelStationsDto {
30610
+ /**
30611
+ * The Munchi venue id (orderingBusinessId) the stations belong to
30612
+ * @type {number}
30613
+ * @memberof SetKdsChannelStationsDto
30614
+ */
30615
+ 'businessId': number;
30616
+ /**
30617
+ * The complete set of stations taking the channel\'s whole orders, by their ids in kds-service: it replaces the set the channel had. An empty list clears it
30618
+ * @type {Array<string>}
30619
+ * @memberof SetKdsChannelStationsDto
30620
+ */
30621
+ 'stationIds': Array<string>;
30622
+ }
30535
30623
  /**
30536
30624
  *
30537
30625
  * @export
@@ -30631,6 +30719,20 @@ export interface ShiftEmployeeDto {
30631
30719
  }
30632
30720
 
30633
30721
 
30722
+ /**
30723
+ *
30724
+ * @export
30725
+ * @enum {string}
30726
+ */
30727
+
30728
+ export const ShiftStatus = {
30729
+ Open: 'open',
30730
+ Closed: 'closed'
30731
+ } as const;
30732
+
30733
+ export type ShiftStatus = typeof ShiftStatus[keyof typeof ShiftStatus];
30734
+
30735
+
30634
30736
  /**
30635
30737
  *
30636
30738
  * @export
@@ -31084,6 +31186,12 @@ export interface StaffHoursResponseDto {
31084
31186
  * @interface StaffHoursShiftDto
31085
31187
  */
31086
31188
  export interface StaffHoursShiftDto {
31189
+ /**
31190
+ * The shift\'s id
31191
+ * @type {string}
31192
+ * @memberof StaffHoursShiftDto
31193
+ */
31194
+ 'shiftId': string;
31087
31195
  /**
31088
31196
  * When the staff member clocked in; null for a shift recorded with only a clock-out
31089
31197
  * @type {string}
@@ -31102,7 +31210,66 @@ export interface StaffHoursShiftDto {
31102
31210
  * @memberof StaffHoursShiftDto
31103
31211
  */
31104
31212
  'minutes': number;
31213
+ /**
31214
+ *
31215
+ * @type {ShiftStatus}
31216
+ * @memberof StaffHoursShiftDto
31217
+ */
31218
+ 'status': ShiftStatus;
31105
31219
  }
31220
+
31221
+
31222
+ /**
31223
+ *
31224
+ * @export
31225
+ * @interface StaffShiftDto
31226
+ */
31227
+ export interface StaffShiftDto {
31228
+ /**
31229
+ * The shift\'s id
31230
+ * @type {string}
31231
+ * @memberof StaffShiftDto
31232
+ */
31233
+ 'shiftId': string;
31234
+ /**
31235
+ * When the staff member clocked in; null for a shift recorded with only a clock-out
31236
+ * @type {string}
31237
+ * @memberof StaffShiftDto
31238
+ */
31239
+ 'clockInTime': string | null;
31240
+ /**
31241
+ * When the staff member clocked out; null while the shift is still open
31242
+ * @type {string}
31243
+ * @memberof StaffShiftDto
31244
+ */
31245
+ 'clockOutTime': string | null;
31246
+ /**
31247
+ * Whole minutes between clock-in and clock-out; 0 for a shift missing either time or clocked out before it clocked in, so a forgotten clock-out or a broken record adds nothing
31248
+ * @type {number}
31249
+ * @memberof StaffShiftDto
31250
+ */
31251
+ 'minutes': number;
31252
+ /**
31253
+ *
31254
+ * @type {ShiftStatus}
31255
+ * @memberof StaffShiftDto
31256
+ */
31257
+ 'status': ShiftStatus;
31258
+ /**
31259
+ * The staff member\'s id
31260
+ * @type {string}
31261
+ * @memberof StaffShiftDto
31262
+ */
31263
+ 'employeeId': string;
31264
+ /**
31265
+ * The staff member\'s name
31266
+ * @type {string}
31267
+ * @memberof StaffShiftDto
31268
+ */
31269
+ 'name': string;
31270
+ }
31271
+
31272
+
31106
31273
  /**
31107
31274
  *
31108
31275
  * @export
@@ -50766,7 +50933,7 @@ export class HistoryV6Api extends BaseAPI implements HistoryV6ApiInterface {
50766
50933
  export const InvoiceCompaniesApiAxiosParamCreator = function (configuration?: Configuration) {
50767
50934
  return {
50768
50935
  /**
50769
- * Saves a company the venue invoices, for munchi-dashboard-server, on behalf of the portal. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
50936
+ * Saves a company the venue invoices, for the dashboard\'s Settings › Payments on a person\'s sign-in, and for munchi-dashboard-server and the MCP on a key. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
50770
50937
  * @summary Create a new invoice company
50771
50938
  * @param {CreateInvoiceCompanyDto} createInvoiceCompanyDto
50772
50939
  * @param {*} [options] Override http request option.
@@ -50806,7 +50973,7 @@ export const InvoiceCompaniesApiAxiosParamCreator = function (configuration?: Co
50806
50973
  };
50807
50974
  },
50808
50975
  /**
50809
- * Deletes one of the venue\'s companies, for munchi-dashboard-server, on behalf of the portal. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
50976
+ * Deletes one of the venue\'s companies, for the same callers as POST. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
50810
50977
  * @summary Delete an invoice company
50811
50978
  * @param {string} id The company\&#39;s id
50812
50979
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -50983,7 +51150,7 @@ export const InvoiceCompaniesApiAxiosParamCreator = function (configuration?: Co
50983
51150
  };
50984
51151
  },
50985
51152
  /**
50986
- * Changes the fields sent and keeps the others, for munchi-dashboard-server, on behalf of the portal; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51153
+ * Changes the fields sent and keeps the others, for the same callers as POST; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
50987
51154
  * @summary Update an invoice company
50988
51155
  * @param {string} id The company\&#39;s id
50989
51156
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51044,7 +51211,7 @@ export const InvoiceCompaniesApiFp = function(configuration?: Configuration) {
51044
51211
  const localVarAxiosParamCreator = InvoiceCompaniesApiAxiosParamCreator(configuration)
51045
51212
  return {
51046
51213
  /**
51047
- * Saves a company the venue invoices, for munchi-dashboard-server, on behalf of the portal. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
51214
+ * Saves a company the venue invoices, for the dashboard\'s Settings › Payments on a person\'s sign-in, and for munchi-dashboard-server and the MCP on a key. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
51048
51215
  * @summary Create a new invoice company
51049
51216
  * @param {CreateInvoiceCompanyDto} createInvoiceCompanyDto
51050
51217
  * @param {*} [options] Override http request option.
@@ -51055,7 +51222,7 @@ export const InvoiceCompaniesApiFp = function(configuration?: Configuration) {
51055
51222
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
51056
51223
  },
51057
51224
  /**
51058
- * Deletes one of the venue\'s companies, for munchi-dashboard-server, on behalf of the portal. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
51225
+ * Deletes one of the venue\'s companies, for the same callers as POST. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
51059
51226
  * @summary Delete an invoice company
51060
51227
  * @param {string} id The company\&#39;s id
51061
51228
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51102,7 +51269,7 @@ export const InvoiceCompaniesApiFp = function(configuration?: Configuration) {
51102
51269
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
51103
51270
  },
51104
51271
  /**
51105
- * Changes the fields sent and keeps the others, for munchi-dashboard-server, on behalf of the portal; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51272
+ * Changes the fields sent and keeps the others, for the same callers as POST; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51106
51273
  * @summary Update an invoice company
51107
51274
  * @param {string} id The company\&#39;s id
51108
51275
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51125,7 +51292,7 @@ export const InvoiceCompaniesApiFactory = function (configuration?: Configuratio
51125
51292
  const localVarFp = InvoiceCompaniesApiFp(configuration)
51126
51293
  return {
51127
51294
  /**
51128
- * Saves a company the venue invoices, for munchi-dashboard-server, on behalf of the portal. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
51295
+ * Saves a company the venue invoices, for the dashboard\'s Settings › Payments on a person\'s sign-in, and for munchi-dashboard-server and the MCP on a key. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
51129
51296
  * @summary Create a new invoice company
51130
51297
  * @param {CreateInvoiceCompanyDto} createInvoiceCompanyDto
51131
51298
  * @param {*} [options] Override http request option.
@@ -51135,7 +51302,7 @@ export const InvoiceCompaniesApiFactory = function (configuration?: Configuratio
51135
51302
  return localVarFp.createInvoiceCompany(createInvoiceCompanyDto, options).then((request) => request(axios, basePath));
51136
51303
  },
51137
51304
  /**
51138
- * Deletes one of the venue\'s companies, for munchi-dashboard-server, on behalf of the portal. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
51305
+ * Deletes one of the venue\'s companies, for the same callers as POST. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
51139
51306
  * @summary Delete an invoice company
51140
51307
  * @param {string} id The company\&#39;s id
51141
51308
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51178,7 +51345,7 @@ export const InvoiceCompaniesApiFactory = function (configuration?: Configuratio
51178
51345
  return localVarFp.searchInvoiceCompanies(businessId, search, options).then((request) => request(axios, basePath));
51179
51346
  },
51180
51347
  /**
51181
- * Changes the fields sent and keeps the others, for munchi-dashboard-server, on behalf of the portal; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51348
+ * Changes the fields sent and keeps the others, for the same callers as POST; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51182
51349
  * @summary Update an invoice company
51183
51350
  * @param {string} id The company\&#39;s id
51184
51351
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51199,7 +51366,7 @@ export const InvoiceCompaniesApiFactory = function (configuration?: Configuratio
51199
51366
  */
51200
51367
  export interface InvoiceCompaniesApiInterface {
51201
51368
  /**
51202
- * Saves a company the venue invoices, for munchi-dashboard-server, on behalf of the portal. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
51369
+ * Saves a company the venue invoices, for the dashboard\'s Settings › Payments on a person\'s sign-in, and for munchi-dashboard-server and the MCP on a key. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
51203
51370
  * @summary Create a new invoice company
51204
51371
  * @param {CreateInvoiceCompanyDto} createInvoiceCompanyDto
51205
51372
  * @param {*} [options] Override http request option.
@@ -51209,7 +51376,7 @@ export interface InvoiceCompaniesApiInterface {
51209
51376
  createInvoiceCompany(createInvoiceCompanyDto: CreateInvoiceCompanyDto, options?: AxiosRequestConfig): AxiosPromise<InvoiceCompanyResponseDto>;
51210
51377
 
51211
51378
  /**
51212
- * Deletes one of the venue\'s companies, for munchi-dashboard-server, on behalf of the portal. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
51379
+ * Deletes one of the venue\'s companies, for the same callers as POST. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
51213
51380
  * @summary Delete an invoice company
51214
51381
  * @param {string} id The company\&#39;s id
51215
51382
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51252,7 +51419,7 @@ export interface InvoiceCompaniesApiInterface {
51252
51419
  searchInvoiceCompanies(businessId: number, search?: string, options?: AxiosRequestConfig): AxiosPromise<Array<InvoiceCompanyResponseDto>>;
51253
51420
 
51254
51421
  /**
51255
- * Changes the fields sent and keeps the others, for munchi-dashboard-server, on behalf of the portal; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51422
+ * Changes the fields sent and keeps the others, for the same callers as POST; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51256
51423
  * @summary Update an invoice company
51257
51424
  * @param {string} id The company\&#39;s id
51258
51425
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51273,7 +51440,7 @@ export interface InvoiceCompaniesApiInterface {
51273
51440
  */
51274
51441
  export class InvoiceCompaniesApi extends BaseAPI implements InvoiceCompaniesApiInterface {
51275
51442
  /**
51276
- * Saves a company the venue invoices, for munchi-dashboard-server, on behalf of the portal. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
51443
+ * Saves a company the venue invoices, for the dashboard\'s Settings › Payments on a person\'s sign-in, and for munchi-dashboard-server and the MCP on a key. The venue is the body\'s businessId; a body field the DTO does not declare is ignored. Once saved, the venue\'s kept company list and its config are invalidated.
51277
51444
  * @summary Create a new invoice company
51278
51445
  * @param {CreateInvoiceCompanyDto} createInvoiceCompanyDto
51279
51446
  * @param {*} [options] Override http request option.
@@ -51285,7 +51452,7 @@ export class InvoiceCompaniesApi extends BaseAPI implements InvoiceCompaniesApiI
51285
51452
  }
51286
51453
 
51287
51454
  /**
51288
- * Deletes one of the venue\'s companies, for munchi-dashboard-server, on behalf of the portal. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
51455
+ * Deletes one of the venue\'s companies, for the same callers as POST. Orders that already carry the company keep their copy of it. Once deleted, the venue\'s kept company list and its config are invalidated.
51289
51456
  * @summary Delete an invoice company
51290
51457
  * @param {string} id The company\&#39;s id
51291
51458
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51336,7 +51503,7 @@ export class InvoiceCompaniesApi extends BaseAPI implements InvoiceCompaniesApiI
51336
51503
  }
51337
51504
 
51338
51505
  /**
51339
- * Changes the fields sent and keeps the others, for munchi-dashboard-server, on behalf of the portal; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51506
+ * Changes the fields sent and keeps the others, for the same callers as POST; a body field the DTO does not declare is ignored, and an address, phone, countryCode or bic sent as null is cleared. Once changed, the venue\'s kept company list and its config are invalidated, and the company is answered as the change wrote it. A body with no field changes nothing and answers the company as it is.
51340
51507
  * @summary Update an invoice company
51341
51508
  * @param {string} id The company\&#39;s id
51342
51509
  * @param {number} businessId The venue the companies belong to: its orderingBusinessId
@@ -51732,6 +51899,50 @@ export const KDSApiAxiosParamCreator = function (configuration?: Configuration)
51732
51899
  options: localVarRequestOptions,
51733
51900
  };
51734
51901
  },
51902
+ /**
51903
+ * The stations named become exactly the set taking the channel\'s whole orders; an empty list clears it. Each must be one of the venue\'s active stations, never its NO_STATION profile. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
51904
+ * @summary Replace the stations taking a channel\'s whole orders
51905
+ * @param {ProviderEnum} channel The ordering channel whose whole orders go to the stations named
51906
+ * @param {SetKdsChannelStationsDto} setKdsChannelStationsDto The venue, and the complete set of stations taking the channel\&#39;s whole orders
51907
+ * @param {*} [options] Override http request option.
51908
+ * @throws {RequiredError}
51909
+ */
51910
+ setKdsChannelStations: async (channel: ProviderEnum, setKdsChannelStationsDto: SetKdsChannelStationsDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
51911
+ // verify required parameter 'channel' is not null or undefined
51912
+ assertParamExists('setKdsChannelStations', 'channel', channel)
51913
+ // verify required parameter 'setKdsChannelStationsDto' is not null or undefined
51914
+ assertParamExists('setKdsChannelStations', 'setKdsChannelStationsDto', setKdsChannelStationsDto)
51915
+ const localVarPath = `/api/v2/kds/stations/channels/{channel}`
51916
+ .replace(`{${"channel"}}`, encodeURIComponent(String(channel)));
51917
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
51918
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
51919
+ let baseOptions;
51920
+ if (configuration) {
51921
+ baseOptions = configuration.baseOptions;
51922
+ }
51923
+
51924
+ const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
51925
+ const localVarHeaderParameter = {} as any;
51926
+ const localVarQueryParameter = {} as any;
51927
+
51928
+ // authentication JWT-auth required
51929
+ // http bearer authentication required
51930
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
51931
+
51932
+
51933
+
51934
+ localVarHeaderParameter['Content-Type'] = 'application/json';
51935
+
51936
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
51937
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
51938
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
51939
+ localVarRequestOptions.data = serializeDataIfNeeded(setKdsChannelStationsDto, localVarRequestOptions, configuration)
51940
+
51941
+ return {
51942
+ url: toPathString(localVarUrlObj),
51943
+ options: localVarRequestOptions,
51944
+ };
51945
+ },
51735
51946
  /**
51736
51947
  * The station\'s categories become exactly the list sent, in one kds-service transaction; its name changes only when one is sent. The station must be one of the venue\'s active stations. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
51737
51948
  * @summary Rename a kitchen station and replace its categories
@@ -51885,6 +52096,18 @@ export const KDSApiFp = function(configuration?: Configuration) {
51885
52096
  const localVarAxiosArgs = await localVarAxiosParamCreator.listKdsStations(businessId, options);
51886
52097
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
51887
52098
  },
52099
+ /**
52100
+ * The stations named become exactly the set taking the channel\'s whole orders; an empty list clears it. Each must be one of the venue\'s active stations, never its NO_STATION profile. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
52101
+ * @summary Replace the stations taking a channel\'s whole orders
52102
+ * @param {ProviderEnum} channel The ordering channel whose whole orders go to the stations named
52103
+ * @param {SetKdsChannelStationsDto} setKdsChannelStationsDto The venue, and the complete set of stations taking the channel\&#39;s whole orders
52104
+ * @param {*} [options] Override http request option.
52105
+ * @throws {RequiredError}
52106
+ */
52107
+ async setKdsChannelStations(channel: ProviderEnum, setKdsChannelStationsDto: SetKdsChannelStationsDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<KdsStationDto>>> {
52108
+ const localVarAxiosArgs = await localVarAxiosParamCreator.setKdsChannelStations(channel, setKdsChannelStationsDto, options);
52109
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
52110
+ },
51888
52111
  /**
51889
52112
  * The station\'s categories become exactly the list sent, in one kds-service transaction; its name changes only when one is sent. The station must be one of the venue\'s active stations. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
51890
52113
  * @summary Rename a kitchen station and replace its categories
@@ -51998,6 +52221,17 @@ export const KDSApiFactory = function (configuration?: Configuration, basePath?:
51998
52221
  listKdsStations(businessId: number, options?: any): AxiosPromise<Array<KdsStationDto>> {
51999
52222
  return localVarFp.listKdsStations(businessId, options).then((request) => request(axios, basePath));
52000
52223
  },
52224
+ /**
52225
+ * The stations named become exactly the set taking the channel\'s whole orders; an empty list clears it. Each must be one of the venue\'s active stations, never its NO_STATION profile. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
52226
+ * @summary Replace the stations taking a channel\'s whole orders
52227
+ * @param {ProviderEnum} channel The ordering channel whose whole orders go to the stations named
52228
+ * @param {SetKdsChannelStationsDto} setKdsChannelStationsDto The venue, and the complete set of stations taking the channel\&#39;s whole orders
52229
+ * @param {*} [options] Override http request option.
52230
+ * @throws {RequiredError}
52231
+ */
52232
+ setKdsChannelStations(channel: ProviderEnum, setKdsChannelStationsDto: SetKdsChannelStationsDto, options?: any): AxiosPromise<Array<KdsStationDto>> {
52233
+ return localVarFp.setKdsChannelStations(channel, setKdsChannelStationsDto, options).then((request) => request(axios, basePath));
52234
+ },
52001
52235
  /**
52002
52236
  * The station\'s categories become exactly the list sent, in one kds-service transaction; its name changes only when one is sent. The station must be one of the venue\'s active stations. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
52003
52237
  * @summary Rename a kitchen station and replace its categories
@@ -52109,6 +52343,17 @@ export interface KDSApiInterface {
52109
52343
  */
52110
52344
  listKdsStations(businessId: number, options?: AxiosRequestConfig): AxiosPromise<Array<KdsStationDto>>;
52111
52345
 
52346
+ /**
52347
+ * The stations named become exactly the set taking the channel\'s whole orders; an empty list clears it. Each must be one of the venue\'s active stations, never its NO_STATION profile. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
52348
+ * @summary Replace the stations taking a channel\'s whole orders
52349
+ * @param {ProviderEnum} channel The ordering channel whose whole orders go to the stations named
52350
+ * @param {SetKdsChannelStationsDto} setKdsChannelStationsDto The venue, and the complete set of stations taking the channel\&#39;s whole orders
52351
+ * @param {*} [options] Override http request option.
52352
+ * @throws {RequiredError}
52353
+ * @memberof KDSApiInterface
52354
+ */
52355
+ setKdsChannelStations(channel: ProviderEnum, setKdsChannelStationsDto: SetKdsChannelStationsDto, options?: AxiosRequestConfig): AxiosPromise<Array<KdsStationDto>>;
52356
+
52112
52357
  /**
52113
52358
  * The station\'s categories become exactly the list sent, in one kds-service transaction; its name changes only when one is sent. The station must be one of the venue\'s active stations. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
52114
52359
  * @summary Rename a kitchen station and replace its categories
@@ -52236,6 +52481,19 @@ export class KDSApi extends BaseAPI implements KDSApiInterface {
52236
52481
  return KDSApiFp(this.configuration).listKdsStations(businessId, options).then((request) => request(this.axios, this.basePath));
52237
52482
  }
52238
52483
 
52484
+ /**
52485
+ * The stations named become exactly the set taking the channel\'s whole orders; an empty list clears it. Each must be one of the venue\'s active stations, never its NO_STATION profile. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
52486
+ * @summary Replace the stations taking a channel\'s whole orders
52487
+ * @param {ProviderEnum} channel The ordering channel whose whole orders go to the stations named
52488
+ * @param {SetKdsChannelStationsDto} setKdsChannelStationsDto The venue, and the complete set of stations taking the channel\&#39;s whole orders
52489
+ * @param {*} [options] Override http request option.
52490
+ * @throws {RequiredError}
52491
+ * @memberof KDSApi
52492
+ */
52493
+ public setKdsChannelStations(channel: ProviderEnum, setKdsChannelStationsDto: SetKdsChannelStationsDto, options?: AxiosRequestConfig) {
52494
+ return KDSApiFp(this.configuration).setKdsChannelStations(channel, setKdsChannelStationsDto, options).then((request) => request(this.axios, this.basePath));
52495
+ }
52496
+
52239
52497
  /**
52240
52498
  * The station\'s categories become exactly the list sent, in one kds-service transaction; its name changes only when one is sent. The station must be one of the venue\'s active stations. It admits a signed-in ticket, whose venue must be on its account, or a Clerk API key; never the shared service key.
52241
52499
  * @summary Rename a kitchen station and replace its categories
@@ -70858,6 +71116,98 @@ export class SavedReportsApi extends BaseAPI implements SavedReportsApiInterface
70858
71116
  */
70859
71117
  export const ShiftTrackingApiAxiosParamCreator = function (configuration?: Configuration) {
70860
71118
  return {
71119
+ /**
71120
+ * A shift added in the back office: its clock-in, and its clock-out unless the staff member is still working. It counts in the hours report like a shift clocked on the till. It is refused while it would be the staff member\'s second open shift at the venue (SHIFT_ALREADY_OPEN), or overlap another of their shifts there (SHIFTS_OVERLAP); an open shift runs on with no end, and shifts that only touch do not overlap. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71121
+ * @summary Record a shift the till missed, for a staff member who works at the venue
71122
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71123
+ * @param {AddShiftDto} addShiftDto
71124
+ * @param {*} [options] Override http request option.
71125
+ * @throws {RequiredError}
71126
+ */
71127
+ addShiftAtVenue: async (businessId: number, addShiftDto: AddShiftDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
71128
+ // verify required parameter 'businessId' is not null or undefined
71129
+ assertParamExists('addShiftAtVenue', 'businessId', businessId)
71130
+ // verify required parameter 'addShiftDto' is not null or undefined
71131
+ assertParamExists('addShiftAtVenue', 'addShiftDto', addShiftDto)
71132
+ const localVarPath = `/api/v2/businesses/{businessId}/shifts`
71133
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
71134
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
71135
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
71136
+ let baseOptions;
71137
+ if (configuration) {
71138
+ baseOptions = configuration.baseOptions;
71139
+ }
71140
+
71141
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
71142
+ const localVarHeaderParameter = {} as any;
71143
+ const localVarQueryParameter = {} as any;
71144
+
71145
+ // authentication JWT-auth required
71146
+ // http bearer authentication required
71147
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
71148
+
71149
+
71150
+
71151
+ localVarHeaderParameter['Content-Type'] = 'application/json';
71152
+
71153
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
71154
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
71155
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
71156
+ localVarRequestOptions.data = serializeDataIfNeeded(addShiftDto, localVarRequestOptions, configuration)
71157
+
71158
+ return {
71159
+ url: toPathString(localVarUrlObj),
71160
+ options: localVarRequestOptions,
71161
+ };
71162
+ },
71163
+ /**
71164
+ * Sets the times sent and keeps the others; a clock-out is never taken away, so a shift closed here stays closed, and it forgets the till session it was clocked in on, as a clock-out on the till does. The change is saved only while the shift is as it was read, so a clock-out the till writes at the same moment is never overwritten unseen, and never so that the shift overlaps another of the staff member\'s shifts at the venue (SHIFTS_OVERLAP). Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71165
+ * @summary Correct a shift\'s clock-in or clock-out, a forgotten clock-out among them
71166
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71167
+ * @param {string} shiftId The shift\&#39;s id
71168
+ * @param {ChangeShiftDto} changeShiftDto
71169
+ * @param {*} [options] Override http request option.
71170
+ * @throws {RequiredError}
71171
+ */
71172
+ changeShiftAtVenue: async (businessId: number, shiftId: string, changeShiftDto: ChangeShiftDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
71173
+ // verify required parameter 'businessId' is not null or undefined
71174
+ assertParamExists('changeShiftAtVenue', 'businessId', businessId)
71175
+ // verify required parameter 'shiftId' is not null or undefined
71176
+ assertParamExists('changeShiftAtVenue', 'shiftId', shiftId)
71177
+ // verify required parameter 'changeShiftDto' is not null or undefined
71178
+ assertParamExists('changeShiftAtVenue', 'changeShiftDto', changeShiftDto)
71179
+ const localVarPath = `/api/v2/businesses/{businessId}/shifts/{shiftId}`
71180
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)))
71181
+ .replace(`{${"shiftId"}}`, encodeURIComponent(String(shiftId)));
71182
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
71183
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
71184
+ let baseOptions;
71185
+ if (configuration) {
71186
+ baseOptions = configuration.baseOptions;
71187
+ }
71188
+
71189
+ const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};
71190
+ const localVarHeaderParameter = {} as any;
71191
+ const localVarQueryParameter = {} as any;
71192
+
71193
+ // authentication JWT-auth required
71194
+ // http bearer authentication required
71195
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
71196
+
71197
+
71198
+
71199
+ localVarHeaderParameter['Content-Type'] = 'application/json';
71200
+
71201
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
71202
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
71203
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
71204
+ localVarRequestOptions.data = serializeDataIfNeeded(changeShiftDto, localVarRequestOptions, configuration)
71205
+
71206
+ return {
71207
+ url: toPathString(localVarUrlObj),
71208
+ options: localVarRequestOptions,
71209
+ };
71210
+ },
70861
71211
  /**
70862
71212
  * Opens a shift clocked in now, with a new session, unless the employee already has one open at the venue: that one is answered as it is.
70863
71213
  * @summary Clock the employee in at the venue
@@ -71018,15 +71368,59 @@ export const ShiftTrackingApiAxiosParamCreator = function (configuration?: Confi
71018
71368
  };
71019
71369
  },
71020
71370
  /**
71021
- * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71371
+ * The shift no longer counts in the hours report. A shift still open is not removed (SHIFT_STILL_OPEN): its clock-out is set first, so the till\'s next clock-out is not recorded as a shift with no clock-in. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71372
+ * @summary Remove a shift recorded by mistake
71373
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71374
+ * @param {string} shiftId The shift\&#39;s id
71375
+ * @param {*} [options] Override http request option.
71376
+ * @throws {RequiredError}
71377
+ */
71378
+ removeShiftAtVenue: async (businessId: number, shiftId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
71379
+ // verify required parameter 'businessId' is not null or undefined
71380
+ assertParamExists('removeShiftAtVenue', 'businessId', businessId)
71381
+ // verify required parameter 'shiftId' is not null or undefined
71382
+ assertParamExists('removeShiftAtVenue', 'shiftId', shiftId)
71383
+ const localVarPath = `/api/v2/businesses/{businessId}/shifts/{shiftId}`
71384
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)))
71385
+ .replace(`{${"shiftId"}}`, encodeURIComponent(String(shiftId)));
71386
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
71387
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
71388
+ let baseOptions;
71389
+ if (configuration) {
71390
+ baseOptions = configuration.baseOptions;
71391
+ }
71392
+
71393
+ const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
71394
+ const localVarHeaderParameter = {} as any;
71395
+ const localVarQueryParameter = {} as any;
71396
+
71397
+ // authentication JWT-auth required
71398
+ // http bearer authentication required
71399
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
71400
+
71401
+
71402
+
71403
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
71404
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
71405
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
71406
+
71407
+ return {
71408
+ url: toPathString(localVarUrlObj),
71409
+ options: localVarRequestOptions,
71410
+ };
71411
+ },
71412
+ /**
71413
+ * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first, each with its id and status (open or closed). employeeIds keeps only those staff members\' shifts, and status only the open or the closed ones; every total counts the shifts kept. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71022
71414
  * @summary Each staff member\'s clocked hours at the venue over a period
71023
71415
  * @param {number} businessId The venue\&#39;s orderingBusinessId
71024
71416
  * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
71025
71417
  * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
71418
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
71419
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
71026
71420
  * @param {*} [options] Override http request option.
71027
71421
  * @throws {RequiredError}
71028
71422
  */
71029
- staffHoursAtVenue: async (businessId: number, from: string, to: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
71423
+ staffHoursAtVenue: async (businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
71030
71424
  // verify required parameter 'businessId' is not null or undefined
71031
71425
  assertParamExists('staffHoursAtVenue', 'businessId', businessId)
71032
71426
  // verify required parameter 'from' is not null or undefined
@@ -71058,6 +71452,86 @@ export const ShiftTrackingApiAxiosParamCreator = function (configuration?: Confi
71058
71452
  localVarQueryParameter['to'] = to;
71059
71453
  }
71060
71454
 
71455
+ if (employeeIds) {
71456
+ localVarQueryParameter['employeeIds'] = employeeIds;
71457
+ }
71458
+
71459
+ if (status !== undefined) {
71460
+ localVarQueryParameter['status'] = status;
71461
+ }
71462
+
71463
+
71464
+
71465
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
71466
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
71467
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
71468
+
71469
+ return {
71470
+ url: toPathString(localVarUrlObj),
71471
+ options: localVarRequestOptions,
71472
+ };
71473
+ },
71474
+ /**
71475
+ * The same report GET hours answers for the days and filters asked, printed by utility-service in English or Finnish: a summary (total hours, people, open shifts), each staff member\'s hours, days worked and open shifts, each day each person worked with its ISO week, and each shift with its clock-in and clock-out in the venue\'s time zone, its hours and its status. The filters asked are printed under the period. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named hours-report-<businessId>-<from>-<to>.pdf or .xlsx. At most 93 days counting both ends. Access as GET hours.
71476
+ * @summary The staff hours report of the venue as a PDF or Excel (xlsx) file to download
71477
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71478
+ * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
71479
+ * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
71480
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
71481
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
71482
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
71483
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report. Absent: pdf
71484
+ * @param {*} [options] Override http request option.
71485
+ * @throws {RequiredError}
71486
+ */
71487
+ staffHoursFileAtVenue: async (businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, language?: ReportLanguage, format?: FileFormat, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
71488
+ // verify required parameter 'businessId' is not null or undefined
71489
+ assertParamExists('staffHoursFileAtVenue', 'businessId', businessId)
71490
+ // verify required parameter 'from' is not null or undefined
71491
+ assertParamExists('staffHoursFileAtVenue', 'from', from)
71492
+ // verify required parameter 'to' is not null or undefined
71493
+ assertParamExists('staffHoursFileAtVenue', 'to', to)
71494
+ const localVarPath = `/api/v2/businesses/{businessId}/shifts/hours/file`
71495
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
71496
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
71497
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
71498
+ let baseOptions;
71499
+ if (configuration) {
71500
+ baseOptions = configuration.baseOptions;
71501
+ }
71502
+
71503
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
71504
+ const localVarHeaderParameter = {} as any;
71505
+ const localVarQueryParameter = {} as any;
71506
+
71507
+ // authentication JWT-auth required
71508
+ // http bearer authentication required
71509
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
71510
+
71511
+ if (from !== undefined) {
71512
+ localVarQueryParameter['from'] = from;
71513
+ }
71514
+
71515
+ if (to !== undefined) {
71516
+ localVarQueryParameter['to'] = to;
71517
+ }
71518
+
71519
+ if (employeeIds) {
71520
+ localVarQueryParameter['employeeIds'] = employeeIds;
71521
+ }
71522
+
71523
+ if (status !== undefined) {
71524
+ localVarQueryParameter['status'] = status;
71525
+ }
71526
+
71527
+ if (language !== undefined) {
71528
+ localVarQueryParameter['language'] = language;
71529
+ }
71530
+
71531
+ if (format !== undefined) {
71532
+ localVarQueryParameter['format'] = format;
71533
+ }
71534
+
71061
71535
 
71062
71536
 
71063
71537
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -71164,6 +71638,31 @@ export const ShiftTrackingApiAxiosParamCreator = function (configuration?: Confi
71164
71638
  export const ShiftTrackingApiFp = function(configuration?: Configuration) {
71165
71639
  const localVarAxiosParamCreator = ShiftTrackingApiAxiosParamCreator(configuration)
71166
71640
  return {
71641
+ /**
71642
+ * A shift added in the back office: its clock-in, and its clock-out unless the staff member is still working. It counts in the hours report like a shift clocked on the till. It is refused while it would be the staff member\'s second open shift at the venue (SHIFT_ALREADY_OPEN), or overlap another of their shifts there (SHIFTS_OVERLAP); an open shift runs on with no end, and shifts that only touch do not overlap. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71643
+ * @summary Record a shift the till missed, for a staff member who works at the venue
71644
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71645
+ * @param {AddShiftDto} addShiftDto
71646
+ * @param {*} [options] Override http request option.
71647
+ * @throws {RequiredError}
71648
+ */
71649
+ async addShiftAtVenue(businessId: number, addShiftDto: AddShiftDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StaffShiftDto>> {
71650
+ const localVarAxiosArgs = await localVarAxiosParamCreator.addShiftAtVenue(businessId, addShiftDto, options);
71651
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
71652
+ },
71653
+ /**
71654
+ * Sets the times sent and keeps the others; a clock-out is never taken away, so a shift closed here stays closed, and it forgets the till session it was clocked in on, as a clock-out on the till does. The change is saved only while the shift is as it was read, so a clock-out the till writes at the same moment is never overwritten unseen, and never so that the shift overlaps another of the staff member\'s shifts at the venue (SHIFTS_OVERLAP). Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71655
+ * @summary Correct a shift\'s clock-in or clock-out, a forgotten clock-out among them
71656
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71657
+ * @param {string} shiftId The shift\&#39;s id
71658
+ * @param {ChangeShiftDto} changeShiftDto
71659
+ * @param {*} [options] Override http request option.
71660
+ * @throws {RequiredError}
71661
+ */
71662
+ async changeShiftAtVenue(businessId: number, shiftId: string, changeShiftDto: ChangeShiftDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StaffShiftDto>> {
71663
+ const localVarAxiosArgs = await localVarAxiosParamCreator.changeShiftAtVenue(businessId, shiftId, changeShiftDto, options);
71664
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
71665
+ },
71167
71666
  /**
71168
71667
  * Opens a shift clocked in now, with a new session, unless the employee already has one open at the venue: that one is answered as it is.
71169
71668
  * @summary Clock the employee in at the venue
@@ -71212,16 +71711,47 @@ export const ShiftTrackingApiFp = function(configuration?: Configuration) {
71212
71711
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
71213
71712
  },
71214
71713
  /**
71215
- * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71714
+ * The shift no longer counts in the hours report. A shift still open is not removed (SHIFT_STILL_OPEN): its clock-out is set first, so the till\'s next clock-out is not recorded as a shift with no clock-in. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71715
+ * @summary Remove a shift recorded by mistake
71716
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71717
+ * @param {string} shiftId The shift\&#39;s id
71718
+ * @param {*} [options] Override http request option.
71719
+ * @throws {RequiredError}
71720
+ */
71721
+ async removeShiftAtVenue(businessId: number, shiftId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
71722
+ const localVarAxiosArgs = await localVarAxiosParamCreator.removeShiftAtVenue(businessId, shiftId, options);
71723
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
71724
+ },
71725
+ /**
71726
+ * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first, each with its id and status (open or closed). employeeIds keeps only those staff members\' shifts, and status only the open or the closed ones; every total counts the shifts kept. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71216
71727
  * @summary Each staff member\'s clocked hours at the venue over a period
71217
71728
  * @param {number} businessId The venue\&#39;s orderingBusinessId
71218
71729
  * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
71219
71730
  * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
71731
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
71732
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
71733
+ * @param {*} [options] Override http request option.
71734
+ * @throws {RequiredError}
71735
+ */
71736
+ async staffHoursAtVenue(businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StaffHoursResponseDto>> {
71737
+ const localVarAxiosArgs = await localVarAxiosParamCreator.staffHoursAtVenue(businessId, from, to, employeeIds, status, options);
71738
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
71739
+ },
71740
+ /**
71741
+ * The same report GET hours answers for the days and filters asked, printed by utility-service in English or Finnish: a summary (total hours, people, open shifts), each staff member\'s hours, days worked and open shifts, each day each person worked with its ISO week, and each shift with its clock-in and clock-out in the venue\'s time zone, its hours and its status. The filters asked are printed under the period. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named hours-report-<businessId>-<from>-<to>.pdf or .xlsx. At most 93 days counting both ends. Access as GET hours.
71742
+ * @summary The staff hours report of the venue as a PDF or Excel (xlsx) file to download
71743
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71744
+ * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
71745
+ * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
71746
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
71747
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
71748
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
71749
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report. Absent: pdf
71220
71750
  * @param {*} [options] Override http request option.
71221
71751
  * @throws {RequiredError}
71222
71752
  */
71223
- async staffHoursAtVenue(businessId: number, from: string, to: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StaffHoursResponseDto>> {
71224
- const localVarAxiosArgs = await localVarAxiosParamCreator.staffHoursAtVenue(businessId, from, to, options);
71753
+ async staffHoursFileAtVenue(businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>> {
71754
+ const localVarAxiosArgs = await localVarAxiosParamCreator.staffHoursFileAtVenue(businessId, from, to, employeeIds, status, language, format, options);
71225
71755
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
71226
71756
  },
71227
71757
  /**
@@ -71258,6 +71788,29 @@ export const ShiftTrackingApiFp = function(configuration?: Configuration) {
71258
71788
  export const ShiftTrackingApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
71259
71789
  const localVarFp = ShiftTrackingApiFp(configuration)
71260
71790
  return {
71791
+ /**
71792
+ * A shift added in the back office: its clock-in, and its clock-out unless the staff member is still working. It counts in the hours report like a shift clocked on the till. It is refused while it would be the staff member\'s second open shift at the venue (SHIFT_ALREADY_OPEN), or overlap another of their shifts there (SHIFTS_OVERLAP); an open shift runs on with no end, and shifts that only touch do not overlap. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71793
+ * @summary Record a shift the till missed, for a staff member who works at the venue
71794
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71795
+ * @param {AddShiftDto} addShiftDto
71796
+ * @param {*} [options] Override http request option.
71797
+ * @throws {RequiredError}
71798
+ */
71799
+ addShiftAtVenue(businessId: number, addShiftDto: AddShiftDto, options?: any): AxiosPromise<StaffShiftDto> {
71800
+ return localVarFp.addShiftAtVenue(businessId, addShiftDto, options).then((request) => request(axios, basePath));
71801
+ },
71802
+ /**
71803
+ * Sets the times sent and keeps the others; a clock-out is never taken away, so a shift closed here stays closed, and it forgets the till session it was clocked in on, as a clock-out on the till does. The change is saved only while the shift is as it was read, so a clock-out the till writes at the same moment is never overwritten unseen, and never so that the shift overlaps another of the staff member\'s shifts at the venue (SHIFTS_OVERLAP). Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71804
+ * @summary Correct a shift\'s clock-in or clock-out, a forgotten clock-out among them
71805
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71806
+ * @param {string} shiftId The shift\&#39;s id
71807
+ * @param {ChangeShiftDto} changeShiftDto
71808
+ * @param {*} [options] Override http request option.
71809
+ * @throws {RequiredError}
71810
+ */
71811
+ changeShiftAtVenue(businessId: number, shiftId: string, changeShiftDto: ChangeShiftDto, options?: any): AxiosPromise<StaffShiftDto> {
71812
+ return localVarFp.changeShiftAtVenue(businessId, shiftId, changeShiftDto, options).then((request) => request(axios, basePath));
71813
+ },
71261
71814
  /**
71262
71815
  * Opens a shift clocked in now, with a new session, unless the employee already has one open at the venue: that one is answered as it is.
71263
71816
  * @summary Clock the employee in at the venue
@@ -71302,16 +71855,45 @@ export const ShiftTrackingApiFactory = function (configuration?: Configuration,
71302
71855
  return localVarFp.lockTill(businessId, options).then((request) => request(axios, basePath));
71303
71856
  },
71304
71857
  /**
71305
- * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71858
+ * The shift no longer counts in the hours report. A shift still open is not removed (SHIFT_STILL_OPEN): its clock-out is set first, so the till\'s next clock-out is not recorded as a shift with no clock-in. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71859
+ * @summary Remove a shift recorded by mistake
71860
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71861
+ * @param {string} shiftId The shift\&#39;s id
71862
+ * @param {*} [options] Override http request option.
71863
+ * @throws {RequiredError}
71864
+ */
71865
+ removeShiftAtVenue(businessId: number, shiftId: string, options?: any): AxiosPromise<void> {
71866
+ return localVarFp.removeShiftAtVenue(businessId, shiftId, options).then((request) => request(axios, basePath));
71867
+ },
71868
+ /**
71869
+ * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first, each with its id and status (open or closed). employeeIds keeps only those staff members\' shifts, and status only the open or the closed ones; every total counts the shifts kept. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71306
71870
  * @summary Each staff member\'s clocked hours at the venue over a period
71307
71871
  * @param {number} businessId The venue\&#39;s orderingBusinessId
71308
71872
  * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
71309
71873
  * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
71874
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
71875
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
71310
71876
  * @param {*} [options] Override http request option.
71311
71877
  * @throws {RequiredError}
71312
71878
  */
71313
- staffHoursAtVenue(businessId: number, from: string, to: string, options?: any): AxiosPromise<StaffHoursResponseDto> {
71314
- return localVarFp.staffHoursAtVenue(businessId, from, to, options).then((request) => request(axios, basePath));
71879
+ staffHoursAtVenue(businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, options?: any): AxiosPromise<StaffHoursResponseDto> {
71880
+ return localVarFp.staffHoursAtVenue(businessId, from, to, employeeIds, status, options).then((request) => request(axios, basePath));
71881
+ },
71882
+ /**
71883
+ * The same report GET hours answers for the days and filters asked, printed by utility-service in English or Finnish: a summary (total hours, people, open shifts), each staff member\'s hours, days worked and open shifts, each day each person worked with its ISO week, and each shift with its clock-in and clock-out in the venue\'s time zone, its hours and its status. The filters asked are printed under the period. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named hours-report-<businessId>-<from>-<to>.pdf or .xlsx. At most 93 days counting both ends. Access as GET hours.
71884
+ * @summary The staff hours report of the venue as a PDF or Excel (xlsx) file to download
71885
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71886
+ * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
71887
+ * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
71888
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
71889
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
71890
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
71891
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report. Absent: pdf
71892
+ * @param {*} [options] Override http request option.
71893
+ * @throws {RequiredError}
71894
+ */
71895
+ staffHoursFileAtVenue(businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, language?: ReportLanguage, format?: FileFormat, options?: any): AxiosPromise<File> {
71896
+ return localVarFp.staffHoursFileAtVenue(businessId, from, to, employeeIds, status, language, format, options).then((request) => request(axios, basePath));
71315
71897
  },
71316
71898
  /**
71317
71899
  * The till names the employee; no PIN is checked here (v2 unlock checks it on the server). With an open shift at the venue, the shift gets a new session and its old session is told to leave on Ably (session-kick on shift:<id>:<environment>).
@@ -71344,6 +71926,29 @@ export const ShiftTrackingApiFactory = function (configuration?: Configuration,
71344
71926
  * @interface ShiftTrackingApi
71345
71927
  */
71346
71928
  export interface ShiftTrackingApiInterface {
71929
+ /**
71930
+ * A shift added in the back office: its clock-in, and its clock-out unless the staff member is still working. It counts in the hours report like a shift clocked on the till. It is refused while it would be the staff member\'s second open shift at the venue (SHIFT_ALREADY_OPEN), or overlap another of their shifts there (SHIFTS_OVERLAP); an open shift runs on with no end, and shifts that only touch do not overlap. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71931
+ * @summary Record a shift the till missed, for a staff member who works at the venue
71932
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71933
+ * @param {AddShiftDto} addShiftDto
71934
+ * @param {*} [options] Override http request option.
71935
+ * @throws {RequiredError}
71936
+ * @memberof ShiftTrackingApiInterface
71937
+ */
71938
+ addShiftAtVenue(businessId: number, addShiftDto: AddShiftDto, options?: AxiosRequestConfig): AxiosPromise<StaffShiftDto>;
71939
+
71940
+ /**
71941
+ * Sets the times sent and keeps the others; a clock-out is never taken away, so a shift closed here stays closed, and it forgets the till session it was clocked in on, as a clock-out on the till does. The change is saved only while the shift is as it was read, so a clock-out the till writes at the same moment is never overwritten unseen, and never so that the shift overlaps another of the staff member\'s shifts at the venue (SHIFTS_OVERLAP). Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71942
+ * @summary Correct a shift\'s clock-in or clock-out, a forgotten clock-out among them
71943
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71944
+ * @param {string} shiftId The shift\&#39;s id
71945
+ * @param {ChangeShiftDto} changeShiftDto
71946
+ * @param {*} [options] Override http request option.
71947
+ * @throws {RequiredError}
71948
+ * @memberof ShiftTrackingApiInterface
71949
+ */
71950
+ changeShiftAtVenue(businessId: number, shiftId: string, changeShiftDto: ChangeShiftDto, options?: AxiosRequestConfig): AxiosPromise<StaffShiftDto>;
71951
+
71347
71952
  /**
71348
71953
  * Opens a shift clocked in now, with a new session, unless the employee already has one open at the venue: that one is answered as it is.
71349
71954
  * @summary Clock the employee in at the venue
@@ -71388,16 +71993,45 @@ export interface ShiftTrackingApiInterface {
71388
71993
  lockTill(businessId: number, options?: AxiosRequestConfig): AxiosPromise<void>;
71389
71994
 
71390
71995
  /**
71391
- * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71996
+ * The shift no longer counts in the hours report. A shift still open is not removed (SHIFT_STILL_OPEN): its clock-out is set first, so the till\'s next clock-out is not recorded as a shift with no clock-in. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
71997
+ * @summary Remove a shift recorded by mistake
71998
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
71999
+ * @param {string} shiftId The shift\&#39;s id
72000
+ * @param {*} [options] Override http request option.
72001
+ * @throws {RequiredError}
72002
+ * @memberof ShiftTrackingApiInterface
72003
+ */
72004
+ removeShiftAtVenue(businessId: number, shiftId: string, options?: AxiosRequestConfig): AxiosPromise<void>;
72005
+
72006
+ /**
72007
+ * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first, each with its id and status (open or closed). employeeIds keeps only those staff members\' shifts, and status only the open or the closed ones; every total counts the shifts kept. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71392
72008
  * @summary Each staff member\'s clocked hours at the venue over a period
71393
72009
  * @param {number} businessId The venue\&#39;s orderingBusinessId
71394
72010
  * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
71395
72011
  * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
72012
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
72013
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
71396
72014
  * @param {*} [options] Override http request option.
71397
72015
  * @throws {RequiredError}
71398
72016
  * @memberof ShiftTrackingApiInterface
71399
72017
  */
71400
- staffHoursAtVenue(businessId: number, from: string, to: string, options?: AxiosRequestConfig): AxiosPromise<StaffHoursResponseDto>;
72018
+ staffHoursAtVenue(businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, options?: AxiosRequestConfig): AxiosPromise<StaffHoursResponseDto>;
72019
+
72020
+ /**
72021
+ * The same report GET hours answers for the days and filters asked, printed by utility-service in English or Finnish: a summary (total hours, people, open shifts), each staff member\'s hours, days worked and open shifts, each day each person worked with its ISO week, and each shift with its clock-in and clock-out in the venue\'s time zone, its hours and its status. The filters asked are printed under the period. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named hours-report-<businessId>-<from>-<to>.pdf or .xlsx. At most 93 days counting both ends. Access as GET hours.
72022
+ * @summary The staff hours report of the venue as a PDF or Excel (xlsx) file to download
72023
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
72024
+ * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
72025
+ * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
72026
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
72027
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
72028
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
72029
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report. Absent: pdf
72030
+ * @param {*} [options] Override http request option.
72031
+ * @throws {RequiredError}
72032
+ * @memberof ShiftTrackingApiInterface
72033
+ */
72034
+ staffHoursFileAtVenue(businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig): AxiosPromise<File>;
71401
72035
 
71402
72036
  /**
71403
72037
  * The till names the employee; no PIN is checked here (v2 unlock checks it on the server). With an open shift at the venue, the shift gets a new session and its old session is told to leave on Ably (session-kick on shift:<id>:<environment>).
@@ -71430,6 +72064,33 @@ export interface ShiftTrackingApiInterface {
71430
72064
  * @extends {BaseAPI}
71431
72065
  */
71432
72066
  export class ShiftTrackingApi extends BaseAPI implements ShiftTrackingApiInterface {
72067
+ /**
72068
+ * A shift added in the back office: its clock-in, and its clock-out unless the staff member is still working. It counts in the hours report like a shift clocked on the till. It is refused while it would be the staff member\'s second open shift at the venue (SHIFT_ALREADY_OPEN), or overlap another of their shifts there (SHIFTS_OVERLAP); an open shift runs on with no end, and shifts that only touch do not overlap. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
72069
+ * @summary Record a shift the till missed, for a staff member who works at the venue
72070
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
72071
+ * @param {AddShiftDto} addShiftDto
72072
+ * @param {*} [options] Override http request option.
72073
+ * @throws {RequiredError}
72074
+ * @memberof ShiftTrackingApi
72075
+ */
72076
+ public addShiftAtVenue(businessId: number, addShiftDto: AddShiftDto, options?: AxiosRequestConfig) {
72077
+ return ShiftTrackingApiFp(this.configuration).addShiftAtVenue(businessId, addShiftDto, options).then((request) => request(this.axios, this.basePath));
72078
+ }
72079
+
72080
+ /**
72081
+ * Sets the times sent and keeps the others; a clock-out is never taken away, so a shift closed here stays closed, and it forgets the till session it was clocked in on, as a clock-out on the till does. The change is saved only while the shift is as it was read, so a clock-out the till writes at the same moment is never overwritten unseen, and never so that the shift overlaps another of the staff member\'s shifts at the venue (SHIFTS_OVERLAP). Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
72082
+ * @summary Correct a shift\'s clock-in or clock-out, a forgotten clock-out among them
72083
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
72084
+ * @param {string} shiftId The shift\&#39;s id
72085
+ * @param {ChangeShiftDto} changeShiftDto
72086
+ * @param {*} [options] Override http request option.
72087
+ * @throws {RequiredError}
72088
+ * @memberof ShiftTrackingApi
72089
+ */
72090
+ public changeShiftAtVenue(businessId: number, shiftId: string, changeShiftDto: ChangeShiftDto, options?: AxiosRequestConfig) {
72091
+ return ShiftTrackingApiFp(this.configuration).changeShiftAtVenue(businessId, shiftId, changeShiftDto, options).then((request) => request(this.axios, this.basePath));
72092
+ }
72093
+
71433
72094
  /**
71434
72095
  * Opens a shift clocked in now, with a new session, unless the employee already has one open at the venue: that one is answered as it is.
71435
72096
  * @summary Clock the employee in at the venue
@@ -71482,17 +72143,50 @@ export class ShiftTrackingApi extends BaseAPI implements ShiftTrackingApiInterfa
71482
72143
  }
71483
72144
 
71484
72145
  /**
71485
- * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
72146
+ * The shift no longer counts in the hours report. A shift still open is not removed (SHIFT_STILL_OPEN): its clock-out is set first, so the till\'s next clock-out is not recorded as a shift with no clock-in. Access: the staff write (org:staff:write) at the venue, refused without it; a till\'s own ticket is always refused, so the person on the till never changes their own hours.
72147
+ * @summary Remove a shift recorded by mistake
72148
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
72149
+ * @param {string} shiftId The shift\&#39;s id
72150
+ * @param {*} [options] Override http request option.
72151
+ * @throws {RequiredError}
72152
+ * @memberof ShiftTrackingApi
72153
+ */
72154
+ public removeShiftAtVenue(businessId: number, shiftId: string, options?: AxiosRequestConfig) {
72155
+ return ShiftTrackingApiFp(this.configuration).removeShiftAtVenue(businessId, shiftId, options).then((request) => request(this.axios, this.basePath));
72156
+ }
72157
+
72158
+ /**
72159
+ * The shifts staff clocked on the POS (clock-in on unlock, clock-out on lock), for the days from to to in the venue\'s time zone: per staff member and per day the shift began, with each shift\'s times and worked minutes, and totals. A shift still open, with only a clock-out, or clocked out before it clocked in, counts 0 minutes; openShifts counts the open ones, so a forgotten clock-out shows. Each day\'s shifts are oldest first, each with its id and status (open or closed). employeeIds keeps only those staff members\' shifts, and status only the open or the closed ones; every total counts the shifts kept. At most 93 days counting both ends (to at most 92 days after from). Only reads. Access: a person signed in for Ari is refused without the reports read (org:reports:read) at the venue today; for every other caller that permission, and on a till ticket the Page::Reports key of the person on the till, are only logged (Access would refuse) until the shifts module refuses all (R30).
71486
72160
  * @summary Each staff member\'s clocked hours at the venue over a period
71487
72161
  * @param {number} businessId The venue\&#39;s orderingBusinessId
71488
72162
  * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
71489
72163
  * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
72164
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
72165
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
72166
+ * @param {*} [options] Override http request option.
72167
+ * @throws {RequiredError}
72168
+ * @memberof ShiftTrackingApi
72169
+ */
72170
+ public staffHoursAtVenue(businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, options?: AxiosRequestConfig) {
72171
+ return ShiftTrackingApiFp(this.configuration).staffHoursAtVenue(businessId, from, to, employeeIds, status, options).then((request) => request(this.axios, this.basePath));
72172
+ }
72173
+
72174
+ /**
72175
+ * The same report GET hours answers for the days and filters asked, printed by utility-service in English or Finnish: a summary (total hours, people, open shifts), each staff member\'s hours, days worked and open shifts, each day each person worked with its ISO week, and each shift with its clock-in and clock-out in the venue\'s time zone, its hours and its status. The filters asked are printed under the period. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named hours-report-<businessId>-<from>-<to>.pdf or .xlsx. At most 93 days counting both ends. Access as GET hours.
72176
+ * @summary The staff hours report of the venue as a PDF or Excel (xlsx) file to download
72177
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
72178
+ * @param {string} from The first day, YYYY-MM-DD, in the venue\&#39;s time zone
72179
+ * @param {string} to The last day, YYYY-MM-DD, inclusive, in the venue\&#39;s time zone; from or at most 92 days after it, 93 days counting both
72180
+ * @param {Array<string>} [employeeIds] Only these staff members\&#39; shifts, by employee id. Absent or empty: every staff member\&#39;s
72181
+ * @param {ShiftStatus} [status] Only open shifts (clocked in, not clocked out yet) or only closed ones (clocked out). Absent: both
72182
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
72183
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report. Absent: pdf
71490
72184
  * @param {*} [options] Override http request option.
71491
72185
  * @throws {RequiredError}
71492
72186
  * @memberof ShiftTrackingApi
71493
72187
  */
71494
- public staffHoursAtVenue(businessId: number, from: string, to: string, options?: AxiosRequestConfig) {
71495
- return ShiftTrackingApiFp(this.configuration).staffHoursAtVenue(businessId, from, to, options).then((request) => request(this.axios, this.basePath));
72188
+ public staffHoursFileAtVenue(businessId: number, from: string, to: string, employeeIds?: Array<string>, status?: ShiftStatus, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig) {
72189
+ return ShiftTrackingApiFp(this.configuration).staffHoursFileAtVenue(businessId, from, to, employeeIds, status, language, format, options).then((request) => request(this.axios, this.basePath));
71496
72190
  }
71497
72191
 
71498
72192
  /**
@@ -73654,6 +74348,42 @@ export const WebhookApiAxiosParamCreator = function (configuration?: Configurati
73654
74348
  options: localVarRequestOptions,
73655
74349
  };
73656
74350
  },
74351
+ /**
74352
+ * The Cloud Task queued when a paid kiosk order starts waiting, ten minutes later, at a venue whose kiosk has auto-reject on. An order no longer waiting stays as it is; kiosk-v2-order-handler refunds a rejected one.
74353
+ * @summary Reject a kiosk order nobody accepted in time (triggered by scheduler)
74354
+ * @param {KioskAutoRejectDto} kioskAutoRejectDto
74355
+ * @param {*} [options] Override http request option.
74356
+ * @throws {RequiredError}
74357
+ */
74358
+ handleKioskAutoReject: async (kioskAutoRejectDto: KioskAutoRejectDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
74359
+ // verify required parameter 'kioskAutoRejectDto' is not null or undefined
74360
+ assertParamExists('handleKioskAutoReject', 'kioskAutoRejectDto', kioskAutoRejectDto)
74361
+ const localVarPath = `/api/webhook/kiosk-auto-reject`;
74362
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
74363
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
74364
+ let baseOptions;
74365
+ if (configuration) {
74366
+ baseOptions = configuration.baseOptions;
74367
+ }
74368
+
74369
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
74370
+ const localVarHeaderParameter = {} as any;
74371
+ const localVarQueryParameter = {} as any;
74372
+
74373
+
74374
+
74375
+ localVarHeaderParameter['Content-Type'] = 'application/json';
74376
+
74377
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
74378
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
74379
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
74380
+ localVarRequestOptions.data = serializeDataIfNeeded(kioskAutoRejectDto, localVarRequestOptions, configuration)
74381
+
74382
+ return {
74383
+ url: toPathString(localVarUrlObj),
74384
+ options: localVarRequestOptions,
74385
+ };
74386
+ },
73657
74387
  /**
73658
74388
  * Saves the changed employee row to BigQuery\'s employees table; a delete saves the row\'s ids with no data. Posted by a Supabase database webhook (pg_net), which sends no credential today. It declares a service key beside the reports area, so the access listener reports every call it would refuse until the hook carries one.
73659
74389
  * @summary Handle Supabase employee sync webhook
@@ -74366,6 +75096,17 @@ export const WebhookApiFp = function(configuration?: Configuration) {
74366
75096
  const localVarAxiosArgs = await localVarAxiosParamCreator.handleFoodoraEvent(orderUpdateDto, options);
74367
75097
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
74368
75098
  },
75099
+ /**
75100
+ * The Cloud Task queued when a paid kiosk order starts waiting, ten minutes later, at a venue whose kiosk has auto-reject on. An order no longer waiting stays as it is; kiosk-v2-order-handler refunds a rejected one.
75101
+ * @summary Reject a kiosk order nobody accepted in time (triggered by scheduler)
75102
+ * @param {KioskAutoRejectDto} kioskAutoRejectDto
75103
+ * @param {*} [options] Override http request option.
75104
+ * @throws {RequiredError}
75105
+ */
75106
+ async handleKioskAutoReject(kioskAutoRejectDto: KioskAutoRejectDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
75107
+ const localVarAxiosArgs = await localVarAxiosParamCreator.handleKioskAutoReject(kioskAutoRejectDto, options);
75108
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
75109
+ },
74369
75110
  /**
74370
75111
  * Saves the changed employee row to BigQuery\'s employees table; a delete saves the row\'s ids with no data. Posted by a Supabase database webhook (pg_net), which sends no credential today. It declares a service key beside the reports area, so the access listener reports every call it would refuse until the hook carries one.
74371
75112
  * @summary Handle Supabase employee sync webhook
@@ -74614,6 +75355,16 @@ export const WebhookApiFactory = function (configuration?: Configuration, basePa
74614
75355
  handleFoodoraEvent(orderUpdateDto: OrderUpdateDto, options?: any): AxiosPromise<void> {
74615
75356
  return localVarFp.handleFoodoraEvent(orderUpdateDto, options).then((request) => request(axios, basePath));
74616
75357
  },
75358
+ /**
75359
+ * The Cloud Task queued when a paid kiosk order starts waiting, ten minutes later, at a venue whose kiosk has auto-reject on. An order no longer waiting stays as it is; kiosk-v2-order-handler refunds a rejected one.
75360
+ * @summary Reject a kiosk order nobody accepted in time (triggered by scheduler)
75361
+ * @param {KioskAutoRejectDto} kioskAutoRejectDto
75362
+ * @param {*} [options] Override http request option.
75363
+ * @throws {RequiredError}
75364
+ */
75365
+ handleKioskAutoReject(kioskAutoRejectDto: KioskAutoRejectDto, options?: any): AxiosPromise<void> {
75366
+ return localVarFp.handleKioskAutoReject(kioskAutoRejectDto, options).then((request) => request(axios, basePath));
75367
+ },
74617
75368
  /**
74618
75369
  * Saves the changed employee row to BigQuery\'s employees table; a delete saves the row\'s ids with no data. Posted by a Supabase database webhook (pg_net), which sends no credential today. It declares a service key beside the reports area, so the access listener reports every call it would refuse until the hook carries one.
74619
75370
  * @summary Handle Supabase employee sync webhook
@@ -74842,6 +75593,16 @@ export interface WebhookApiInterface {
74842
75593
  */
74843
75594
  handleFoodoraEvent(orderUpdateDto: OrderUpdateDto, options?: AxiosRequestConfig): AxiosPromise<void>;
74844
75595
 
75596
+ /**
75597
+ * The Cloud Task queued when a paid kiosk order starts waiting, ten minutes later, at a venue whose kiosk has auto-reject on. An order no longer waiting stays as it is; kiosk-v2-order-handler refunds a rejected one.
75598
+ * @summary Reject a kiosk order nobody accepted in time (triggered by scheduler)
75599
+ * @param {KioskAutoRejectDto} kioskAutoRejectDto
75600
+ * @param {*} [options] Override http request option.
75601
+ * @throws {RequiredError}
75602
+ * @memberof WebhookApiInterface
75603
+ */
75604
+ handleKioskAutoReject(kioskAutoRejectDto: KioskAutoRejectDto, options?: AxiosRequestConfig): AxiosPromise<void>;
75605
+
74845
75606
  /**
74846
75607
  * Saves the changed employee row to BigQuery\'s employees table; a delete saves the row\'s ids with no data. Posted by a Supabase database webhook (pg_net), which sends no credential today. It declares a service key beside the reports area, so the access listener reports every call it would refuse until the hook carries one.
74847
75608
  * @summary Handle Supabase employee sync webhook
@@ -75076,6 +75837,18 @@ export class WebhookApi extends BaseAPI implements WebhookApiInterface {
75076
75837
  return WebhookApiFp(this.configuration).handleFoodoraEvent(orderUpdateDto, options).then((request) => request(this.axios, this.basePath));
75077
75838
  }
75078
75839
 
75840
+ /**
75841
+ * The Cloud Task queued when a paid kiosk order starts waiting, ten minutes later, at a venue whose kiosk has auto-reject on. An order no longer waiting stays as it is; kiosk-v2-order-handler refunds a rejected one.
75842
+ * @summary Reject a kiosk order nobody accepted in time (triggered by scheduler)
75843
+ * @param {KioskAutoRejectDto} kioskAutoRejectDto
75844
+ * @param {*} [options] Override http request option.
75845
+ * @throws {RequiredError}
75846
+ * @memberof WebhookApi
75847
+ */
75848
+ public handleKioskAutoReject(kioskAutoRejectDto: KioskAutoRejectDto, options?: AxiosRequestConfig) {
75849
+ return WebhookApiFp(this.configuration).handleKioskAutoReject(kioskAutoRejectDto, options).then((request) => request(this.axios, this.basePath));
75850
+ }
75851
+
75079
75852
  /**
75080
75853
  * Saves the changed employee row to BigQuery\'s employees table; a delete saves the row\'s ids with no data. Posted by a Supabase database webhook (pg_net), which sends no credential today. It declares a service key beside the reports area, so the access listener reports every call it would refuse until the hook carries one.
75081
75854
  * @summary Handle Supabase employee sync webhook