@venulog/phasing-engine-schemas 0.5.0-alpha.0 → 0.5.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.
@@ -293,6 +293,103 @@ export declare const bookingDetailsDataSchema: z.ZodObject<{
293
293
  created_at: z.ZodString;
294
294
  updated_at: z.ZodString;
295
295
  }, z.core.$strip>;
296
+ export declare const createParkingBookingBodySchema: z.ZodObject<{
297
+ parking_area_schedule_id: z.ZodNumber;
298
+ company: z.ZodObject<{
299
+ hall: z.ZodString;
300
+ stand_number: z.ZodString;
301
+ company_name: z.ZodString;
302
+ business: z.ZodString;
303
+ departure_city: z.ZodString;
304
+ contact_name: z.ZodString;
305
+ email: z.ZodEmail;
306
+ phone: z.ZodString;
307
+ driver_name: z.ZodString;
308
+ driver_phone: z.ZodString;
309
+ transport_company: z.ZodString;
310
+ }, z.core.$strip>;
311
+ company_role: z.ZodString;
312
+ vehicle: z.ZodObject<{
313
+ vehicle_type: z.ZodString;
314
+ unloading_method: z.ZodString;
315
+ license_plate: z.ZodString;
316
+ trailer_registration: z.ZodOptional<z.ZodString>;
317
+ }, z.core.$strip>;
318
+ vehicle_type: z.ZodEnum<{
319
+ PL: "PL";
320
+ VUL: "VUL";
321
+ VL: "VL";
322
+ }>;
323
+ booking_date: z.ZodString;
324
+ start_time: z.ZodString;
325
+ end_time: z.ZodString;
326
+ }, z.core.$strip>;
327
+ export declare const createParkingBookingDataSchema: z.ZodObject<{
328
+ id: z.ZodNumber;
329
+ parking_area_schedule_id: z.ZodNumber;
330
+ status: z.ZodString;
331
+ company_role: z.ZodString;
332
+ company: z.ZodObject<{
333
+ hall: z.ZodString;
334
+ stand_number: z.ZodString;
335
+ company_name: z.ZodString;
336
+ business: z.ZodString;
337
+ departure_city: z.ZodString;
338
+ contact_name: z.ZodString;
339
+ email: z.ZodEmail;
340
+ phone: z.ZodString;
341
+ driver_name: z.ZodString;
342
+ driver_phone: z.ZodString;
343
+ transport_company: z.ZodString;
344
+ }, z.core.$strip>;
345
+ vehicle: z.ZodObject<{
346
+ vehicle_type: z.ZodString;
347
+ unloading_method: z.ZodString;
348
+ license_plate: z.ZodString;
349
+ trailer_registration: z.ZodOptional<z.ZodString>;
350
+ }, z.core.$strip>;
351
+ vehicle_type: z.ZodString;
352
+ booking_date: z.ZodString;
353
+ start_time: z.ZodString;
354
+ end_time: z.ZodString;
355
+ created_at: z.ZodString;
356
+ created_by: z.ZodNullable<z.ZodString>;
357
+ }, z.core.$strip>;
358
+ export declare const createParkingBookingResponseSchema: z.ZodObject<{
359
+ success: z.ZodBoolean;
360
+ message: z.ZodString;
361
+ data: z.ZodObject<{
362
+ id: z.ZodNumber;
363
+ parking_area_schedule_id: z.ZodNumber;
364
+ status: z.ZodString;
365
+ company_role: z.ZodString;
366
+ company: z.ZodObject<{
367
+ hall: z.ZodString;
368
+ stand_number: z.ZodString;
369
+ company_name: z.ZodString;
370
+ business: z.ZodString;
371
+ departure_city: z.ZodString;
372
+ contact_name: z.ZodString;
373
+ email: z.ZodEmail;
374
+ phone: z.ZodString;
375
+ driver_name: z.ZodString;
376
+ driver_phone: z.ZodString;
377
+ transport_company: z.ZodString;
378
+ }, z.core.$strip>;
379
+ vehicle: z.ZodObject<{
380
+ vehicle_type: z.ZodString;
381
+ unloading_method: z.ZodString;
382
+ license_plate: z.ZodString;
383
+ trailer_registration: z.ZodOptional<z.ZodString>;
384
+ }, z.core.$strip>;
385
+ vehicle_type: z.ZodString;
386
+ booking_date: z.ZodString;
387
+ start_time: z.ZodString;
388
+ end_time: z.ZodString;
389
+ created_at: z.ZodString;
390
+ created_by: z.ZodNullable<z.ZodString>;
391
+ }, z.core.$strip>;
392
+ }, z.core.$strip>;
296
393
  export declare const updateParkingBookingBodySchema: z.ZodObject<{
297
394
  company: z.ZodOptional<z.ZodObject<{
298
395
  hall: z.ZodString;
@@ -369,6 +466,64 @@ export declare const updateParkingBookingResponseSchema: z.ZodObject<{
369
466
  updated_by: z.ZodNullable<z.ZodString>;
370
467
  }, z.core.$strip>;
371
468
  }, z.core.$strip>;
469
+ export declare const confirmBookingParamsSchema: z.ZodObject<{
470
+ bookingId: z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>;
471
+ }, z.core.$strip>;
472
+ export declare const confirmBookingDataSchema: z.ZodObject<{
473
+ success: z.ZodBoolean;
474
+ message: z.ZodString;
475
+ data: z.ZodObject<{
476
+ id: z.ZodNumber;
477
+ status: z.ZodString;
478
+ parking_area_schedule_id: z.ZodNumber;
479
+ updated_at: z.ZodString;
480
+ updated_by: z.ZodString;
481
+ }, z.core.$strip>;
482
+ }, z.core.$strip>;
483
+ export declare const confirmBookingResponseSchema: z.ZodObject<{
484
+ success: z.ZodBoolean;
485
+ message: z.ZodString;
486
+ data: z.ZodObject<{
487
+ success: z.ZodBoolean;
488
+ message: z.ZodString;
489
+ data: z.ZodObject<{
490
+ id: z.ZodNumber;
491
+ status: z.ZodString;
492
+ parking_area_schedule_id: z.ZodNumber;
493
+ updated_at: z.ZodString;
494
+ updated_by: z.ZodString;
495
+ }, z.core.$strip>;
496
+ }, z.core.$strip>;
497
+ }, z.core.$strip>;
498
+ export declare const refuseBookingParamsSchema: z.ZodObject<{
499
+ bookingId: z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>;
500
+ }, z.core.$strip>;
501
+ export declare const refuseBookingDataSchema: z.ZodObject<{
502
+ success: z.ZodBoolean;
503
+ message: z.ZodString;
504
+ data: z.ZodObject<{
505
+ id: z.ZodNumber;
506
+ status: z.ZodString;
507
+ parking_area_schedule_id: z.ZodNumber;
508
+ updated_at: z.ZodString;
509
+ updated_by: z.ZodString;
510
+ }, z.core.$strip>;
511
+ }, z.core.$strip>;
512
+ export declare const refuseBookingResponseSchema: z.ZodObject<{
513
+ success: z.ZodBoolean;
514
+ message: z.ZodString;
515
+ data: z.ZodObject<{
516
+ success: z.ZodBoolean;
517
+ message: z.ZodString;
518
+ data: z.ZodObject<{
519
+ id: z.ZodNumber;
520
+ status: z.ZodString;
521
+ parking_area_schedule_id: z.ZodNumber;
522
+ updated_at: z.ZodString;
523
+ updated_by: z.ZodString;
524
+ }, z.core.$strip>;
525
+ }, z.core.$strip>;
526
+ }, z.core.$strip>;
372
527
  export declare const parkingBookingWithRelationsSchema: z.ZodObject<{
373
528
  id: z.ZodNumber;
374
529
  status: z.ZodString;
@@ -607,12 +762,37 @@ export declare const getParkingBookingDetailsByQrResponseSchema: z.ZodObject<{
607
762
  updated_at: z.ZodString;
608
763
  }, z.core.$strip>;
609
764
  }, z.core.$strip>;
765
+ export type Geometry = z.infer<typeof geometrySchema>;
610
766
  export type ParkingBooking = z.infer<typeof parkingBookingSchema>;
611
767
  export type CompanyDetails = z.infer<typeof companyDetailsSchema>;
612
768
  export type VehicleDetails = z.infer<typeof vehicleDetailsSchema>;
613
769
  export type EventBookingsData = z.infer<typeof eventBookingsDataSchema>;
614
770
  export type CheckSlotAvailabilityBody = z.infer<typeof checkSlotAvailabilityBodySchema>;
615
771
  export type CheckSlotAvailabilityData = z.infer<typeof checkSlotAvailabilityDataSchema>;
772
+ export type CheckSlotAvailabilityResponse = z.infer<typeof checkSlotAvailabilityResponseSchema>;
616
773
  export type ParkingBookingDetailsData = z.infer<typeof parkingBookingDetailsDataSchema>;
617
774
  export type UpdateParkingBookingBody = z.infer<typeof updateParkingBookingBodySchema>;
618
775
  export type UpdateParkingBookingData = z.infer<typeof updateParkingBookingDataSchema>;
776
+ export type GetEventBookingsQuery = z.infer<typeof getEventBookingsQuerySchema>;
777
+ export type CloseEventParams = z.infer<typeof closeEventParamsSchema>;
778
+ export type CloseEventBody = z.infer<typeof closeEventBodySchema>;
779
+ export type CloseEventData = z.infer<typeof closeEventDataSchema>;
780
+ export type CloseEventResponse = z.infer<typeof closeEventResponseSchema>;
781
+ export type EventBookingsResponse = z.infer<typeof eventBookingsResponseSchema>;
782
+ export type ConfirmBookingParams = z.infer<typeof confirmBookingParamsSchema>;
783
+ export type ConfirmBookingResponse = z.infer<typeof confirmBookingResponseSchema>;
784
+ export type CreateBookingBody = z.infer<typeof createParkingBookingBodySchema>;
785
+ export type CreateBookingData = z.infer<typeof createParkingBookingDataSchema>;
786
+ export type CreateBookingResponse = z.infer<typeof createParkingBookingResponseSchema>;
787
+ export type RefuseBookingParams = z.infer<typeof refuseBookingParamsSchema>;
788
+ export type RefuseBookingData = z.infer<typeof refuseBookingDataSchema>;
789
+ export type RefuseBookingResponse = z.infer<typeof refuseBookingResponseSchema>;
790
+ export type GetBookingDetailsParams = z.infer<typeof getParkingBookingDetailsParamsSchema>;
791
+ export type GetBookingDetailsData = z.infer<typeof parkingBookingDetailsDataSchema>;
792
+ export type GetBookingDetailsResponse = z.infer<typeof getParkingBookingDetailsResponseSchema>;
793
+ export type GetBookingDetailsByTokenBody = z.infer<typeof getParkingBookingDetailsByTokenBodySchema>;
794
+ export type GetBookingDetailsByTokenData = z.infer<typeof bookingDetailsDataSchema>;
795
+ export type GetBookingDetailsByTokenResponse = z.infer<typeof getParkingBookingDetailsByTokenResponseSchema>;
796
+ export type GetBookingDetailsByQrBody = z.infer<typeof getParkingBookingDetailsByQrBodySchema>;
797
+ export type GetBookingDetailsByQrData = z.infer<typeof bookingDetailsDataSchema>;
798
+ export type GetBookingDetailsByQrResponse = z.infer<typeof getParkingBookingDetailsByQrResponseSchema>;
@@ -385,6 +385,77 @@ export const bookingDetailsDataSchema = z
385
385
  })
