@blackcode_sa/metaestetics-api 1.7.38 → 1.7.39

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/index.js CHANGED
@@ -244,7 +244,7 @@ __export(index_exports, {
244
244
  module.exports = __toCommonJS(index_exports);
245
245
 
246
246
  // src/validations/appointment.schema.ts
247
- var import_zod2 = require("zod");
247
+ var import_zod3 = require("zod");
248
248
 
249
249
  // src/types/appointment/index.ts
250
250
  var AppointmentStatus = /* @__PURE__ */ ((AppointmentStatus2) => {
@@ -512,140 +512,187 @@ var updateFilledDocumentDataSchema = import_zod.z.object({
512
512
  status: filledDocumentStatusSchema.optional()
513
513
  });
514
514
 
515
+ // src/backoffice/types/static/pricing.types.ts
516
+ var PricingMeasure = /* @__PURE__ */ ((PricingMeasure3) => {
517
+ PricingMeasure3["PER_ML"] = "per_ml";
518
+ PricingMeasure3["PER_ZONE"] = "per_zone";
519
+ PricingMeasure3["PER_AREA"] = "per_area";
520
+ PricingMeasure3["PER_SESSION"] = "per_session";
521
+ PricingMeasure3["PER_TREATMENT"] = "per_treatment";
522
+ PricingMeasure3["PER_PACKAGE"] = "per_package";
523
+ return PricingMeasure3;
524
+ })(PricingMeasure || {});
525
+ var Currency = /* @__PURE__ */ ((Currency2) => {
526
+ Currency2["EUR"] = "EUR";
527
+ Currency2["USD"] = "USD";
528
+ Currency2["GBP"] = "GBP";
529
+ Currency2["CHF"] = "CHF";
530
+ Currency2["AUD"] = "AUD";
531
+ return Currency2;
532
+ })(Currency || {});
533
+
534
+ // src/validations/media.schema.ts
535
+ var import_zod2 = require("zod");
536
+ var mediaResourceSchema = import_zod2.z.union([
537
+ import_zod2.z.string().url(),
538
+ import_zod2.z.instanceof(File),
539
+ import_zod2.z.instanceof(Blob)
540
+ ]);
541
+
515
542
  // src/validations/appointment.schema.ts
516
543
  var MIN_STRING_LENGTH = 1;
517
544
  var MAX_STRING_LENGTH = 1024;
518
545
  var MAX_STRING_LENGTH_LONG = 4096;
519
546
  var MAX_ARRAY_LENGTH = 100;
520
- var appointmentStatusSchema = import_zod2.z.nativeEnum(AppointmentStatus);
521
- var paymentStatusSchema = import_zod2.z.nativeEnum(PaymentStatus);
522
- var mediaTypeSchema = import_zod2.z.nativeEnum(MediaType);
523
- var appointmentMediaItemSchema = import_zod2.z.object({
524
- id: import_zod2.z.string().min(MIN_STRING_LENGTH, "Media item ID is required"),
547
+ var appointmentStatusSchema = import_zod3.z.nativeEnum(AppointmentStatus);
548
+ var paymentStatusSchema = import_zod3.z.nativeEnum(PaymentStatus);
549
+ var mediaTypeSchema = import_zod3.z.nativeEnum(MediaType);
550
+ var appointmentMediaItemSchema = import_zod3.z.object({
551
+ id: import_zod3.z.string().min(MIN_STRING_LENGTH, "Media item ID is required"),
525
552
  type: mediaTypeSchema,
526
- url: import_zod2.z.string().url("Media URL must be a valid URL"),
527
- fileName: import_zod2.z.string().optional(),
528
- uploadedAt: import_zod2.z.any().refine(
553
+ url: import_zod3.z.string().url("Media URL must be a valid URL"),
554
+ fileName: import_zod3.z.string().optional(),
555
+ uploadedAt: import_zod3.z.any().refine(
529
556
  (val) => val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
530
557
  "uploadedAt must be a valid timestamp or Date object"
531
558
  ),
532
- uploadedBy: import_zod2.z.string().min(MIN_STRING_LENGTH, "Uploaded by user ID is required"),
533
- description: import_zod2.z.string().max(MAX_STRING_LENGTH, "Description too long").optional()
534
- });
535
- var procedureExtendedInfoSchema = import_zod2.z.object({
536
- id: import_zod2.z.string().min(MIN_STRING_LENGTH),
537
- name: import_zod2.z.string().min(MIN_STRING_LENGTH),
538
- description: import_zod2.z.string(),
539
- cost: import_zod2.z.number().min(0),
540
- duration: import_zod2.z.number().min(0),
541
- procedureFamily: import_zod2.z.any(),
542
- procedureCategoryId: import_zod2.z.string(),
543
- procedureCategoryName: import_zod2.z.string(),
544
- procedureSubCategoryId: import_zod2.z.string(),
545
- procedureSubCategoryName: import_zod2.z.string(),
546
- procedureTechnologyId: import_zod2.z.string(),
547
- procedureTechnologyName: import_zod2.z.string(),
548
- procedureProductBrandId: import_zod2.z.string(),
549
- procedureProductBrandName: import_zod2.z.string(),
550
- procedureProductId: import_zod2.z.string(),
551
- procedureProductName: import_zod2.z.string()
552
- });
553
- var linkedFormInfoSchema = import_zod2.z.object({
554
- formId: import_zod2.z.string().min(MIN_STRING_LENGTH, "Form ID is required"),
555
- templateId: import_zod2.z.string().min(MIN_STRING_LENGTH, "Template ID is required"),
556
- templateVersion: import_zod2.z.number().int().positive("Template version must be a positive integer"),
557
- title: import_zod2.z.string().min(MIN_STRING_LENGTH, "Form title is required"),
558
- isUserForm: import_zod2.z.boolean(),
559
- isRequired: import_zod2.z.boolean().optional(),
559
+ uploadedBy: import_zod3.z.string().min(MIN_STRING_LENGTH, "Uploaded by user ID is required"),
560
+ description: import_zod3.z.string().max(MAX_STRING_LENGTH, "Description too long").optional()
561
+ });
562
+ var procedureExtendedInfoSchema = import_zod3.z.object({
563
+ id: import_zod3.z.string().min(MIN_STRING_LENGTH),
564
+ name: import_zod3.z.string().min(MIN_STRING_LENGTH),
565
+ description: import_zod3.z.string(),
566
+ cost: import_zod3.z.number().min(0),
567
+ duration: import_zod3.z.number().min(0),
568
+ procedureFamily: import_zod3.z.any(),
569
+ procedureCategoryId: import_zod3.z.string(),
570
+ procedureCategoryName: import_zod3.z.string(),
571
+ procedureSubCategoryId: import_zod3.z.string(),
572
+ procedureSubCategoryName: import_zod3.z.string(),
573
+ procedureTechnologyId: import_zod3.z.string(),
574
+ procedureTechnologyName: import_zod3.z.string(),
575
+ procedureProductBrandId: import_zod3.z.string(),
576
+ procedureProductBrandName: import_zod3.z.string(),
577
+ procedureProductId: import_zod3.z.string(),
578
+ procedureProductName: import_zod3.z.string()
579
+ });
580
+ var linkedFormInfoSchema = import_zod3.z.object({
581
+ formId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Form ID is required"),
582
+ templateId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Template ID is required"),
583
+ templateVersion: import_zod3.z.number().int().positive("Template version must be a positive integer"),
584
+ title: import_zod3.z.string().min(MIN_STRING_LENGTH, "Form title is required"),
585
+ isUserForm: import_zod3.z.boolean(),
586
+ isRequired: import_zod3.z.boolean().optional(),
560
587
  status: filledDocumentStatusSchema,
561
- path: import_zod2.z.string().min(MIN_STRING_LENGTH, "Form path is required"),
562
- submittedAt: import_zod2.z.any().refine(
588
+ path: import_zod3.z.string().min(MIN_STRING_LENGTH, "Form path is required"),
589
+ submittedAt: import_zod3.z.any().refine(
563
590
  (val) => val === void 0 || val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
564
591
  "submittedAt must be a valid timestamp or Date object"
565
592
  ).optional(),
566
- completedAt: import_zod2.z.any().refine(
593
+ completedAt: import_zod3.z.any().refine(
567
594
  (val) => val === void 0 || val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
568
595
  "completedAt must be a valid timestamp or Date object"
569
596
  ).optional()
570
597
  });
571
- var patientReviewInfoSchema = import_zod2.z.object({
572
- reviewId: import_zod2.z.string().min(MIN_STRING_LENGTH, "Review ID is required"),
573
- rating: import_zod2.z.number().min(1).max(5, "Rating must be between 1 and 5"),
574
- comment: import_zod2.z.string().max(MAX_STRING_LENGTH_LONG, "Comment too long").optional(),
575
- reviewedAt: import_zod2.z.any().refine(
598
+ var patientReviewInfoSchema = import_zod3.z.object({
599
+ reviewId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Review ID is required"),
600
+ rating: import_zod3.z.number().min(1).max(5, "Rating must be between 1 and 5"),
601
+ comment: import_zod3.z.string().max(MAX_STRING_LENGTH_LONG, "Comment too long").optional(),
602
+ reviewedAt: import_zod3.z.any().refine(
576
603
  (val) => val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
577
604
  "reviewedAt must be a valid timestamp or Date object"
578
605
  )
579
606
  });
580
- var finalizedDetailsSchema = import_zod2.z.object({
581
- by: import_zod2.z.string().min(MIN_STRING_LENGTH, "Finalized by user ID is required"),
582
- at: import_zod2.z.any().refine(
607
+ var finalizedDetailsSchema = import_zod3.z.object({
608
+ by: import_zod3.z.string().min(MIN_STRING_LENGTH, "Finalized by user ID is required"),
609
+ at: import_zod3.z.any().refine(
583
610
  (val) => val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
584
611
  "Finalized at must be a valid timestamp or Date object"
585
612
  ),
586
- notes: import_zod2.z.string().max(MAX_STRING_LENGTH_LONG, "Finalization notes too long").optional()
587
- });
588
- var createAppointmentSchema = import_zod2.z.object({
589
- clinicBranchId: import_zod2.z.string().min(MIN_STRING_LENGTH, "Clinic branch ID is required"),
590
- practitionerId: import_zod2.z.string().min(MIN_STRING_LENGTH, "Practitioner ID is required"),
591
- patientId: import_zod2.z.string().min(MIN_STRING_LENGTH, "Patient ID is required"),
592
- procedureId: import_zod2.z.string().min(MIN_STRING_LENGTH, "Procedure ID is required"),
593
- appointmentStartTime: import_zod2.z.any().refine(
613
+ notes: import_zod3.z.string().max(MAX_STRING_LENGTH_LONG, "Finalization notes too long").optional()
614
+ });
615
+ var beforeAfterPerZoneSchema = import_zod3.z.object({
616
+ before: mediaResourceSchema.nullable(),
617
+ after: mediaResourceSchema.nullable(),
618
+ note: import_zod3.z.string().nullable()
619
+ });
620
+ var billingPerZoneSchema = import_zod3.z.object({
621
+ Product: import_zod3.z.string().min(MIN_STRING_LENGTH, "Product name is required"),
622
+ ProductId: import_zod3.z.string().nullable(),
623
+ Quantity: import_zod3.z.number().min(0, "Quantity must be non-negative"),
624
+ UnitOfMeasurement: import_zod3.z.nativeEnum(PricingMeasure),
625
+ UnitPrice: import_zod3.z.number().min(0, "Unit price must be non-negative"),
626
+ UnitCurency: import_zod3.z.nativeEnum(Currency),
627
+ Subtotal: import_zod3.z.number().min(0, "Subtotal must be non-negative"),
628
+ Note: import_zod3.z.string().nullable()
629
+ });
630
+ var appointmentMetadataSchema = import_zod3.z.object({
631
+ selectedZones: import_zod3.z.array(import_zod3.z.string()).nullable(),
632
+ zonePhotos: import_zod3.z.record(import_zod3.z.string(), beforeAfterPerZoneSchema).nullable(),
633
+ zoneBilling: import_zod3.z.record(import_zod3.z.string(), billingPerZoneSchema).nullable()
634
+ });
635
+ var createAppointmentSchema = import_zod3.z.object({
636
+ clinicBranchId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Clinic branch ID is required"),
637
+ practitionerId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Practitioner ID is required"),
638
+ patientId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Patient ID is required"),
639
+ procedureId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Procedure ID is required"),
640
+ appointmentStartTime: import_zod3.z.any().refine(
594
641
  (val) => val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
595
642
  "Appointment start time must be a valid timestamp or Date object"
596
643
  ),
597
- appointmentEndTime: import_zod2.z.any().refine(
644
+ appointmentEndTime: import_zod3.z.any().refine(
598
645
  (val) => val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
599
646
  "Appointment end time must be a valid timestamp or Date object"
600
647
  ),
601
- cost: import_zod2.z.number().min(0, "Cost must be a non-negative number"),
602
- currency: import_zod2.z.string().min(1, "Currency is required"),
603
- patientNotes: import_zod2.z.string().max(MAX_STRING_LENGTH, "Patient notes too long").nullable().optional(),
648
+ cost: import_zod3.z.number().min(0, "Cost must be a non-negative number"),
649
+ currency: import_zod3.z.string().min(1, "Currency is required"),
650
+ patientNotes: import_zod3.z.string().max(MAX_STRING_LENGTH, "Patient notes too long").nullable().optional(),
604
651
  initialStatus: appointmentStatusSchema,
605
652
  initialPaymentStatus: paymentStatusSchema.optional().default("unpaid" /* UNPAID */)
606
653
  }).refine((data) => data.appointmentEndTime > data.appointmentStartTime, {
607
654
  message: "Appointment end time must be after start time",
608
655
  path: ["appointmentEndTime"]
609
656
  });
610
- var updateAppointmentSchema = import_zod2.z.object({
657
+ var updateAppointmentSchema = import_zod3.z.object({
611
658
  status: appointmentStatusSchema.optional(),
612
- confirmationTime: import_zod2.z.any().optional().nullable(),
613
- cancellationTime: import_zod2.z.any().optional().nullable(),
614
- rescheduleTime: import_zod2.z.any().optional().nullable(),
615
- procedureActualStartTime: import_zod2.z.any().optional().nullable(),
616
- actualDurationMinutes: import_zod2.z.number().int().positive("Duration must be a positive integer").optional(),
617
- cancellationReason: import_zod2.z.string().max(MAX_STRING_LENGTH, "Cancellation reason too long").nullable().optional(),
618
- canceledBy: import_zod2.z.enum(["patient", "clinic", "practitioner", "system"]).optional(),
619
- internalNotes: import_zod2.z.string().max(MAX_STRING_LENGTH_LONG, "Internal notes too long").nullable().optional(),
620
- patientNotes: import_zod2.z.any().optional().nullable(),
659
+ confirmationTime: import_zod3.z.any().optional().nullable(),
660
+ cancellationTime: import_zod3.z.any().optional().nullable(),
661
+ rescheduleTime: import_zod3.z.any().optional().nullable(),
662
+ procedureActualStartTime: import_zod3.z.any().optional().nullable(),
663
+ actualDurationMinutes: import_zod3.z.number().int().positive("Duration must be a positive integer").optional(),
664
+ cancellationReason: import_zod3.z.string().max(MAX_STRING_LENGTH, "Cancellation reason too long").nullable().optional(),
665
+ canceledBy: import_zod3.z.enum(["patient", "clinic", "practitioner", "system"]).optional(),
666
+ internalNotes: import_zod3.z.string().max(MAX_STRING_LENGTH_LONG, "Internal notes too long").nullable().optional(),
667
+ patientNotes: import_zod3.z.any().optional().nullable(),
621
668
  paymentStatus: paymentStatusSchema.optional(),
622
- paymentTransactionId: import_zod2.z.any().optional().nullable(),
623
- completedPreRequirements: import_zod2.z.union([import_zod2.z.array(import_zod2.z.string()), import_zod2.z.any()]).optional(),
624
- completedPostRequirements: import_zod2.z.union([import_zod2.z.array(import_zod2.z.string()), import_zod2.z.any()]).optional(),
625
- linkedFormIds: import_zod2.z.union([import_zod2.z.array(import_zod2.z.string()), import_zod2.z.any()]).optional(),
626
- pendingUserFormsIds: import_zod2.z.union([import_zod2.z.array(import_zod2.z.string()), import_zod2.z.any()]).optional(),
627
- appointmentStartTime: import_zod2.z.any().refine(
669
+ paymentTransactionId: import_zod3.z.any().optional().nullable(),
670
+ completedPreRequirements: import_zod3.z.union([import_zod3.z.array(import_zod3.z.string()), import_zod3.z.any()]).optional(),
671
+ completedPostRequirements: import_zod3.z.union([import_zod3.z.array(import_zod3.z.string()), import_zod3.z.any()]).optional(),
672
+ linkedFormIds: import_zod3.z.union([import_zod3.z.array(import_zod3.z.string()), import_zod3.z.any()]).optional(),
673
+ pendingUserFormsIds: import_zod3.z.union([import_zod3.z.array(import_zod3.z.string()), import_zod3.z.any()]).optional(),
674
+ appointmentStartTime: import_zod3.z.any().refine(
628
675
  (val) => val === void 0 || val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
629
676
  "Appointment start time must be a valid timestamp or Date object"
630
677
  ).optional(),
631
- appointmentEndTime: import_zod2.z.any().refine(
678
+ appointmentEndTime: import_zod3.z.any().refine(
632
679
  (val) => val === void 0 || val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
633
680
  "Appointment end time must be a valid timestamp or Date object"
634
681
  ).optional(),
635
- calendarEventId: import_zod2.z.string().min(MIN_STRING_LENGTH).optional(),
636
- cost: import_zod2.z.number().min(0).optional(),
637
- clinicBranchId: import_zod2.z.string().min(MIN_STRING_LENGTH).optional(),
638
- practitionerId: import_zod2.z.string().min(MIN_STRING_LENGTH).optional(),
639
- linkedForms: import_zod2.z.union([import_zod2.z.array(linkedFormInfoSchema).max(MAX_ARRAY_LENGTH), import_zod2.z.any()]).optional(),
640
- media: import_zod2.z.union([
641
- import_zod2.z.array(appointmentMediaItemSchema).max(MAX_ARRAY_LENGTH),
642
- import_zod2.z.any()
682
+ calendarEventId: import_zod3.z.string().min(MIN_STRING_LENGTH).optional(),
683
+ cost: import_zod3.z.number().min(0).optional(),
684
+ clinicBranchId: import_zod3.z.string().min(MIN_STRING_LENGTH).optional(),
685
+ practitionerId: import_zod3.z.string().min(MIN_STRING_LENGTH).optional(),
686
+ linkedForms: import_zod3.z.union([import_zod3.z.array(linkedFormInfoSchema).max(MAX_ARRAY_LENGTH), import_zod3.z.any()]).optional(),
687
+ media: import_zod3.z.union([
688
+ import_zod3.z.array(appointmentMediaItemSchema).max(MAX_ARRAY_LENGTH),
689
+ import_zod3.z.any()
643
690
  ]).optional(),
644
- reviewInfo: import_zod2.z.union([patientReviewInfoSchema.nullable(), import_zod2.z.any()]).optional(),
645
- finalizedDetails: import_zod2.z.union([finalizedDetailsSchema.nullable(), import_zod2.z.any()]).optional(),
646
- isArchived: import_zod2.z.boolean().optional(),
647
- updatedAt: import_zod2.z.any().optional(),
648
- metadata: import_zod2.z.any().optional()
691
+ reviewInfo: import_zod3.z.union([patientReviewInfoSchema.nullable(), import_zod3.z.any()]).optional(),
692
+ finalizedDetails: import_zod3.z.union([finalizedDetailsSchema.nullable(), import_zod3.z.any()]).optional(),
693
+ isArchived: import_zod3.z.boolean().optional(),
694
+ updatedAt: import_zod3.z.any().optional(),
695
+ metadata: appointmentMetadataSchema.optional()
649
696
  }).refine(
650
697
  (data) => {
651
698
  if (data.status === "canceled_clinic" /* CANCELED_CLINIC */ || data.status === "canceled_patient" /* CANCELED_PATIENT */ || data.status === "canceled_patient_rescheduled" /* CANCELED_PATIENT_RESCHEDULED */) {
@@ -669,24 +716,24 @@ var updateAppointmentSchema = import_zod2.z.object({
669
716
  path: ["appointmentEndTime"]
670
717
  }
671
718
  );
672
- var searchAppointmentsSchema = import_zod2.z.object({
673
- patientId: import_zod2.z.string().optional(),
674
- practitionerId: import_zod2.z.string().optional(),
675
- clinicBranchId: import_zod2.z.string().optional(),
676
- startDate: import_zod2.z.any().refine(
719
+ var searchAppointmentsSchema = import_zod3.z.object({
720
+ patientId: import_zod3.z.string().optional(),
721
+ practitionerId: import_zod3.z.string().optional(),
722
+ clinicBranchId: import_zod3.z.string().optional(),
723
+ startDate: import_zod3.z.any().refine(
677
724
  (val) => val === void 0 || val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
678
725
  "Start date must be a valid timestamp or Date object"
679
726
  ).optional(),
680
- endDate: import_zod2.z.any().refine(
727
+ endDate: import_zod3.z.any().refine(
681
728
  (val) => val === void 0 || val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
682
729
  "End date must be a valid timestamp or Date object"
683
730
  ).optional(),
684
- status: import_zod2.z.union([
731
+ status: import_zod3.z.union([
685
732
  appointmentStatusSchema,
686
- import_zod2.z.array(appointmentStatusSchema).nonempty()
733
+ import_zod3.z.array(appointmentStatusSchema).nonempty()
687
734
  ]).optional(),
688
- limit: import_zod2.z.number().positive().int().optional().default(20),
689
- startAfter: import_zod2.z.any().optional()
735
+ limit: import_zod3.z.number().positive().int().optional().default(20),
736
+ startAfter: import_zod3.z.any().optional()
690
737
  }).refine(
691
738
  (data) => {
692
739
  if (!data.startDate && !data.endDate && !data.status) {
@@ -710,13 +757,13 @@ var searchAppointmentsSchema = import_zod2.z.object({
710
757
  path: ["endDate"]
711
758
  }
712
759
  );
713
- var rescheduleAppointmentSchema = import_zod2.z.object({
714
- appointmentId: import_zod2.z.string().min(MIN_STRING_LENGTH, "Appointment ID is required"),
715
- newStartTime: import_zod2.z.any().refine(
760
+ var rescheduleAppointmentSchema = import_zod3.z.object({
761
+ appointmentId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Appointment ID is required"),
762
+ newStartTime: import_zod3.z.any().refine(
716
763
  (val) => val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
717
764
  "New start time must be a valid timestamp, Date object, number, or string"
718
765
  ),
719
- newEndTime: import_zod2.z.any().refine(
766
+ newEndTime: import_zod3.z.any().refine(
720
767
  (val) => val instanceof Date || (val == null ? void 0 : val._seconds) !== void 0 || (val == null ? void 0 : val.seconds) !== void 0 || typeof val === "number" || typeof val === "string" || val && typeof val.toMillis === "function",
721
768
  "New end time must be a valid timestamp, Date object, number, or string"
722
769
  )
@@ -817,24 +864,24 @@ var USERS_COLLECTION = "users";
817
864
  var import_zod20 = require("zod");
818
865
 
819
866
  // src/validations/schemas.ts
820
- var import_zod3 = require("zod");
821
- var emailSchema = import_zod3.z.string().email("Invalid email format").min(5, "Email must be at least 5 characters").max(255, "Email must be less than 255 characters");
822
- var passwordSchema = import_zod3.z.string().min(8, "Password must be at least 8 characters").max(100, "Password must be less than 100 characters").regex(
867
+ var import_zod4 = require("zod");
868
+ var emailSchema = import_zod4.z.string().email("Invalid email format").min(5, "Email must be at least 5 characters").max(255, "Email must be less than 255 characters");
869
+ var passwordSchema = import_zod4.z.string().min(8, "Password must be at least 8 characters").max(100, "Password must be less than 100 characters").regex(
823
870
  /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d\w\W]{8,}$/,
824
871
  "Password must contain at least one uppercase letter, one lowercase letter, and one number"
825
872
  );
826
- var userRoleSchema = import_zod3.z.nativeEnum(UserRole);
827
- var userRolesSchema = import_zod3.z.array(userRoleSchema).min(1, "User must have at least one role").max(3, "User cannot have more than 3 roles");
828
- var timestampSchema = import_zod3.z.custom((data) => {
873
+ var userRoleSchema = import_zod4.z.nativeEnum(UserRole);
874
+ var userRolesSchema = import_zod4.z.array(userRoleSchema).min(1, "User must have at least one role").max(3, "User cannot have more than 3 roles");
875
+ var timestampSchema = import_zod4.z.custom((data) => {
829
876
  if (data && typeof data === "object" && "isEqual" in data) {
830
877
  return true;
831
878
  }
832
879
  return data && typeof data === "object" && "toDate" in data && "seconds" in data && "nanoseconds" in data;
833
880
  }, "Must be a Timestamp object or serverTimestamp");
834
- var clinicAdminOptionsSchema = import_zod3.z.object({
835
- isGroupOwner: import_zod3.z.boolean(),
836
- groupToken: import_zod3.z.string().optional(),
837
- groupId: import_zod3.z.string().optional()
881
+ var clinicAdminOptionsSchema = import_zod4.z.object({
882
+ isGroupOwner: import_zod4.z.boolean(),
883
+ groupToken: import_zod4.z.string().optional(),
884
+ groupId: import_zod4.z.string().optional()
838
885
  }).refine(
839
886
  (data) => {
840
887
  if (!data.isGroupOwner && (!data.groupToken || !data.groupId)) {
@@ -849,20 +896,20 @@ var clinicAdminOptionsSchema = import_zod3.z.object({
849
896
  message: "Invalid clinic admin options configuration"
850
897
  }
851
898
  );
852
- var createUserOptionsSchema = import_zod3.z.object({
899
+ var createUserOptionsSchema = import_zod4.z.object({
853
900
  clinicAdminData: clinicAdminOptionsSchema.optional()
854
901
  });
855
- var userSchema = import_zod3.z.object({
856
- uid: import_zod3.z.string(),
857
- email: import_zod3.z.string().email().nullable(),
858
- roles: import_zod3.z.array(userRoleSchema),
859
- isAnonymous: import_zod3.z.boolean(),
902
+ var userSchema = import_zod4.z.object({
903
+ uid: import_zod4.z.string(),
904
+ email: import_zod4.z.string().email().nullable(),
905
+ roles: import_zod4.z.array(userRoleSchema),
906
+ isAnonymous: import_zod4.z.boolean(),
860
907
  createdAt: timestampSchema,
861
908
  updatedAt: timestampSchema,
862
909
  lastLoginAt: timestampSchema,
863
- patientProfile: import_zod3.z.string().optional(),
864
- practitionerProfile: import_zod3.z.string().optional(),
865
- adminProfile: import_zod3.z.string().optional()
910
+ patientProfile: import_zod4.z.string().optional(),
911
+ practitionerProfile: import_zod4.z.string().optional(),
912
+ adminProfile: import_zod4.z.string().optional()
866
913
  });
867
914
 
868
915
  // src/errors/auth.errors.ts
@@ -1546,14 +1593,6 @@ var Gender = /* @__PURE__ */ ((Gender2) => {
1546
1593
  var import_zod7 = require("zod");
1547
1594
  var import_firestore5 = require("firebase/firestore");
1548
1595
 
1549
- // src/validations/media.schema.ts
1550
- var import_zod4 = require("zod");
1551
- var mediaResourceSchema = import_zod4.z.union([
1552
- import_zod4.z.string().url(),
1553
- import_zod4.z.instanceof(File),
1554
- import_zod4.z.instanceof(Blob)
1555
- ]);
1556
-
1557
1596
  // src/validations/patient/medical-info.schema.ts
1558
1597
  var import_zod6 = require("zod");
1559
1598
 
@@ -3747,25 +3786,6 @@ var ProcedureFamily = /* @__PURE__ */ ((ProcedureFamily2) => {
3747
3786
  return ProcedureFamily2;
3748
3787
  })(ProcedureFamily || {});
3749
3788
 
3750
- // src/backoffice/types/static/pricing.types.ts
3751
- var PricingMeasure = /* @__PURE__ */ ((PricingMeasure3) => {
3752
- PricingMeasure3["PER_ML"] = "per_ml";
3753
- PricingMeasure3["PER_ZONE"] = "per_zone";
3754
- PricingMeasure3["PER_AREA"] = "per_area";
3755
- PricingMeasure3["PER_SESSION"] = "per_session";
3756
- PricingMeasure3["PER_TREATMENT"] = "per_treatment";
3757
- PricingMeasure3["PER_PACKAGE"] = "per_package";
3758
- return PricingMeasure3;
3759
- })(PricingMeasure || {});
3760
- var Currency = /* @__PURE__ */ ((Currency2) => {
3761
- Currency2["EUR"] = "EUR";
3762
- Currency2["USD"] = "USD";
3763
- Currency2["GBP"] = "GBP";
3764
- Currency2["CHF"] = "CHF";
3765
- Currency2["AUD"] = "AUD";
3766
- return Currency2;
3767
- })(Currency || {});
3768
-
3769
3789
  // src/validations/shared.schema.ts
3770
3790
  var sharedClinicContactInfoSchema = import_zod12.z.object({
3771
3791
  email: import_zod12.z.string().email(),