@deliverart/sdk-js-sales-mode 2.1.50 → 2.1.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +421 -0
  2. package/package.json +4 -4
package/README.md ADDED
@@ -0,0 +1,421 @@
1
+ # @deliverart/sdk-js-sales-mode
2
+
3
+ Sales mode management package for the DeliverArt JavaScript SDK.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @deliverart/sdk-js-sales-mode @deliverart/sdk-js-core
9
+ ```
10
+
11
+ ## Exported Types
12
+
13
+ ### Core Types
14
+ - `SalesMode` - Sales mode configuration
15
+ - `SalesModeDetails` - Extended sales mode with settings
16
+
17
+ ### Sales Mode Types
18
+ Sales modes represent different ways customers can order:
19
+ - Delivery
20
+ - Takeaway
21
+ - Dine-in
22
+ - Reservation
23
+
24
+ ### IRI Types
25
+ - `SalesModeIri` - Sales mode IRI (`/sales_modes/:id`)
26
+
27
+ ## Available Requests
28
+
29
+ ### CreateSalesMode
30
+ ```typescript
31
+ import { CreateSalesMode } from '@deliverart/sdk-js-sales-mode';
32
+
33
+ const salesMode = await sdk.call(new CreateSalesMode({
34
+ name: 'Delivery',
35
+ pointOfSale: '/point_of_sales/123',
36
+ type: 'DELIVERY',
37
+ enabled: true,
38
+ settings: {
39
+ minOrderAmount: 1000, // 10 EUR in cents
40
+ deliveryRadius: 5000, // 5km in meters
41
+ estimatedDeliveryTime: 30 // minutes
42
+ }
43
+ }));
44
+ ```
45
+
46
+ **Input Parameters:**
47
+ - `name: string` (required) - Sales mode name
48
+ - `pointOfSale: string` (required) - Point of sale IRI
49
+ - `type: string` (required) - Sales mode type
50
+ - `enabled: boolean` (required) - Enable/disable sales mode
51
+ - `settings?: object` (optional) - Mode-specific settings
52
+
53
+ ---
54
+
55
+ ### GetSalesModes
56
+ ```typescript
57
+ import { GetSalesModes } from '@deliverart/sdk-js-sales-mode';
58
+
59
+ const salesModes = await sdk.call(new GetSalesModes({
60
+ query: {
61
+ pointOfSale: '/point_of_sales/123',
62
+ enabled: true
63
+ }
64
+ }));
65
+ ```
66
+
67
+ **Query Parameters:**
68
+ - `pointOfSale?: string` - Filter by point of sale
69
+ - `type?: string` - Filter by type
70
+ - `enabled?: boolean` - Filter by enabled status
71
+ - `page?: number` - Page number
72
+
73
+ ---
74
+
75
+ ### GetSalesModeDetails
76
+ ```typescript
77
+ import { GetSalesModeDetails } from '@deliverart/sdk-js-sales-mode';
78
+
79
+ const salesMode = await sdk.call(new GetSalesModeDetails('mode-123'));
80
+ ```
81
+
82
+ ---
83
+
84
+ ### UpdateSalesMode
85
+ ```typescript
86
+ import { UpdateSalesMode } from '@deliverart/sdk-js-sales-mode';
87
+
88
+ const updated = await sdk.call(new UpdateSalesMode('mode-123', {
89
+ enabled: false,
90
+ settings: {
91
+ minOrderAmount: 1500
92
+ }
93
+ }));
94
+ ```
95
+
96
+ ---
97
+
98
+ ### DeleteSalesMode
99
+ ```typescript
100
+ import { DeleteSalesMode } from '@deliverart/sdk-js-sales-mode';
101
+
102
+ await sdk.call(new DeleteSalesMode('mode-123'));
103
+ ```
104
+
105
+ ---
106
+
107
+ ## Complete Usage Example
108
+
109
+ ```typescript
110
+ import { sdk } from './lib/sdk';
111
+ import {
112
+ CreateSalesMode,
113
+ GetSalesModes,
114
+ UpdateSalesMode
115
+ } from '@deliverart/sdk-js-sales-mode';
116
+
117
+ async function salesModeSetup() {
118
+ const posId = '/point_of_sales/123';
119
+
120
+ // Create delivery mode
121
+ const delivery = await sdk.call(new CreateSalesMode({
122
+ name: 'Delivery',
123
+ pointOfSale: posId,
124
+ type: 'DELIVERY',
125
+ enabled: true,
126
+ settings: {
127
+ minOrderAmount: 1000,
128
+ deliveryRadius: 5000,
129
+ estimatedDeliveryTime: 30,
130
+ deliveryFee: 300
131
+ }
132
+ }));
133
+
134
+ // Create takeaway mode
135
+ const takeaway = await sdk.call(new CreateSalesMode({
136
+ name: 'Takeaway',
137
+ pointOfSale: posId,
138
+ type: 'TAKEAWAY',
139
+ enabled: true,
140
+ settings: {
141
+ minOrderAmount: 500,
142
+ estimatedPreparationTime: 15
143
+ }
144
+ }));
145
+
146
+ // Get all active modes
147
+ const activeModes = await sdk.call(new GetSalesModes({
148
+ query: {
149
+ pointOfSale: posId,
150
+ enabled: true
151
+ }
152
+ }));
153
+
154
+ console.log(`Active sales modes: ${activeModes.data.length}`);
155
+
156
+ // Temporarily disable delivery
157
+ await sdk.call(new UpdateSalesMode(delivery.id, {
158
+ enabled: false
159
+ }));
160
+ }
161
+ ```
162
+
163
+ ## License
164
+
165
+ MIT
166
+ # @deliverart/sdk-js-point-of-sale
167
+
168
+ Point of sale management package for the DeliverArt JavaScript SDK.
169
+
170
+ ## Installation
171
+
172
+ ```bash
173
+ npm install @deliverart/sdk-js-point-of-sale @deliverart/sdk-js-core
174
+ ```
175
+
176
+ ## Exported Types
177
+
178
+ ### Core Types
179
+ - `PointOfSale` - Point of sale information
180
+ - `PointOfSaleDetails` - Extended POS with opening hours and settings
181
+ - `PointOfSaleUser` - User assigned to point of sale
182
+ - `OpeningTime` - Opening hours configuration
183
+ - `PointOfSaleTimeOverride` - Special hours (holidays, events)
184
+
185
+ ### IRI Types
186
+ - `PointOfSaleIri` - Point of sale IRI (`/point_of_sales/:id`)
187
+ - `PointOfSaleUserIri` - POS user IRI (`/point_of_sale_users/:id`)
188
+ - `PointOfSaleTimeOverrideIri` - Time override IRI (`/point_of_sale_time_overrides/:id`)
189
+
190
+ ## Available Requests
191
+
192
+ ### Point of Sale Management
193
+
194
+ #### CreatePointOfSale
195
+ ```typescript
196
+ import { CreatePointOfSale } from '@deliverart/sdk-js-point-of-sale';
197
+
198
+ const pos = await sdk.call(new CreatePointOfSale({
199
+ name: 'Main Restaurant',
200
+ company: '/companies/123',
201
+ address: {
202
+ street: 'Via Restaurant 1',
203
+ city: 'Milano',
204
+ postalCode: '20100',
205
+ country: 'IT',
206
+ location: {
207
+ latitude: 45.464664,
208
+ longitude: 9.188540
209
+ }
210
+ },
211
+ phoneNumber: '+39021234567',
212
+ email: 'info@restaurant.com',
213
+ openingTimes: [
214
+ {
215
+ dayOfWeek: 1, // Monday
216
+ openTime: '11:00',
217
+ closeTime: '23:00'
218
+ },
219
+ {
220
+ dayOfWeek: 2, // Tuesday
221
+ openTime: '11:00',
222
+ closeTime: '23:00'
223
+ }
224
+ ],
225
+ enabled: true
226
+ }));
227
+ ```
228
+
229
+ **Input Parameters:**
230
+ - `name: string` (required) - Point of sale name
231
+ - `company: string` (required) - Company IRI
232
+ - `address: Address` (required) - Location address
233
+ - `phoneNumber: string` (required) - Contact phone
234
+ - `email: string` (required) - Contact email
235
+ - `openingTimes: OpeningTime[]` (optional) - Weekly opening hours
236
+ - `enabled: boolean` (optional) - Enable/disable POS
237
+ - `settings?: object` (optional) - Additional settings
238
+
239
+ #### GetPointOfSales
240
+ ```typescript
241
+ import { GetPointOfSales } from '@deliverart/sdk-js-point-of-sale';
242
+
243
+ const pointOfSales = await sdk.call(new GetPointOfSales({
244
+ query: {
245
+ company: '/companies/123',
246
+ enabled: true,
247
+ 'address.city': 'Milano',
248
+ page: 1
249
+ }
250
+ }));
251
+ ```
252
+
253
+ **Query Parameters:**
254
+ - `company?: string` - Filter by company
255
+ - `enabled?: boolean` - Filter by enabled status
256
+ - `address.city?: string` - Filter by city
257
+ - `address.postalCode?: string` - Filter by postal code
258
+ - `page?: number` - Page number
259
+
260
+ #### GetPointOfSaleDetails
261
+ ```typescript
262
+ import { GetPointOfSaleDetails } from '@deliverart/sdk-js-point-of-sale';
263
+
264
+ const pos = await sdk.call(new GetPointOfSaleDetails('pos-123'));
265
+ ```
266
+
267
+ #### UpdatePointOfSale
268
+ ```typescript
269
+ import { UpdatePointOfSale } from '@deliverart/sdk-js-point-of-sale';
270
+
271
+ const updated = await sdk.call(new UpdatePointOfSale('pos-123', {
272
+ name: 'Updated Restaurant Name',
273
+ enabled: false
274
+ }));
275
+ ```
276
+
277
+ #### DeletePointOfSale
278
+ ```typescript
279
+ import { DeletePointOfSale } from '@deliverart/sdk-js-point-of-sale';
280
+
281
+ await sdk.call(new DeletePointOfSale('pos-123'));
282
+ ```
283
+
284
+ ---
285
+
286
+ ### Point of Sale Users
287
+
288
+ #### CreatePointOfSaleUser
289
+ ```typescript
290
+ import { CreatePointOfSaleUser } from '@deliverart/sdk-js-point-of-sale';
291
+
292
+ const posUser = await sdk.call(new CreatePointOfSaleUser({
293
+ pointOfSale: '/point_of_sales/123',
294
+ user: '/users/456',
295
+ role: 'MANAGER'
296
+ }));
297
+ ```
298
+
299
+ **Input Parameters:**
300
+ - `pointOfSale: string` (required) - Point of sale IRI
301
+ - `user: string` (required) - User IRI
302
+ - `role: string` (required) - Role (e.g., 'MANAGER', 'STAFF', 'DRIVER')
303
+
304
+ #### GetPointOfSaleUsers
305
+ ```typescript
306
+ import { GetPointOfSaleUsers } from '@deliverart/sdk-js-point-of-sale';
307
+
308
+ const users = await sdk.call(new GetPointOfSaleUsers({
309
+ query: {
310
+ pointOfSale: '/point_of_sales/123',
311
+ role: 'MANAGER'
312
+ }
313
+ }));
314
+ ```
315
+
316
+ ---
317
+
318
+ ### Time Overrides (Special Hours)
319
+
320
+ #### CreatePointOfSaleTimeOverride
321
+ ```typescript
322
+ import { CreatePointOfSaleTimeOverride } from '@deliverart/sdk-js-point-of-sale';
323
+
324
+ const override = await sdk.call(new CreatePointOfSaleTimeOverride({
325
+ pointOfSale: '/point_of_sales/123',
326
+ date: '2024-12-25', // Christmas
327
+ openTime: null, // Closed
328
+ closeTime: null,
329
+ reason: 'Christmas Day - Closed'
330
+ }));
331
+ ```
332
+
333
+ **Input Parameters:**
334
+ - `pointOfSale: string` (required) - Point of sale IRI
335
+ - `date: string` (required) - Date (YYYY-MM-DD)
336
+ - `openTime: string | null` (required) - Opening time or null if closed
337
+ - `closeTime: string | null` (required) - Closing time or null if closed
338
+ - `reason?: string` (optional) - Override reason
339
+
340
+ #### GetPointOfSaleTimeOverrides
341
+ ```typescript
342
+ import { GetPointOfSaleTimeOverrides } from '@deliverart/sdk-js-point-of-sale';
343
+
344
+ const overrides = await sdk.call(new GetPointOfSaleTimeOverrides({
345
+ query: {
346
+ pointOfSale: '/point_of_sales/123',
347
+ 'date[after]': '2024-12-01',
348
+ 'date[before]': '2024-12-31'
349
+ }
350
+ }));
351
+ ```
352
+
353
+ ---
354
+
355
+ ## Complete Usage Example
356
+
357
+ ```typescript
358
+ import { sdk } from './lib/sdk';
359
+ import {
360
+ CreatePointOfSale,
361
+ CreatePointOfSaleUser,
362
+ CreatePointOfSaleTimeOverride,
363
+ UpdatePointOfSale
364
+ } from '@deliverart/sdk-js-point-of-sale';
365
+
366
+ async function setupPointOfSale() {
367
+ // Create point of sale
368
+ const pos = await sdk.call(new CreatePointOfSale({
369
+ name: 'Pizzeria da Mario',
370
+ company: '/companies/123',
371
+ address: {
372
+ street: 'Via Napoli 10',
373
+ city: 'Milano',
374
+ postalCode: '20100',
375
+ country: 'IT',
376
+ location: {
377
+ latitude: 45.464664,
378
+ longitude: 9.188540
379
+ }
380
+ },
381
+ phoneNumber: '+39021234567',
382
+ email: 'info@damario.com',
383
+ openingTimes: [
384
+ { dayOfWeek: 1, openTime: '11:00', closeTime: '23:00' },
385
+ { dayOfWeek: 2, openTime: '11:00', closeTime: '23:00' },
386
+ { dayOfWeek: 3, openTime: '11:00', closeTime: '23:00' },
387
+ { dayOfWeek: 4, openTime: '11:00', closeTime: '23:00' },
388
+ { dayOfWeek: 5, openTime: '11:00', closeTime: '23:30' },
389
+ { dayOfWeek: 6, openTime: '11:00', closeTime: '23:30' },
390
+ { dayOfWeek: 0, openTime: '12:00', closeTime: '22:00' }
391
+ ],
392
+ enabled: true
393
+ }));
394
+
395
+ // Assign manager
396
+ await sdk.call(new CreatePointOfSaleUser({
397
+ pointOfSale: `/point_of_sales/${pos.id}`,
398
+ user: '/users/456',
399
+ role: 'MANAGER'
400
+ }));
401
+
402
+ // Add holiday closure
403
+ await sdk.call(new CreatePointOfSaleTimeOverride({
404
+ pointOfSale: `/point_of_sales/${pos.id}`,
405
+ date: '2024-12-25',
406
+ openTime: null,
407
+ closeTime: null,
408
+ reason: 'Christmas Day'
409
+ }));
410
+
411
+ // Temporarily disable
412
+ await sdk.call(new UpdatePointOfSale(pos.id, {
413
+ enabled: false
414
+ }));
415
+ }
416
+ ```
417
+
418
+ ## License
419
+
420
+ MIT
421
+
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deliverart/sdk-js-sales-mode",
3
3
  "description": "Deliverart JavaScript SDK for Sales Modes Management",
4
- "version": "2.1.50",
4
+ "version": "2.1.51",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -18,9 +18,9 @@
18
18
  "dist"
19
19
  ],
20
20
  "dependencies": {
21
- "@deliverart/sdk-js-core": "2.1.50",
22
- "@deliverart/sdk-js-global-types": "2.1.50",
23
- "@deliverart/sdk-js-point-of-sale": "2.1.50"
21
+ "@deliverart/sdk-js-core": "2.1.51",
22
+ "@deliverart/sdk-js-global-types": "2.1.51",
23
+ "@deliverart/sdk-js-point-of-sale": "2.1.51"
24
24
  },
25
25
  "publishConfig": {
26
26
  "access": "public"