@venulog/phasing-engine-schemas 0.7.6-alpha.0 → 0.8.0-alpha.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/dist/camera.d.ts +219 -0
- package/dist/camera.js +227 -0
- package/dist/enums/accessEventType.d.ts +8 -0
- package/dist/enums/accessEventType.js +17 -0
- package/dist/enums/cameraTrigger.d.ts +7 -0
- package/dist/enums/cameraTrigger.js +15 -0
- package/dist/enums/index.d.ts +5 -0
- package/dist/enums/index.js +5 -0
- package/dist/enums/positionSource.d.ts +7 -0
- package/dist/enums/positionSource.js +15 -0
- package/dist/enums/simulationMode.d.ts +11 -0
- package/dist/enums/simulationMode.js +20 -0
- package/dist/enums/vehicleState.d.ts +13 -0
- package/dist/enums/vehicleState.js +37 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +12 -0
- package/dist/parkingArea.d.ts +31 -17
- package/dist/parkingArea.js +76 -26
- package/dist/parkingAreaAccess.d.ts +400 -0
- package/dist/parkingAreaAccess.js +466 -0
- package/dist/parkingAreaLayer.d.ts +354 -0
- package/dist/parkingAreaLayer.js +385 -0
- package/dist/parkingBooking.d.ts +148 -299
- package/dist/parkingBooking.js +83 -225
- package/dist/simulation.d.ts +171 -0
- package/dist/simulation.js +231 -0
- package/dist/vehiclePosition.d.ts +216 -0
- package/dist/vehiclePosition.js +237 -0
- package/package.json +21 -1
package/dist/parkingBooking.js
CHANGED
|
@@ -3,8 +3,9 @@ import { paginationSchema } from './pagination.js';
|
|
|
3
3
|
import { BookingStatus } from './enums/bookingStatus.js';
|
|
4
4
|
import { createSuccessResponseSchema, createMessageDataResponseSchema, documentSchema, vehicleTypeSchema } from './common.js';
|
|
5
5
|
import { z } from './zod.js';
|
|
6
|
-
import {
|
|
6
|
+
import { availableTimeSlotV2Schema, getAvailableSlotsBodyV2Schema } from './parkingArea.js';
|
|
7
7
|
import { UnloadingType } from './enums/unloadingType.js';
|
|
8
|
+
import { ParkingAreaScheduleType } from './enums/parkingAreaScheduleType.js';
|
|
8
9
|
// PostGIS geometry schema (GeoJSON-like structure)
|
|
9
10
|
export const geometrySchema = z
|
|
10
11
|
.object({
|
|
@@ -84,26 +85,6 @@ export const closeEventBodySchema = z
|
|
|
84
85
|
})
|
|
85
86
|
})
|
|
86
87
|
.openapi('CloseEventBody');
|
|
87
|
-
export const parkingBookingSchema = z.object({
|
|
88
|
-
id: z.number(),
|
|
89
|
-
parking_area_schedule_id: z.number(),
|
|
90
|
-
status: z.enum(BookingStatus),
|
|
91
|
-
is_active: z.boolean(),
|
|
92
|
-
created_at: z.string(),
|
|
93
|
-
updated_at: z.string(),
|
|
94
|
-
created_by: z.string().nullable(),
|
|
95
|
-
updated_by: z.string().nullable(),
|
|
96
|
-
booking_date: z.string().nullable(),
|
|
97
|
-
start_time: z.string().nullable(),
|
|
98
|
-
end_time: z.string().nullable(),
|
|
99
|
-
company_role: z.string().nullable(),
|
|
100
|
-
company: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
101
|
-
vehicle: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
102
|
-
entry_scanned_at: z.string().nullable(),
|
|
103
|
-
exit_scanned_at: z.string().nullable(),
|
|
104
|
-
// Include the schedule details
|
|
105
|
-
parking_area_schedule: parkingAreaScheduleSchema.optional()
|
|
106
|
-
});
|
|
107
88
|
export const companyDetailsSchema = z
|
|
108
89
|
.object({
|
|
109
90
|
hall: z.string().optional().nullable().openapi({
|
|
@@ -169,6 +150,27 @@ export const vehicleDetailsSchema = z
|
|
|
169
150
|
})
|
|
170
151
|
})
|
|
171
152
|
.openapi('VehicleDetails');
|
|
153
|
+
export const parkingBookingSchema = z.object({
|
|
154
|
+
id: z.number(),
|
|
155
|
+
parking_area_schedule_id: z.number(),
|
|
156
|
+
status: z.enum(BookingStatus),
|
|
157
|
+
is_active: z.boolean(),
|
|
158
|
+
created_at: z.string(),
|
|
159
|
+
updated_at: z.string(),
|
|
160
|
+
created_by: z.string().nullable(),
|
|
161
|
+
updated_by: z.string().nullable(),
|
|
162
|
+
booking_date: z.string().nullable(),
|
|
163
|
+
start_time: z.string().nullable(),
|
|
164
|
+
end_time: z.string().nullable(),
|
|
165
|
+
company_role: z.string().nullable(),
|
|
166
|
+
company: companyDetailsSchema,
|
|
167
|
+
vehicle: vehicleDetailsSchema,
|
|
168
|
+
entry_scanned_at: z.string().nullable(),
|
|
169
|
+
exit_scanned_at: z.string().nullable(),
|
|
170
|
+
parking_spot: z.string(),
|
|
171
|
+
door: z.string(),
|
|
172
|
+
parking_schedule_type: z.enum(ParkingAreaScheduleType)
|
|
173
|
+
});
|
|
172
174
|
export const eventBookingsDataSchema = z
|
|
173
175
|
.object({
|
|
174
176
|
event_id: z.number(),
|
|
@@ -212,7 +214,11 @@ export const closeEventDataSchema = z
|
|
|
212
214
|
})
|
|
213
215
|
.openapi('CloseEventData');
|
|
214
216
|
export const closeEventResponseSchema = createMessageDataResponseSchema(closeEventDataSchema, 'CloseEventResponse', 'Event phase closed successfully', 'Details of the closed event phase');
|
|
215
|
-
export const
|
|
217
|
+
export const confirmAccessBodySchema = z.object({
|
|
218
|
+
event_id: z.number().openapi({
|
|
219
|
+
description: 'ID of the event',
|
|
220
|
+
example: 1
|
|
221
|
+
}),
|
|
216
222
|
plate_number: z
|
|
217
223
|
.object({
|
|
218
224
|
url: z.string().openapi({
|
|
@@ -260,170 +266,20 @@ export const confirmAccessResponseSchema = z.object({
|
|
|
260
266
|
// ------------------------------
|
|
261
267
|
export const checkSlotAvailabilityBodySchema = z
|
|
262
268
|
.object({
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
date: z
|
|
268
|
-
.string()
|
|
269
|
-
.regex(/^\d{4}-\d{2}-\d{2}$/, 'Date must be in YYYY-MM-DD format')
|
|
270
|
-
.openapi({
|
|
271
|
-
description: 'The date to check availability (YYYY-MM-DD)',
|
|
272
|
-
example: '2025-12-15'
|
|
273
|
-
}),
|
|
274
|
-
start_time: z
|
|
275
|
-
.string()
|
|
276
|
-
.regex(/^\d{2}:\d{2}$/, 'Time must be in HH:MM format')
|
|
277
|
-
.openapi({
|
|
278
|
-
description: 'The start time to check availability (HH:MM)',
|
|
279
|
-
example: '08:00'
|
|
280
|
-
}),
|
|
281
|
-
company_role: z.string().min(1, 'Company role is required').openapi({
|
|
282
|
-
description: 'Company role to check availability for',
|
|
283
|
-
example: 'exhibitor'
|
|
269
|
+
...getAvailableSlotsBodyV2Schema.shape,
|
|
270
|
+
slot_key: z.string().min(1, 'Slot key is required').openapi({
|
|
271
|
+
description: 'Unique key identifying the time slot to check',
|
|
272
|
+
example: 'MainEntrance_2025-12-15_08:00'
|
|
284
273
|
})
|
|
285
274
|
})
|
|
286
275
|
.openapi('CheckSlotAvailabilityBody');
|
|
287
|
-
export const
|
|
288
|
-
.object({
|
|
289
|
-
schedule_id: z.number().openapi({
|
|
290
|
-
description: 'ID of the parking area schedule',
|
|
291
|
-
example: 1
|
|
292
|
-
}),
|
|
293
|
-
date: z.string().openapi({
|
|
294
|
-
description: 'Date checked',
|
|
295
|
-
example: '2025-12-15'
|
|
296
|
-
}),
|
|
297
|
-
start_time: z.string().openapi({
|
|
298
|
-
description: 'Time slot checked',
|
|
299
|
-
example: '08:00'
|
|
300
|
-
}),
|
|
301
|
-
is_available: z.boolean().openapi({
|
|
302
|
-
description: 'Whether the slot is available for booking',
|
|
303
|
-
example: true
|
|
304
|
-
}),
|
|
305
|
-
max_capacity: z.number().openapi({
|
|
306
|
-
description: 'Maximum booking capacity',
|
|
307
|
-
example: 5
|
|
308
|
-
}),
|
|
309
|
-
current_bookings: z.number().openapi({
|
|
310
|
-
description: 'Current number of total bookings',
|
|
311
|
-
example: 3
|
|
312
|
-
}),
|
|
313
|
-
confirmed_bookings: z.number().openapi({
|
|
314
|
-
description: 'Current number of confirmed bookings',
|
|
315
|
-
example: 1
|
|
316
|
-
}),
|
|
317
|
-
available_capacity: z.number().openapi({
|
|
318
|
-
description: 'Remaining available capacity',
|
|
319
|
-
example: 2
|
|
320
|
-
})
|
|
321
|
-
})
|
|
322
|
-
.openapi('CheckSlotAvailabilityData');
|
|
323
|
-
export const checkSlotAvailabilityResponseSchema = createSuccessResponseSchema(checkSlotAvailabilityDataSchema, 'CheckSlotAvailabilityResponse', 'Slot availability information with capacity details');
|
|
324
|
-
// ------------------------------
|
|
325
|
-
// QR Code Generation schemas
|
|
326
|
-
// ------------------------------
|
|
327
|
-
export const bookingDetailsDataSchema = z
|
|
328
|
-
.object({
|
|
329
|
-
qr_token: z.string().nullable().openapi({
|
|
330
|
-
description: 'QR token for verification',
|
|
331
|
-
example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
|
|
332
|
-
}),
|
|
333
|
-
id: z.number().openapi({
|
|
334
|
-
description: 'ID of the booking',
|
|
335
|
-
example: 123
|
|
336
|
-
}),
|
|
337
|
-
booking_id: z.number().openapi({
|
|
338
|
-
description: 'ID of the booking',
|
|
339
|
-
example: 123
|
|
340
|
-
}),
|
|
341
|
-
status: z.string().openapi({
|
|
342
|
-
description: 'Booking status',
|
|
343
|
-
example: 'confirmed'
|
|
344
|
-
}),
|
|
345
|
-
booking_date: z.string().openapi({
|
|
346
|
-
description: 'Date of the booking',
|
|
347
|
-
example: '2025-12-15'
|
|
348
|
-
}),
|
|
349
|
-
start_time: z.string().openapi({
|
|
350
|
-
description: 'Start time of the booking',
|
|
351
|
-
example: '08:00'
|
|
352
|
-
}),
|
|
353
|
-
end_time: z.string().openapi({
|
|
354
|
-
description: 'End time of the booking',
|
|
355
|
-
example: '08:30'
|
|
356
|
-
}),
|
|
357
|
-
company_role: z.string().nullable().openapi({
|
|
358
|
-
description: 'Company role for the booking',
|
|
359
|
-
example: 'exhibitor'
|
|
360
|
-
}),
|
|
361
|
-
company: companyDetailsSchema.openapi({
|
|
362
|
-
description: 'Company details'
|
|
363
|
-
}),
|
|
364
|
-
vehicle: vehicleDetailsSchema.openapi({
|
|
365
|
-
description: 'Vehicle details'
|
|
366
|
-
}),
|
|
367
|
-
event_id: z.number().openapi({
|
|
368
|
-
description: 'ID of the event',
|
|
369
|
-
example: 1
|
|
370
|
-
}),
|
|
371
|
-
event_name: z.string().openapi({
|
|
372
|
-
description: 'Name of the event',
|
|
373
|
-
example: 'Paris Fashion Week 2025'
|
|
374
|
-
}),
|
|
375
|
-
event_code: z.string().openapi({
|
|
376
|
-
description: 'Code of the event',
|
|
377
|
-
example: 'PFW2025'
|
|
378
|
-
}),
|
|
379
|
-
venue_id: z.number().nullable().openapi({
|
|
380
|
-
description: 'ID of the venue',
|
|
381
|
-
example: 1
|
|
382
|
-
}),
|
|
383
|
-
venue_name: z.string().nullable().openapi({
|
|
384
|
-
description: 'Name of the venue',
|
|
385
|
-
example: 'Paris Expo Porte de Versailles'
|
|
386
|
-
}),
|
|
387
|
-
request_type: z.string().openapi({
|
|
388
|
-
description: 'Type of parking area schedule (assembly/dismantling)',
|
|
389
|
-
example: 'assembly'
|
|
390
|
-
}),
|
|
391
|
-
duration: z.number().openapi({
|
|
392
|
-
description: 'Duration of the booking in minutes',
|
|
393
|
-
example: 30
|
|
394
|
-
}),
|
|
395
|
-
parking_area_schedule_id: z.number().openapi({
|
|
396
|
-
description: 'ID of the parking area schedule',
|
|
397
|
-
example: 456
|
|
398
|
-
}),
|
|
399
|
-
banner: documentSchema.nullable().openapi({
|
|
400
|
-
description: 'Event banner document',
|
|
401
|
-
example: {
|
|
402
|
-
url: 'https://example.com/event-banner.jpg',
|
|
403
|
-
name: 'event-banner.jpg',
|
|
404
|
-
type: 'image/jpeg'
|
|
405
|
-
}
|
|
406
|
-
}),
|
|
407
|
-
created_at: z.string().openapi({
|
|
408
|
-
description: 'Timestamp when booking was created',
|
|
409
|
-
example: '2025-12-05T10:30:00.000Z'
|
|
410
|
-
}),
|
|
411
|
-
updated_at: z.string().openapi({
|
|
412
|
-
description: 'Timestamp when booking was last updated',
|
|
413
|
-
example: '2025-12-05T10:30:00.000Z'
|
|
414
|
-
})
|
|
415
|
-
})
|
|
416
|
-
.openapi('BookingDetailsData');
|
|
276
|
+
export const checkSlotAvailabilityResponseSchema = createSuccessResponseSchema(availableTimeSlotV2Schema, 'CheckSlotAvailabilityResponse', 'Slot availability information with capacity details');
|
|
417
277
|
// ------------------------------
|
|
418
278
|
// Create Parking Booking schemas
|
|
419
279
|
// ------------------------------
|
|
420
280
|
// Request schema
|
|
421
281
|
export const createParkingBookingBodySchema = z
|
|
422
282
|
.object({
|
|
423
|
-
parking_area_schedule_id: z.number().int().positive().openapi({
|
|
424
|
-
description: 'ID of the parking area schedule to book',
|
|
425
|
-
example: 1
|
|
426
|
-
}),
|
|
427
283
|
// Company details
|
|
428
284
|
company: companyDetailsSchema.openapi({
|
|
429
285
|
description: 'Company details including stand, contact, and driver info'
|
|
@@ -443,12 +299,17 @@ export const createParkingBookingBodySchema = z
|
|
|
443
299
|
description: 'Booking date (YYYY-MM-DD)',
|
|
444
300
|
example: '2025-12-25'
|
|
445
301
|
}),
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
302
|
+
event_id: z.number().positive().openapi({
|
|
303
|
+
description: 'ID of the event for which the booking is made',
|
|
304
|
+
example: 1
|
|
305
|
+
}),
|
|
306
|
+
slot_key: z.string().min(1, 'Slot key is required').openapi({
|
|
307
|
+
description: 'Unique key identifying the time slot to book',
|
|
308
|
+
example: 'MainEntrance_2025-12-25_06:00'
|
|
309
|
+
}),
|
|
310
|
+
parking_schedule_type: z.enum(ParkingAreaScheduleType).openapi({
|
|
311
|
+
description: 'Type of parking area schedule',
|
|
312
|
+
example: 'assembly'
|
|
452
313
|
})
|
|
453
314
|
})
|
|
454
315
|
.openapi('CreateParkingBookingBody');
|
|
@@ -456,7 +317,6 @@ export const createParkingBookingBodySchema = z
|
|
|
456
317
|
export const createParkingBookingDataSchema = z
|
|
457
318
|
.object({
|
|
458
319
|
id: z.number(),
|
|
459
|
-
parking_area_schedule_id: z.number(),
|
|
460
320
|
status: z.string(),
|
|
461
321
|
company_role: z.string(),
|
|
462
322
|
company: companyDetailsSchema.openapi({
|
|
@@ -468,6 +328,10 @@ export const createParkingBookingDataSchema = z
|
|
|
468
328
|
booking_date: z.string(),
|
|
469
329
|
start_time: z.string(),
|
|
470
330
|
end_time: z.string(),
|
|
331
|
+
event_id: z.number(),
|
|
332
|
+
door: z.string(),
|
|
333
|
+
parking_spot: z.string(),
|
|
334
|
+
parking_schedule_type: z.enum(ParkingAreaScheduleType),
|
|
471
335
|
created_at: z.string(),
|
|
472
336
|
created_by: z.string().nullable()
|
|
473
337
|
})
|
|
@@ -595,27 +459,25 @@ export const parkingBookingWithRelationsSchema = z
|
|
|
595
459
|
is_active: z.boolean(),
|
|
596
460
|
created_at: z.string(),
|
|
597
461
|
updated_at: z.string(),
|
|
598
|
-
|
|
462
|
+
events: z.object({
|
|
599
463
|
id: z.number(),
|
|
600
|
-
|
|
601
|
-
|
|
464
|
+
name: z.string(),
|
|
465
|
+
code: z.string(),
|
|
466
|
+
venue_id: z.number().nullable(),
|
|
467
|
+
banner: z.record(z.string(), z.unknown()).nullable(),
|
|
468
|
+
venues: z
|
|
469
|
+
.object({
|
|
602
470
|
id: z.number(),
|
|
603
|
-
name: z.string()
|
|
604
|
-
events: z.object({
|
|
605
|
-
id: z.number(),
|
|
606
|
-
name: z.string(),
|
|
607
|
-
code: z.string(),
|
|
608
|
-
venue_id: z.number().nullable(),
|
|
609
|
-
banner: z.record(z.string(), z.unknown()).nullable(),
|
|
610
|
-
venues: z
|
|
611
|
-
.object({
|
|
612
|
-
id: z.number(),
|
|
613
|
-
name: z.string()
|
|
614
|
-
})
|
|
615
|
-
.nullable()
|
|
616
|
-
})
|
|
471
|
+
name: z.string()
|
|
617
472
|
})
|
|
618
|
-
|
|
473
|
+
.nullable()
|
|
474
|
+
}),
|
|
475
|
+
parking_spot: z.string(),
|
|
476
|
+
door: z.string(),
|
|
477
|
+
parking_schedule_type: z.enum(ParkingAreaScheduleType),
|
|
478
|
+
slot_key: z.string(),
|
|
479
|
+
entry_scanned_at: z.string().nullable(),
|
|
480
|
+
exit_scanned_at: z.string().nullable()
|
|
619
481
|
})
|
|
620
482
|
.openapi('ParkingBookingWithRelations');
|
|
621
483
|
// ------------------------------
|
|
@@ -696,20 +558,6 @@ export const parkingBookingDetailsDataSchema = z
|
|
|
696
558
|
description: 'Duration of the booking in minutes',
|
|
697
559
|
example: 30
|
|
698
560
|
}),
|
|
699
|
-
parking_area_schedule_id: z.number().openapi({
|
|
700
|
-
description: 'ID of the parking area schedule',
|
|
701
|
-
example: 456
|
|
702
|
-
}),
|
|
703
|
-
parking_area: z.object({
|
|
704
|
-
id: z.number().openapi({
|
|
705
|
-
description: 'ID of parking area',
|
|
706
|
-
example: 30
|
|
707
|
-
}),
|
|
708
|
-
name: z.string().openapi({
|
|
709
|
-
description: 'Name of parking area',
|
|
710
|
-
example: 'Parking Spot X'
|
|
711
|
-
})
|
|
712
|
-
}),
|
|
713
561
|
banner: documentSchema.nullable().openapi({
|
|
714
562
|
description: 'Event banner document',
|
|
715
563
|
example: {
|
|
@@ -733,6 +581,22 @@ export const parkingBookingDetailsDataSchema = z
|
|
|
733
581
|
exit_scanned_at: z.string().nullable().optional().openapi({
|
|
734
582
|
description: 'Timestamp when exit was scanned',
|
|
735
583
|
example: '2025-12-15T08:25:00.000Z'
|
|
584
|
+
}),
|
|
585
|
+
slot_key: z.string().openapi({
|
|
586
|
+
description: 'Unique key identifying the booked time slot',
|
|
587
|
+
example: 'MainEntrance_2025-12-15_08:00'
|
|
588
|
+
}),
|
|
589
|
+
parking_spot: z.string().openapi({
|
|
590
|
+
description: 'Assigned parking spot for the booking',
|
|
591
|
+
example: 'A-12'
|
|
592
|
+
}),
|
|
593
|
+
door: z.string().openapi({
|
|
594
|
+
description: 'Assigned door for the booking',
|
|
595
|
+
example: 'North Gate'
|
|
596
|
+
}),
|
|
597
|
+
parking_schedule_type: z.enum(ParkingAreaScheduleType).openapi({
|
|
598
|
+
description: 'Type of parking area schedule',
|
|
599
|
+
example: 'assembly'
|
|
736
600
|
})
|
|
737
601
|
})
|
|
738
602
|
.openapi('ParkingBookingDetailsData');
|
|
@@ -748,7 +612,6 @@ export const getParkingBookingDetailsByTokenBodySchema = z
|
|
|
748
612
|
})
|
|
749
613
|
})
|
|
750
614
|
.openapi('GetParkingBookingDetailsByTokenBody');
|
|
751
|
-
export const getParkingBookingDetailsByTokenResponseSchema = createSuccessResponseSchema(bookingDetailsDataSchema, 'GetParkingBookingDetailsByTokenResponse', 'Booking details retrieved by access token');
|
|
752
615
|
// ------------------------------
|
|
753
616
|
// Get booking details by QR schemas
|
|
754
617
|
// ------------------------------
|
|
@@ -760,7 +623,6 @@ export const getParkingBookingDetailsByQrBodySchema = z
|
|
|
760
623
|
})
|
|
761
624
|
})
|
|
762
625
|
.openapi('GetBookingDetailsByQrBody');
|
|
763
|
-
export const getParkingBookingDetailsByQrResponseSchema = createSuccessResponseSchema(bookingDetailsDataSchema, 'GetBookingDetailsByQrResponse', 'Booking details retrieved by QR token');
|
|
764
626
|
// ------------------------------
|
|
765
627
|
// Export All Parking Bookings
|
|
766
628
|
// ------------------------------
|
|
@@ -860,9 +722,9 @@ export const updateBookingTimeBodySchema = z
|
|
|
860
722
|
description: 'New start time (HH:MM)',
|
|
861
723
|
example: '10:00'
|
|
862
724
|
}),
|
|
863
|
-
|
|
864
|
-
description: '
|
|
865
|
-
example:
|
|
725
|
+
slot_key: z.string().min(1, 'Slot key is required').openapi({
|
|
726
|
+
description: 'Unique key identifying the new time slot',
|
|
727
|
+
example: 'MainEntrance_2025-12-25_10:00'
|
|
866
728
|
})
|
|
867
729
|
})
|
|
868
730
|
.openapi('UpdateBookingTimeBody');
|
|
@@ -872,10 +734,6 @@ export const updateBookingTimeDataSchema = z
|
|
|
872
734
|
description: 'ID of the updated booking',
|
|
873
735
|
example: 1
|
|
874
736
|
}),
|
|
875
|
-
parking_area_schedule_id: z.number().openapi({
|
|
876
|
-
description: 'New parking area schedule ID',
|
|
877
|
-
example: 5
|
|
878
|
-
}),
|
|
879
737
|
booking_date: z.string().openapi({
|
|
880
738
|
description: 'New booking date',
|
|
881
739
|
example: '2025-12-25'
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { z } from './zod.js';
|
|
2
|
+
import { SimulationMode, SimulationStatus } from './enums/simulationMode.js';
|
|
3
|
+
export declare const simulationModeSchema: z.ZodEnum<{
|
|
4
|
+
entry: SimulationMode.ENTRY;
|
|
5
|
+
exit: SimulationMode.EXIT;
|
|
6
|
+
both: SimulationMode.BOTH;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const simulationStatusSchema: z.ZodEnum<{
|
|
9
|
+
running: SimulationStatus.RUNNING;
|
|
10
|
+
stopped: SimulationStatus.STOPPED;
|
|
11
|
+
completed: SimulationStatus.COMPLETED;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const startSimulationBodySchema: z.ZodObject<{
|
|
14
|
+
event_id: z.ZodNumber;
|
|
15
|
+
booking_ids: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
16
|
+
speed_kmh: z.ZodDefault<z.ZodNumber>;
|
|
17
|
+
update_interval_ms: z.ZodDefault<z.ZodNumber>;
|
|
18
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
19
|
+
entry: SimulationMode.ENTRY;
|
|
20
|
+
exit: SimulationMode.EXIT;
|
|
21
|
+
both: SimulationMode.BOTH;
|
|
22
|
+
}>>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export type StartSimulationBody = z.infer<typeof startSimulationBodySchema>;
|
|
25
|
+
export declare const startSimulationDataSchema: z.ZodObject<{
|
|
26
|
+
session_id: z.ZodString;
|
|
27
|
+
event_id: z.ZodNumber;
|
|
28
|
+
booking_ids: z.ZodArray<z.ZodNumber>;
|
|
29
|
+
speed_kmh: z.ZodNumber;
|
|
30
|
+
update_interval_ms: z.ZodNumber;
|
|
31
|
+
mode: z.ZodEnum<{
|
|
32
|
+
entry: SimulationMode.ENTRY;
|
|
33
|
+
exit: SimulationMode.EXIT;
|
|
34
|
+
both: SimulationMode.BOTH;
|
|
35
|
+
}>;
|
|
36
|
+
started_at: z.ZodString;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
export type StartSimulationData = z.infer<typeof startSimulationDataSchema>;
|
|
39
|
+
export declare const startSimulationResponseSchema: z.ZodObject<{
|
|
40
|
+
success: z.ZodBoolean;
|
|
41
|
+
message: z.ZodString;
|
|
42
|
+
data: z.ZodObject<{
|
|
43
|
+
session_id: z.ZodString;
|
|
44
|
+
event_id: z.ZodNumber;
|
|
45
|
+
booking_ids: z.ZodArray<z.ZodNumber>;
|
|
46
|
+
speed_kmh: z.ZodNumber;
|
|
47
|
+
update_interval_ms: z.ZodNumber;
|
|
48
|
+
mode: z.ZodEnum<{
|
|
49
|
+
entry: SimulationMode.ENTRY;
|
|
50
|
+
exit: SimulationMode.EXIT;
|
|
51
|
+
both: SimulationMode.BOTH;
|
|
52
|
+
}>;
|
|
53
|
+
started_at: z.ZodString;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export type StartSimulationResponse = z.infer<typeof startSimulationResponseSchema>;
|
|
57
|
+
export declare const stopSimulationBodySchema: z.ZodObject<{
|
|
58
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
59
|
+
event_id: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
export type StopSimulationBody = z.infer<typeof stopSimulationBodySchema>;
|
|
62
|
+
export declare const stopSimulationDataSchema: z.ZodObject<{
|
|
63
|
+
sessions_stopped: z.ZodNumber;
|
|
64
|
+
session_ids: z.ZodArray<z.ZodString>;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
export type StopSimulationData = z.infer<typeof stopSimulationDataSchema>;
|
|
67
|
+
export declare const stopSimulationResponseSchema: z.ZodObject<{
|
|
68
|
+
success: z.ZodBoolean;
|
|
69
|
+
message: z.ZodString;
|
|
70
|
+
data: z.ZodObject<{
|
|
71
|
+
sessions_stopped: z.ZodNumber;
|
|
72
|
+
session_ids: z.ZodArray<z.ZodString>;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
}, z.core.$strip>;
|
|
75
|
+
export type StopSimulationResponse = z.infer<typeof stopSimulationResponseSchema>;
|
|
76
|
+
export declare const simulationSessionSchema: z.ZodObject<{
|
|
77
|
+
id: z.ZodString;
|
|
78
|
+
event_id: z.ZodNumber;
|
|
79
|
+
speed_kmh: z.ZodNumber;
|
|
80
|
+
update_interval_ms: z.ZodNumber;
|
|
81
|
+
mode: z.ZodEnum<{
|
|
82
|
+
entry: SimulationMode.ENTRY;
|
|
83
|
+
exit: SimulationMode.EXIT;
|
|
84
|
+
both: SimulationMode.BOTH;
|
|
85
|
+
}>;
|
|
86
|
+
booking_ids: z.ZodArray<z.ZodNumber>;
|
|
87
|
+
status: z.ZodEnum<{
|
|
88
|
+
running: SimulationStatus.RUNNING;
|
|
89
|
+
stopped: SimulationStatus.STOPPED;
|
|
90
|
+
completed: SimulationStatus.COMPLETED;
|
|
91
|
+
}>;
|
|
92
|
+
started_at: z.ZodString;
|
|
93
|
+
stopped_at: z.ZodNullable<z.ZodString>;
|
|
94
|
+
positions_generated: z.ZodNumber;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
export type SimulationSession = z.infer<typeof simulationSessionSchema>;
|
|
97
|
+
export declare const getSimulationStatusQuerySchema: z.ZodObject<{
|
|
98
|
+
event_id: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>, z.ZodNumber>>;
|
|
99
|
+
include_completed: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodString>>, z.ZodTransform<boolean, string>>;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
export type GetSimulationStatusQuery = z.infer<typeof getSimulationStatusQuerySchema>;
|
|
102
|
+
export declare const simulationStatusDataSchema: z.ZodObject<{
|
|
103
|
+
active: z.ZodBoolean;
|
|
104
|
+
sessions: z.ZodArray<z.ZodObject<{
|
|
105
|
+
id: z.ZodString;
|
|
106
|
+
event_id: z.ZodNumber;
|
|
107
|
+
speed_kmh: z.ZodNumber;
|
|
108
|
+
update_interval_ms: z.ZodNumber;
|
|
109
|
+
mode: z.ZodEnum<{
|
|
110
|
+
entry: SimulationMode.ENTRY;
|
|
111
|
+
exit: SimulationMode.EXIT;
|
|
112
|
+
both: SimulationMode.BOTH;
|
|
113
|
+
}>;
|
|
114
|
+
booking_ids: z.ZodArray<z.ZodNumber>;
|
|
115
|
+
status: z.ZodEnum<{
|
|
116
|
+
running: SimulationStatus.RUNNING;
|
|
117
|
+
stopped: SimulationStatus.STOPPED;
|
|
118
|
+
completed: SimulationStatus.COMPLETED;
|
|
119
|
+
}>;
|
|
120
|
+
started_at: z.ZodString;
|
|
121
|
+
stopped_at: z.ZodNullable<z.ZodString>;
|
|
122
|
+
positions_generated: z.ZodNumber;
|
|
123
|
+
}, z.core.$strip>>;
|
|
124
|
+
total_active: z.ZodNumber;
|
|
125
|
+
}, z.core.$strip>;
|
|
126
|
+
export type SimulationStatusData = z.infer<typeof simulationStatusDataSchema>;
|
|
127
|
+
export declare const getSimulationStatusResponseSchema: z.ZodObject<{
|
|
128
|
+
success: z.ZodBoolean;
|
|
129
|
+
data: z.ZodObject<{
|
|
130
|
+
active: z.ZodBoolean;
|
|
131
|
+
sessions: z.ZodArray<z.ZodObject<{
|
|
132
|
+
id: z.ZodString;
|
|
133
|
+
event_id: z.ZodNumber;
|
|
134
|
+
speed_kmh: z.ZodNumber;
|
|
135
|
+
update_interval_ms: z.ZodNumber;
|
|
136
|
+
mode: z.ZodEnum<{
|
|
137
|
+
entry: SimulationMode.ENTRY;
|
|
138
|
+
exit: SimulationMode.EXIT;
|
|
139
|
+
both: SimulationMode.BOTH;
|
|
140
|
+
}>;
|
|
141
|
+
booking_ids: z.ZodArray<z.ZodNumber>;
|
|
142
|
+
status: z.ZodEnum<{
|
|
143
|
+
running: SimulationStatus.RUNNING;
|
|
144
|
+
stopped: SimulationStatus.STOPPED;
|
|
145
|
+
completed: SimulationStatus.COMPLETED;
|
|
146
|
+
}>;
|
|
147
|
+
started_at: z.ZodString;
|
|
148
|
+
stopped_at: z.ZodNullable<z.ZodString>;
|
|
149
|
+
positions_generated: z.ZodNumber;
|
|
150
|
+
}, z.core.$strip>>;
|
|
151
|
+
total_active: z.ZodNumber;
|
|
152
|
+
}, z.core.$strip>;
|
|
153
|
+
}, z.core.$strip>;
|
|
154
|
+
export type GetSimulationStatusResponse = z.infer<typeof getSimulationStatusResponseSchema>;
|
|
155
|
+
export declare const pathPointSchema: z.ZodObject<{
|
|
156
|
+
x: z.ZodNumber;
|
|
157
|
+
y: z.ZodNumber;
|
|
158
|
+
distance_from_start: z.ZodNumber;
|
|
159
|
+
}, z.core.$strip>;
|
|
160
|
+
export type PathPoint = z.infer<typeof pathPointSchema>;
|
|
161
|
+
export declare const simulatedPathSchema: z.ZodObject<{
|
|
162
|
+
booking_id: z.ZodNumber;
|
|
163
|
+
points: z.ZodArray<z.ZodObject<{
|
|
164
|
+
x: z.ZodNumber;
|
|
165
|
+
y: z.ZodNumber;
|
|
166
|
+
distance_from_start: z.ZodNumber;
|
|
167
|
+
}, z.core.$strip>>;
|
|
168
|
+
total_distance: z.ZodNumber;
|
|
169
|
+
estimated_duration: z.ZodNumber;
|
|
170
|
+
}, z.core.$strip>;
|
|
171
|
+
export type SimulatedPath = z.infer<typeof simulatedPathSchema>;
|