386
386
  .openapi('BookingDetailsData');
387
387
  // ------------------------------
388
+ // Create Parking Booking schemas
389
+ // ------------------------------
390
+ // Request schema
391
+ export const createParkingBookingBodySchema = z
392
+ .object({
393
+ parking_area_schedule_id: z.number().int().positive().openapi({
394
+ description: 'ID of the parking area schedule to book',
395
+ example: 1
396
+ }),
397
+ // Company details
398
+ company: companyDetailsSchema.openapi({
399
+ description: 'Company details including stand, contact, and driver info'
400
+ }),
401
+ company_role: z.string().min(1).openapi({
402
+ description: 'Company role (e.g., exhibitor, contractor, organizer)',
403
+ example: 'exhibitor'
404
+ }),
405
+ // Vehicle details
406
+ vehicle: vehicleDetailsSchema.openapi({
407
+ description: 'Vehicle details'
408
+ }),
409
+ vehicle_type: z.enum(['PL', 'VUL', 'VL']).openapi({
410
+ description: 'Vehicle type: PL (poids lourd), VUL (véhicule utilitaire léger), VL (véhicule léger)',
411
+ example: 'PL'
412
+ }),
413
+ booking_date: z
414
+ .string()
415
+ .regex(/^\d{4}-\d{2}-\d{2}$/)
416
+ .openapi({
417
+ description: 'Booking date (YYYY-MM-DD)',
418
+ example: '2025-12-25'
419
+ }),
420
+ start_time: z
421
+ .string()
422
+ .regex(/^\d{2}:\d{2}$/)
423
+ .openapi({
424
+ description: 'Start time (HH:MM)',
425
+ example: '06:00'
426
+ }),
427
+ end_time: z
428
+ .string()
429
+ .regex(/^\d{2}:\d{2}$/)
430
+ .openapi({
431
+ description: 'End time (HH:MM)',
432
+ example: '09:00'
433
+ })
434
+ })
435
+ .openapi('CreateParkingBookingBody');
436
+ // Response schema
437
+ export const createParkingBookingDataSchema = z
438
+ .object({
439
+ id: z.number(),
440
+ parking_area_schedule_id: z.number(),
441
+ status: z.string(),
442
+ company_role: z.string(),
443
+ company: companyDetailsSchema.openapi({
444
+ description: 'Company details including stand, contact, and driver info'
445
+ }),
446
+ vehicle: vehicleDetailsSchema.openapi({
447
+ description: 'Vehicle details'
448
+ }),
449
+ vehicle_type: z.string(),
450
+ booking_date: z.string(),
451
+ start_time: z.string(),
452
+ end_time: z.string(),
453
+ created_at: z.string(),
454
+ created_by: z.string().nullable()
455
+ })
456
+ .openapi('CreateParkingBookingData');
457
+ export const createParkingBookingResponseSchema = createMessageDataResponseSchema(createParkingBookingDataSchema, 'CreateParkingBookingResponse', 'Parking booking created successfully', 'Details of the created booking');
458
+ // ------------------------------
388
459
  // Update Parking Booking schemas
389
460
  // ------------------------------
390
461
  export const updateParkingBookingBodySchema = z
@@ -432,6 +503,72 @@ export const updateParkingBookingDataSchema = z
432
503
  .openapi('UpdateParkingBookingData');
433
504
  export const updateParkingBookingResponseSchema = createMessageDataResponseSchema(updateParkingBookingDataSchema, 'UpdateParkingBookingResponse', 'Parking booking updated successfully', 'Details of the updated booking');
434
505
  // ------------------------------
506
+ // Confirm Booking Schemas
507
+ // ------------------------------
508
+ // Path params schema
509
+ export const confirmBookingParamsSchema = z
510
+ .object({
511
+ bookingId: z
512
+ .string()
513
+ .transform(val => parseInt(val, 10))
514
+ .refine(val => !isNaN(val) && val > 0, {
515
+ message: 'Booking ID must be a positive number'
516
+ })
517
+ .openapi({
518
+ description: 'Parking booking ID',
519
+ example: '1'
520
+ })
521
+ })
522
+ .openapi('ConfirmBookingParams');
523
+ // Response schema
524
+ export const confirmBookingDataSchema = z
525
+ .object({
526
+ success: z.boolean(),
527
+ message: z.string(),
528
+ data: z.object({
529
+ id: z.number(),
530
+ status: z.string(),
531
+ parking_area_schedule_id: z.number(),
532
+ updated_at: z.string(),
533
+ updated_by: z.string()
534
+ })
535
+ })
536
+ .openapi('ConfirmBookingData');
537
+ export const confirmBookingResponseSchema = createMessageDataResponseSchema(confirmBookingDataSchema, 'ConfirmBookingResponse', 'Parking booking confirmed successfully', 'Details of the confirmed booking');
538
+ // ------------------------------
539
+ // Refuse Booking Schemas
540
+ // ------------------------------
541
+ // Path params schema
542
+ export const refuseBookingParamsSchema = z
543
+ .object({
544
+ bookingId: z
545
+ .string()
546
+ .transform(val => parseInt(val, 10))
547
+ .refine(val => !isNaN(val) && val > 0, {
548
+ message: 'Booking ID must be a positive number'
549
+ })
550
+ .openapi({
551
+ description: 'Parking booking ID',
552
+ example: '1'
553
+ })
554
+ })
555
+ .openapi('RefuseBookingParams');
556
+ // Response schema
557
+ export const refuseBookingDataSchema = z
558
+ .object({
559
+ success: z.boolean(),
560
+ message: z.string(),
561
+ data: z.object({
562
+ id: z.number(),
563
+ status: z.string(),
564
+ parking_area_schedule_id: z.number(),
565
+ updated_at: z.string(),
566
+ updated_by: z.string()
567
+ })
568
+ })
569
+ .openapi('RefuseBookingData');
570
+ export const refuseBookingResponseSchema = createMessageDataResponseSchema(refuseBookingDataSchema, 'RefuseBookingResponse', 'Parking booking refused successfully', 'Details of the refused booking');
571
+ // ------------------------------
435
572
  // Booking with nested relations schema for QR generation
436
573
  // ------------------------------
437
574
  export const parkingBookingWithRelationsSchema = z
package/package.json CHANGED
@@ -1,75 +1,75 @@
1
- {
2
- "name": "@venulog/phasing-engine-schemas",
3
- "version": "0.5.0-alpha.0",
4
- "description": "Shared schemas and types for Phasing Engine API",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
12
- },
13
- "./auth": {
14
- "types": "./dist/auth.d.ts",
15
- "import": "./dist/auth.js"
16
- },
17
- "./common": {
18
- "types": "./dist/common.d.ts",
19
- "import": "./dist/common.js"
20
- },
21
- "./pagination": {
22
- "types": "./dist/pagination.d.ts",
23
- "import": "./dist/pagination.js"
24
- },
25
- "./parkingBooking": {
26
- "types": "./dist/parkingBooking.d.ts",
27
- "import": "./dist/parkingBooking.js"
28
- },
29
- "./event": {
30
- "types": "./dist/event.d.ts",
31
- "import": "./dist/event.js"
32
- },
33
- "./parkingArea": {
34
- "types": "./dist/parkingArea.d.ts",
35
- "import": "./dist/parkingArea.js"
36
- },
37
- "./enums": {
38
- "types": "./dist/enums/index.d.ts",
39
- "import": "./dist/enums/index.js"
40
- },
41
- "./accessToken": {
42
- "types": "./dist/accessToken.d.ts",
43
- "import": "./dist/accessToken.js"
44
- }
45
- },
46
- "files": [
47
- "dist"
48
- ],
49
- "scripts": {
50
- "build": "npm run clean && tsc",
51
- "dev": "tsc --watch",
52
- "clean": "rm -rf dist",
53
- "prepublishOnly": "npm run build"
54
- },
55
- "keywords": [
56
- "schemas",
57
- "validation",
58
- "types",
59
- "zod",
60
- "phasing-engine"
61
- ],
62
- "license": "MIT",
63
- "dependencies": {
64
- "@asteasolutions/zod-to-openapi": "^8.1.0",
65
- "zod": "^4.1.13"
66
- },
67
- "devDependencies": {
68
- "typescript": "^5.6.3"
69
- },
70
- "repository": {
71
- "type": "git",
72
- "url": "git+https://github.com/manaty/phasing_engine.git",
73
- "directory": "packages/phasing-schemas"
74
- }
75
- }
1
+ {
2
+ "name": "@venulog/phasing-engine-schemas",
3
+ "version": "0.5.0",
4
+ "description": "Shared schemas and types for Phasing Engine API",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./auth": {
14
+ "types": "./dist/auth.d.ts",
15
+ "import": "./dist/auth.js"
16
+ },
17
+ "./common": {
18
+ "types": "./dist/common.d.ts",
19
+ "import": "./dist/common.js"
20
+ },
21
+ "./pagination": {
22
+ "types": "./dist/pagination.d.ts",
23
+ "import": "./dist/pagination.js"
24
+ },
25
+ "./parkingBooking": {
26
+ "types": "./dist/parkingBooking.d.ts",
27
+ "import": "./dist/parkingBooking.js"
28
+ },
29
+ "./event": {
30
+ "types": "./dist/event.d.ts",
31
+ "import": "./dist/event.js"
32
+ },
33
+ "./parkingArea": {
34
+ "types": "./dist/parkingArea.d.ts",
35
+ "import": "./dist/parkingArea.js"
36
+ },
37
+ "./enums": {
38
+ "types": "./dist/enums/index.d.ts",
39
+ "import": "./dist/enums/index.js"
40
+ },
41
+ "./accessToken": {
42
+ "types": "./dist/accessToken.d.ts",
43
+ "import": "./dist/accessToken.js"
44
+ }
45
+ },
46
+ "files": [
47
+ "dist"
48
+ ],
49
+ "scripts": {
50
+ "build": "npm run clean && tsc",
51
+ "dev": "tsc --watch",
52
+ "clean": "rm -rf dist",
53
+ "prepublishOnly": "npm run build"
54
+ },
55
+ "keywords": [
56
+ "schemas",
57
+ "validation",
58
+ "types",
59
+ "zod",
60
+ "phasing-engine"
61
+ ],
62
+ "license": "MIT",
63
+ "dependencies": {
64
+ "@asteasolutions/zod-to-openapi": "^8.1.0",
65
+ "zod": "^4.1.13"
66
+ },
67
+ "devDependencies": {
68
+ "typescript": "^5.6.3"
69
+ },
70
+ "repository": {
71
+ "type": "git",
72
+ "url": "git+https://github.com/manaty/phasing_engine.git",
73
+ "directory": "packages/phasing-schemas"
74
+ }
75
+ }