@blackcode_sa/metaestetics-api 1.7.39 → 1.7.40

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.
@@ -1645,6 +1645,25 @@ interface BillingPerZone {
1645
1645
  /** Optional billing note */
1646
1646
  Note: string | null;
1647
1647
  }
1648
+ /**
1649
+ * Interface for final billing calculations of the appointment
1650
+ */
1651
+ interface FinalBilling {
1652
+ /** Total of all subtotals from all zones */
1653
+ subtotalAll: number;
1654
+ /** Tax rate as percentage (e.g., 0.20 for 20%) */
1655
+ taxRate: number;
1656
+ /** Calculated tax amount */
1657
+ taxPrice: number;
1658
+ /** Final price including tax */
1659
+ finalPrice: number;
1660
+ /** Total final quantity across all zones */
1661
+ finalQuantity: number;
1662
+ /** Currency for the final billing */
1663
+ currency: Currency;
1664
+ /** Unit of measurement for the final billing */
1665
+ unitOfMeasurement: PricingMeasure;
1666
+ }
1648
1667
  /**
1649
1668
  * Interface for appointment metadata containing zone-specific information
1650
1669
  */
@@ -1655,6 +1674,8 @@ interface AppointmentMetadata {
1655
1674
  zonePhotos: Record<string, BeforeAfterPerZone> | null;
1656
1675
  /** Map of billing information per zone */
1657
1676
  zoneBilling: Record<string, BillingPerZone> | null;
1677
+ /** Final billing calculations for the appointment */
1678
+ finalbilling: FinalBilling | null;
1658
1679
  }
1659
1680
  /**
1660
1681
  * Represents a booked appointment, aggregating key information and relevant procedure rules.
@@ -3298,4 +3319,4 @@ declare class AppointmentMailingService extends BaseMailingService {
3298
3319
  */
3299
3320
  declare function freeConsultationInfrastructure(db?: admin.firestore.Firestore): Promise<boolean>;
3300
3321
 
3301
- export { APPOINTMENTS_COLLECTION, type Appointment, AppointmentAggregationService, type AppointmentCancellationEmailData, type AppointmentConfirmationEmailData, type AppointmentEmailDataBase, AppointmentMailingService, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentReminderNotification, type AppointmentRequestedEmailData, type AppointmentRescheduledProposalEmailData, AppointmentStatus, type AvailableSlot, BaseMailingService, type BaseNotification, type BeforeAfterPerZone, type BillingPerZone, BookingAdmin, BookingAvailabilityCalculator, type BookingAvailabilityRequest, type BookingAvailabilityResponse, CalendarAdminService, type Clinic, type ClinicAdminNotificationData, ClinicAggregationService, type ClinicInfo, type ClinicLocation, type CreateAppointmentData, type CreateAppointmentHttpData, type DoctorInfo, DocumentManagerAdminService, type ExistingPractitionerInviteEmailData, ExistingPractitionerInviteMailingService, type FilledDocument, FilledFormsAggregationService, type InitializeAppointmentFormsResult, type LinkedFormInfo, Logger, MediaType, NOTIFICATIONS_COLLECTION, type Notification, NotificationStatus, NotificationType, NotificationsAdmin, type OrchestrateAppointmentCreationData, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, type PatientProfile as Patient, PatientAggregationService, PatientInstructionStatus, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, PatientRequirementsAdminService, type PatientReviewInfo, PaymentStatus, type PostRequirementNotification, type Practitioner, PractitionerAggregationService, type PractitionerInvite, PractitionerInviteAggregationService, PractitionerInviteMailingService, PractitionerInviteStatus, type PractitionerToken, PractitionerTokenStatus, type PreRequirementNotification, type Procedure, ProcedureAggregationService, type ProcedureExtendedInfo, type ProcedureSummaryInfo, type Review, type ReviewAddedEmailData, type ReviewRequestEmailData, ReviewsAggregationService, type SearchAppointmentsParams, type TimeInterval, type UpdateAppointmentData, UserRole, freeConsultationInfrastructure };
3322
+ export { APPOINTMENTS_COLLECTION, type Appointment, AppointmentAggregationService, type AppointmentCancellationEmailData, type AppointmentConfirmationEmailData, type AppointmentEmailDataBase, AppointmentMailingService, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentReminderNotification, type AppointmentRequestedEmailData, type AppointmentRescheduledProposalEmailData, AppointmentStatus, type AvailableSlot, BaseMailingService, type BaseNotification, type BeforeAfterPerZone, type BillingPerZone, BookingAdmin, BookingAvailabilityCalculator, type BookingAvailabilityRequest, type BookingAvailabilityResponse, CalendarAdminService, type Clinic, type ClinicAdminNotificationData, ClinicAggregationService, type ClinicInfo, type ClinicLocation, type CreateAppointmentData, type CreateAppointmentHttpData, type DoctorInfo, DocumentManagerAdminService, type ExistingPractitionerInviteEmailData, ExistingPractitionerInviteMailingService, type FilledDocument, FilledFormsAggregationService, type FinalBilling, type InitializeAppointmentFormsResult, type LinkedFormInfo, Logger, MediaType, NOTIFICATIONS_COLLECTION, type Notification, NotificationStatus, NotificationType, NotificationsAdmin, type OrchestrateAppointmentCreationData, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, type PatientProfile as Patient, PatientAggregationService, PatientInstructionStatus, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, PatientRequirementsAdminService, type PatientReviewInfo, PaymentStatus, type PostRequirementNotification, type Practitioner, PractitionerAggregationService, type PractitionerInvite, PractitionerInviteAggregationService, PractitionerInviteMailingService, PractitionerInviteStatus, type PractitionerToken, PractitionerTokenStatus, type PreRequirementNotification, type Procedure, ProcedureAggregationService, type ProcedureExtendedInfo, type ProcedureSummaryInfo, type Review, type ReviewAddedEmailData, type ReviewRequestEmailData, ReviewsAggregationService, type SearchAppointmentsParams, type TimeInterval, type UpdateAppointmentData, UserRole, freeConsultationInfrastructure };
@@ -1645,6 +1645,25 @@ interface BillingPerZone {
1645
1645
  /** Optional billing note */
1646
1646
  Note: string | null;
1647
1647
  }
1648
+ /**
1649
+ * Interface for final billing calculations of the appointment
1650
+ */
1651
+ interface FinalBilling {
1652
+ /** Total of all subtotals from all zones */
1653
+ subtotalAll: number;
1654
+ /** Tax rate as percentage (e.g., 0.20 for 20%) */
1655
+ taxRate: number;
1656
+ /** Calculated tax amount */
1657
+ taxPrice: number;
1658
+ /** Final price including tax */
1659
+ finalPrice: number;
1660
+ /** Total final quantity across all zones */
1661
+ finalQuantity: number;
1662
+ /** Currency for the final billing */
1663
+ currency: Currency;
1664
+ /** Unit of measurement for the final billing */
1665
+ unitOfMeasurement: PricingMeasure;
1666
+ }
1648
1667
  /**
1649
1668
  * Interface for appointment metadata containing zone-specific information
1650
1669
  */
@@ -1655,6 +1674,8 @@ interface AppointmentMetadata {
1655
1674
  zonePhotos: Record<string, BeforeAfterPerZone> | null;
1656
1675
  /** Map of billing information per zone */
1657
1676
  zoneBilling: Record<string, BillingPerZone> | null;
1677
+ /** Final billing calculations for the appointment */
1678
+ finalbilling: FinalBilling | null;
1658
1679
  }
1659
1680
  /**
1660
1681
  * Represents a booked appointment, aggregating key information and relevant procedure rules.
@@ -3298,4 +3319,4 @@ declare class AppointmentMailingService extends BaseMailingService {
3298
3319
  */
3299
3320
  declare function freeConsultationInfrastructure(db?: admin.firestore.Firestore): Promise<boolean>;
3300
3321
 
3301
- export { APPOINTMENTS_COLLECTION, type Appointment, AppointmentAggregationService, type AppointmentCancellationEmailData, type AppointmentConfirmationEmailData, type AppointmentEmailDataBase, AppointmentMailingService, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentReminderNotification, type AppointmentRequestedEmailData, type AppointmentRescheduledProposalEmailData, AppointmentStatus, type AvailableSlot, BaseMailingService, type BaseNotification, type BeforeAfterPerZone, type BillingPerZone, BookingAdmin, BookingAvailabilityCalculator, type BookingAvailabilityRequest, type BookingAvailabilityResponse, CalendarAdminService, type Clinic, type ClinicAdminNotificationData, ClinicAggregationService, type ClinicInfo, type ClinicLocation, type CreateAppointmentData, type CreateAppointmentHttpData, type DoctorInfo, DocumentManagerAdminService, type ExistingPractitionerInviteEmailData, ExistingPractitionerInviteMailingService, type FilledDocument, FilledFormsAggregationService, type InitializeAppointmentFormsResult, type LinkedFormInfo, Logger, MediaType, NOTIFICATIONS_COLLECTION, type Notification, NotificationStatus, NotificationType, NotificationsAdmin, type OrchestrateAppointmentCreationData, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, type PatientProfile as Patient, PatientAggregationService, PatientInstructionStatus, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, PatientRequirementsAdminService, type PatientReviewInfo, PaymentStatus, type PostRequirementNotification, type Practitioner, PractitionerAggregationService, type PractitionerInvite, PractitionerInviteAggregationService, PractitionerInviteMailingService, PractitionerInviteStatus, type PractitionerToken, PractitionerTokenStatus, type PreRequirementNotification, type Procedure, ProcedureAggregationService, type ProcedureExtendedInfo, type ProcedureSummaryInfo, type Review, type ReviewAddedEmailData, type ReviewRequestEmailData, ReviewsAggregationService, type SearchAppointmentsParams, type TimeInterval, type UpdateAppointmentData, UserRole, freeConsultationInfrastructure };
3322
+ export { APPOINTMENTS_COLLECTION, type Appointment, AppointmentAggregationService, type AppointmentCancellationEmailData, type AppointmentConfirmationEmailData, type AppointmentEmailDataBase, AppointmentMailingService, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentReminderNotification, type AppointmentRequestedEmailData, type AppointmentRescheduledProposalEmailData, AppointmentStatus, type AvailableSlot, BaseMailingService, type BaseNotification, type BeforeAfterPerZone, type BillingPerZone, BookingAdmin, BookingAvailabilityCalculator, type BookingAvailabilityRequest, type BookingAvailabilityResponse, CalendarAdminService, type Clinic, type ClinicAdminNotificationData, ClinicAggregationService, type ClinicInfo, type ClinicLocation, type CreateAppointmentData, type CreateAppointmentHttpData, type DoctorInfo, DocumentManagerAdminService, type ExistingPractitionerInviteEmailData, ExistingPractitionerInviteMailingService, type FilledDocument, FilledFormsAggregationService, type FinalBilling, type InitializeAppointmentFormsResult, type LinkedFormInfo, Logger, MediaType, NOTIFICATIONS_COLLECTION, type Notification, NotificationStatus, NotificationType, NotificationsAdmin, type OrchestrateAppointmentCreationData, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, type PatientProfile as Patient, PatientAggregationService, PatientInstructionStatus, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, PatientRequirementsAdminService, type PatientReviewInfo, PaymentStatus, type PostRequirementNotification, type Practitioner, PractitionerAggregationService, type PractitionerInvite, PractitionerInviteAggregationService, PractitionerInviteMailingService, PractitionerInviteStatus, type PractitionerToken, PractitionerTokenStatus, type PreRequirementNotification, type Procedure, ProcedureAggregationService, type ProcedureExtendedInfo, type ProcedureSummaryInfo, type Review, type ReviewAddedEmailData, type ReviewRequestEmailData, ReviewsAggregationService, type SearchAppointmentsParams, type TimeInterval, type UpdateAppointmentData, UserRole, freeConsultationInfrastructure };
package/dist/index.d.mts CHANGED
@@ -4721,6 +4721,25 @@ interface BillingPerZone {
4721
4721
  /** Optional billing note */
4722
4722
  Note: string | null;
4723
4723
  }
4724
+ /**
4725
+ * Interface for final billing calculations of the appointment
4726
+ */
4727
+ interface FinalBilling {
4728
+ /** Total of all subtotals from all zones */
4729
+ subtotalAll: number;
4730
+ /** Tax rate as percentage (e.g., 0.20 for 20%) */
4731
+ taxRate: number;
4732
+ /** Calculated tax amount */
4733
+ taxPrice: number;
4734
+ /** Final price including tax */
4735
+ finalPrice: number;
4736
+ /** Total final quantity across all zones */
4737
+ finalQuantity: number;
4738
+ /** Currency for the final billing */
4739
+ currency: Currency;
4740
+ /** Unit of measurement for the final billing */
4741
+ unitOfMeasurement: PricingMeasure;
4742
+ }
4724
4743
  /**
4725
4744
  * Interface for appointment metadata containing zone-specific information
4726
4745
  */
@@ -4731,6 +4750,8 @@ interface AppointmentMetadata {
4731
4750
  zonePhotos: Record<string, BeforeAfterPerZone> | null;
4732
4751
  /** Map of billing information per zone */
4733
4752
  zoneBilling: Record<string, BillingPerZone> | null;
4753
+ /** Final billing calculations for the appointment */
4754
+ finalbilling: FinalBilling | null;
4734
4755
  }
4735
4756
  /**
4736
4757
  * Represents a booked appointment, aggregating key information and relevant procedure rules.
@@ -4918,8 +4939,8 @@ declare const createAppointmentSchema: z.ZodEffects<z.ZodObject<{
4918
4939
  procedureId: string;
4919
4940
  practitionerId: string;
4920
4941
  cost: number;
4921
- clinicBranchId: string;
4922
4942
  currency: string;
4943
+ clinicBranchId: string;
4923
4944
  initialStatus: AppointmentStatus;
4924
4945
  initialPaymentStatus: PaymentStatus;
4925
4946
  appointmentStartTime?: any;
@@ -4930,8 +4951,8 @@ declare const createAppointmentSchema: z.ZodEffects<z.ZodObject<{
4930
4951
  procedureId: string;
4931
4952
  practitionerId: string;
4932
4953
  cost: number;
4933
- clinicBranchId: string;
4934
4954
  currency: string;
4955
+ clinicBranchId: string;
4935
4956
  initialStatus: AppointmentStatus;
4936
4957
  appointmentStartTime?: any;
4937
4958
  appointmentEndTime?: any;
@@ -4942,8 +4963,8 @@ declare const createAppointmentSchema: z.ZodEffects<z.ZodObject<{
4942
4963
  procedureId: string;
4943
4964
  practitionerId: string;
4944
4965
  cost: number;
4945
- clinicBranchId: string;
4946
4966
  currency: string;
4967
+ clinicBranchId: string;
4947
4968
  initialStatus: AppointmentStatus;
4948
4969
  initialPaymentStatus: PaymentStatus;
4949
4970
  appointmentStartTime?: any;
@@ -4954,8 +4975,8 @@ declare const createAppointmentSchema: z.ZodEffects<z.ZodObject<{
4954
4975
  procedureId: string;
4955
4976
  practitionerId: string;
4956
4977
  cost: number;
4957
- clinicBranchId: string;
4958
4978
  currency: string;
4979
+ clinicBranchId: string;
4959
4980
  initialStatus: AppointmentStatus;
4960
4981
  appointmentStartTime?: any;
4961
4982
  appointmentEndTime?: any;
@@ -5121,6 +5142,31 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5121
5142
  Subtotal: number;
5122
5143
  Note: string | null;
5123
5144
  }>>>;
5145
+ finalbilling: z.ZodNullable<z.ZodObject<{
5146
+ subtotalAll: z.ZodNumber;
5147
+ taxRate: z.ZodNumber;
5148
+ taxPrice: z.ZodNumber;
5149
+ finalPrice: z.ZodNumber;
5150
+ finalQuantity: z.ZodNumber;
5151
+ currency: z.ZodNativeEnum<typeof Currency>;
5152
+ unitOfMeasurement: z.ZodNativeEnum<typeof PricingMeasure>;
5153
+ }, "strip", z.ZodTypeAny, {
5154
+ subtotalAll: number;
5155
+ taxRate: number;
5156
+ taxPrice: number;
5157
+ finalPrice: number;
5158
+ finalQuantity: number;
5159
+ currency: Currency;
5160
+ unitOfMeasurement: PricingMeasure;
5161
+ }, {
5162
+ subtotalAll: number;
5163
+ taxRate: number;
5164
+ taxPrice: number;
5165
+ finalPrice: number;
5166
+ finalQuantity: number;
5167
+ currency: Currency;
5168
+ unitOfMeasurement: PricingMeasure;
5169
+ }>>;
5124
5170
  }, "strip", z.ZodTypeAny, {
5125
5171
  selectedZones: string[] | null;
5126
5172
  zonePhotos: Record<string, {
@@ -5138,6 +5184,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5138
5184
  Subtotal: number;
5139
5185
  Note: string | null;
5140
5186
  }> | null;
5187
+ finalbilling: {
5188
+ subtotalAll: number;
5189
+ taxRate: number;
5190
+ taxPrice: number;
5191
+ finalPrice: number;
5192
+ finalQuantity: number;
5193
+ currency: Currency;
5194
+ unitOfMeasurement: PricingMeasure;
5195
+ } | null;
5141
5196
  }, {
5142
5197
  selectedZones: string[] | null;
5143
5198
  zonePhotos: Record<string, {
@@ -5155,6 +5210,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5155
5210
  Subtotal: number;
5156
5211
  Note: string | null;
5157
5212
  }> | null;
5213
+ finalbilling: {
5214
+ subtotalAll: number;
5215
+ taxRate: number;
5216
+ taxPrice: number;
5217
+ finalPrice: number;
5218
+ finalQuantity: number;
5219
+ currency: Currency;
5220
+ unitOfMeasurement: PricingMeasure;
5221
+ } | null;
5158
5222
  }>>;
5159
5223
  }, "strip", z.ZodTypeAny, {
5160
5224
  updatedAt?: any;
@@ -5202,6 +5266,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5202
5266
  Subtotal: number;
5203
5267
  Note: string | null;
5204
5268
  }> | null;
5269
+ finalbilling: {
5270
+ subtotalAll: number;
5271
+ taxRate: number;
5272
+ taxPrice: number;
5273
+ finalPrice: number;
5274
+ finalQuantity: number;
5275
+ currency: Currency;
5276
+ unitOfMeasurement: PricingMeasure;
5277
+ } | null;
5205
5278
  } | undefined;
5206
5279
  }, {
5207
5280
  updatedAt?: any;
@@ -5249,6 +5322,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5249
5322
  Subtotal: number;
5250
5323
  Note: string | null;
5251
5324
  }> | null;
5325
+ finalbilling: {
5326
+ subtotalAll: number;
5327
+ taxRate: number;
5328
+ taxPrice: number;
5329
+ finalPrice: number;
5330
+ finalQuantity: number;
5331
+ currency: Currency;
5332
+ unitOfMeasurement: PricingMeasure;
5333
+ } | null;
5252
5334
  } | undefined;
5253
5335
  }>, {
5254
5336
  updatedAt?: any;
@@ -5296,6 +5378,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5296
5378
  Subtotal: number;
5297
5379
  Note: string | null;
5298
5380
  }> | null;
5381
+ finalbilling: {
5382
+ subtotalAll: number;
5383
+ taxRate: number;
5384
+ taxPrice: number;
5385
+ finalPrice: number;
5386
+ finalQuantity: number;
5387
+ currency: Currency;
5388
+ unitOfMeasurement: PricingMeasure;
5389
+ } | null;
5299
5390
  } | undefined;
5300
5391
  }, {
5301
5392
  updatedAt?: any;
@@ -5343,6 +5434,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5343
5434
  Subtotal: number;
5344
5435
  Note: string | null;
5345
5436
  }> | null;
5437
+ finalbilling: {
5438
+ subtotalAll: number;
5439
+ taxRate: number;
5440
+ taxPrice: number;
5441
+ finalPrice: number;
5442
+ finalQuantity: number;
5443
+ currency: Currency;
5444
+ unitOfMeasurement: PricingMeasure;
5445
+ } | null;
5346
5446
  } | undefined;
5347
5447
  }>, {
5348
5448
  updatedAt?: any;
@@ -5390,6 +5490,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5390
5490
  Subtotal: number;
5391
5491
  Note: string | null;
5392
5492
  }> | null;
5493
+ finalbilling: {
5494
+ subtotalAll: number;
5495
+ taxRate: number;
5496
+ taxPrice: number;
5497
+ finalPrice: number;
5498
+ finalQuantity: number;
5499
+ currency: Currency;
5500
+ unitOfMeasurement: PricingMeasure;
5501
+ } | null;
5393
5502
  } | undefined;
5394
5503
  }, {
5395
5504
  updatedAt?: any;
@@ -5437,6 +5546,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5437
5546
  Subtotal: number;
5438
5547
  Note: string | null;
5439
5548
  }> | null;
5549
+ finalbilling: {
5550
+ subtotalAll: number;
5551
+ taxRate: number;
5552
+ taxPrice: number;
5553
+ finalPrice: number;
5554
+ finalQuantity: number;
5555
+ currency: Currency;
5556
+ unitOfMeasurement: PricingMeasure;
5557
+ } | null;
5440
5558
  } | undefined;
5441
5559
  }>;
5442
5560
  /**
@@ -20283,4 +20401,4 @@ declare const createReviewSchema: z.ZodEffects<z.ZodObject<{
20283
20401
  } | undefined;
20284
20402
  }>;
20285
20403
 
20286
- export { APPOINTMENTS_COLLECTION, AUTH_ERRORS, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentMetadata, type AppointmentReminderNotification, AppointmentService, AppointmentStatus, AuthError, AuthService, type BaseDocumentElement, type BaseNotification, type BeforeAfterPerZone, type BillingPerZone, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, type HeadingElement, HeadingLevel, Language, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MedicationAllergySubtype, type MultipleChoiceElement, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, PatientRequirementsService, type PatientSensitiveInfo, PatientService, PaymentStatus, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RequesterInfo, type Requirement, RequirementType, type Review, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type Subcategory, SubcategoryService, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeSlot, TimeUnit, TreatmentBenefit, USER_ERRORS, USER_FORMS_SUBCOLLECTION, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, baseNotificationSchema, blockingConditionSchema, calendarEventSchema, calendarEventTimeSchema, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicLocationSchema, clinicReviewInfoSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createBlockingEventSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicReviewSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createFilledDocumentDataSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerReviewSchema, createPractitionerSchema, createPractitionerTokenSchema, createProcedureReviewSchema, createReviewSchema, createUserOptionsSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, filledDocumentSchema, filledDocumentStatusSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerSignupSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, procedureReviewInfoSchema, procedureReviewSchema, requesterInfoSchema, requirementInstructionDueNotificationSchema, reviewSchema, searchAppointmentsSchema, searchPatientsSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateBlockingEventSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateFilledDocumentDataSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
20404
+ export { APPOINTMENTS_COLLECTION, AUTH_ERRORS, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentMetadata, type AppointmentReminderNotification, AppointmentService, AppointmentStatus, AuthError, AuthService, type BaseDocumentElement, type BaseNotification, type BeforeAfterPerZone, type BillingPerZone, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, type HeadingElement, HeadingLevel, Language, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MedicationAllergySubtype, type MultipleChoiceElement, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, PatientRequirementsService, type PatientSensitiveInfo, PatientService, PaymentStatus, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RequesterInfo, type Requirement, RequirementType, type Review, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type Subcategory, SubcategoryService, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeSlot, TimeUnit, TreatmentBenefit, USER_ERRORS, USER_FORMS_SUBCOLLECTION, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, baseNotificationSchema, blockingConditionSchema, calendarEventSchema, calendarEventTimeSchema, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicLocationSchema, clinicReviewInfoSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createBlockingEventSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicReviewSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createFilledDocumentDataSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerReviewSchema, createPractitionerSchema, createPractitionerTokenSchema, createProcedureReviewSchema, createReviewSchema, createUserOptionsSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, filledDocumentSchema, filledDocumentStatusSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerSignupSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, procedureReviewInfoSchema, procedureReviewSchema, requesterInfoSchema, requirementInstructionDueNotificationSchema, reviewSchema, searchAppointmentsSchema, searchPatientsSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateBlockingEventSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateFilledDocumentDataSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
package/dist/index.d.ts CHANGED
@@ -4721,6 +4721,25 @@ interface BillingPerZone {
4721
4721
  /** Optional billing note */
4722
4722
  Note: string | null;
4723
4723
  }
4724
+ /**
4725
+ * Interface for final billing calculations of the appointment
4726
+ */
4727
+ interface FinalBilling {
4728
+ /** Total of all subtotals from all zones */
4729
+ subtotalAll: number;
4730
+ /** Tax rate as percentage (e.g., 0.20 for 20%) */
4731
+ taxRate: number;
4732
+ /** Calculated tax amount */
4733
+ taxPrice: number;
4734
+ /** Final price including tax */
4735
+ finalPrice: number;
4736
+ /** Total final quantity across all zones */
4737
+ finalQuantity: number;
4738
+ /** Currency for the final billing */
4739
+ currency: Currency;
4740
+ /** Unit of measurement for the final billing */
4741
+ unitOfMeasurement: PricingMeasure;
4742
+ }
4724
4743
  /**
4725
4744
  * Interface for appointment metadata containing zone-specific information
4726
4745
  */
@@ -4731,6 +4750,8 @@ interface AppointmentMetadata {
4731
4750
  zonePhotos: Record<string, BeforeAfterPerZone> | null;
4732
4751
  /** Map of billing information per zone */
4733
4752
  zoneBilling: Record<string, BillingPerZone> | null;
4753
+ /** Final billing calculations for the appointment */
4754
+ finalbilling: FinalBilling | null;
4734
4755
  }
4735
4756
  /**
4736
4757
  * Represents a booked appointment, aggregating key information and relevant procedure rules.
@@ -4918,8 +4939,8 @@ declare const createAppointmentSchema: z.ZodEffects<z.ZodObject<{
4918
4939
  procedureId: string;
4919
4940
  practitionerId: string;
4920
4941
  cost: number;
4921
- clinicBranchId: string;
4922
4942
  currency: string;
4943
+ clinicBranchId: string;
4923
4944
  initialStatus: AppointmentStatus;
4924
4945
  initialPaymentStatus: PaymentStatus;
4925
4946
  appointmentStartTime?: any;
@@ -4930,8 +4951,8 @@ declare const createAppointmentSchema: z.ZodEffects<z.ZodObject<{
4930
4951
  procedureId: string;
4931
4952
  practitionerId: string;
4932
4953
  cost: number;
4933
- clinicBranchId: string;
4934
4954
  currency: string;
4955
+ clinicBranchId: string;
4935
4956
  initialStatus: AppointmentStatus;
4936
4957
  appointmentStartTime?: any;
4937
4958
  appointmentEndTime?: any;
@@ -4942,8 +4963,8 @@ declare const createAppointmentSchema: z.ZodEffects<z.ZodObject<{
4942
4963
  procedureId: string;
4943
4964
  practitionerId: string;
4944
4965
  cost: number;
4945
- clinicBranchId: string;
4946
4966
  currency: string;
4967
+ clinicBranchId: string;
4947
4968
  initialStatus: AppointmentStatus;
4948
4969
  initialPaymentStatus: PaymentStatus;
4949
4970
  appointmentStartTime?: any;
@@ -4954,8 +4975,8 @@ declare const createAppointmentSchema: z.ZodEffects<z.ZodObject<{
4954
4975
  procedureId: string;
4955
4976
  practitionerId: string;
4956
4977
  cost: number;
4957
- clinicBranchId: string;
4958
4978
  currency: string;
4979
+ clinicBranchId: string;
4959
4980
  initialStatus: AppointmentStatus;
4960
4981
  appointmentStartTime?: any;
4961
4982
  appointmentEndTime?: any;
@@ -5121,6 +5142,31 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5121
5142
  Subtotal: number;
5122
5143
  Note: string | null;
5123
5144
  }>>>;
5145
+ finalbilling: z.ZodNullable<z.ZodObject<{
5146
+ subtotalAll: z.ZodNumber;
5147
+ taxRate: z.ZodNumber;
5148
+ taxPrice: z.ZodNumber;
5149
+ finalPrice: z.ZodNumber;
5150
+ finalQuantity: z.ZodNumber;
5151
+ currency: z.ZodNativeEnum<typeof Currency>;
5152
+ unitOfMeasurement: z.ZodNativeEnum<typeof PricingMeasure>;
5153
+ }, "strip", z.ZodTypeAny, {
5154
+ subtotalAll: number;
5155
+ taxRate: number;
5156
+ taxPrice: number;
5157
+ finalPrice: number;
5158
+ finalQuantity: number;
5159
+ currency: Currency;
5160
+ unitOfMeasurement: PricingMeasure;
5161
+ }, {
5162
+ subtotalAll: number;
5163
+ taxRate: number;
5164
+ taxPrice: number;
5165
+ finalPrice: number;
5166
+ finalQuantity: number;
5167
+ currency: Currency;
5168
+ unitOfMeasurement: PricingMeasure;
5169
+ }>>;
5124
5170
  }, "strip", z.ZodTypeAny, {
5125
5171
  selectedZones: string[] | null;
5126
5172
  zonePhotos: Record<string, {
@@ -5138,6 +5184,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5138
5184
  Subtotal: number;
5139
5185
  Note: string | null;
5140
5186
  }> | null;
5187
+ finalbilling: {
5188
+ subtotalAll: number;
5189
+ taxRate: number;
5190
+ taxPrice: number;
5191
+ finalPrice: number;
5192
+ finalQuantity: number;
5193
+ currency: Currency;
5194
+ unitOfMeasurement: PricingMeasure;
5195
+ } | null;
5141
5196
  }, {
5142
5197
  selectedZones: string[] | null;
5143
5198
  zonePhotos: Record<string, {
@@ -5155,6 +5210,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5155
5210
  Subtotal: number;
5156
5211
  Note: string | null;
5157
5212
  }> | null;
5213
+ finalbilling: {
5214
+ subtotalAll: number;
5215
+ taxRate: number;
5216
+ taxPrice: number;
5217
+ finalPrice: number;
5218
+ finalQuantity: number;
5219
+ currency: Currency;
5220
+ unitOfMeasurement: PricingMeasure;
5221
+ } | null;
5158
5222
  }>>;
5159
5223
  }, "strip", z.ZodTypeAny, {
5160
5224
  updatedAt?: any;
@@ -5202,6 +5266,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5202
5266
  Subtotal: number;
5203
5267
  Note: string | null;
5204
5268
  }> | null;
5269
+ finalbilling: {
5270
+ subtotalAll: number;
5271
+ taxRate: number;
5272
+ taxPrice: number;
5273
+ finalPrice: number;
5274
+ finalQuantity: number;
5275
+ currency: Currency;
5276
+ unitOfMeasurement: PricingMeasure;
5277
+ } | null;
5205
5278
  } | undefined;
5206
5279
  }, {
5207
5280
  updatedAt?: any;
@@ -5249,6 +5322,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5249
5322
  Subtotal: number;
5250
5323
  Note: string | null;
5251
5324
  }> | null;
5325
+ finalbilling: {
5326
+ subtotalAll: number;
5327
+ taxRate: number;
5328
+ taxPrice: number;
5329
+ finalPrice: number;
5330
+ finalQuantity: number;
5331
+ currency: Currency;
5332
+ unitOfMeasurement: PricingMeasure;
5333
+ } | null;
5252
5334
  } | undefined;
5253
5335
  }>, {
5254
5336
  updatedAt?: any;
@@ -5296,6 +5378,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5296
5378
  Subtotal: number;
5297
5379
  Note: string | null;
5298
5380
  }> | null;
5381
+ finalbilling: {
5382
+ subtotalAll: number;
5383
+ taxRate: number;
5384
+ taxPrice: number;
5385
+ finalPrice: number;
5386
+ finalQuantity: number;
5387
+ currency: Currency;
5388
+ unitOfMeasurement: PricingMeasure;
5389
+ } | null;
5299
5390
  } | undefined;
5300
5391
  }, {
5301
5392
  updatedAt?: any;
@@ -5343,6 +5434,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5343
5434
  Subtotal: number;
5344
5435
  Note: string | null;
5345
5436
  }> | null;
5437
+ finalbilling: {
5438
+ subtotalAll: number;
5439
+ taxRate: number;
5440
+ taxPrice: number;
5441
+ finalPrice: number;
5442
+ finalQuantity: number;
5443
+ currency: Currency;
5444
+ unitOfMeasurement: PricingMeasure;
5445
+ } | null;
5346
5446
  } | undefined;
5347
5447
  }>, {
5348
5448
  updatedAt?: any;
@@ -5390,6 +5490,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5390
5490
  Subtotal: number;
5391
5491
  Note: string | null;
5392
5492
  }> | null;
5493
+ finalbilling: {
5494
+ subtotalAll: number;
5495
+ taxRate: number;
5496
+ taxPrice: number;
5497
+ finalPrice: number;
5498
+ finalQuantity: number;
5499
+ currency: Currency;
5500
+ unitOfMeasurement: PricingMeasure;
5501
+ } | null;
5393
5502
  } | undefined;
5394
5503
  }, {
5395
5504
  updatedAt?: any;
@@ -5437,6 +5546,15 @@ declare const updateAppointmentSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5437
5546
  Subtotal: number;
5438
5547
  Note: string | null;
5439
5548
  }> | null;
5549
+ finalbilling: {
5550
+ subtotalAll: number;
5551
+ taxRate: number;
5552
+ taxPrice: number;
5553
+ finalPrice: number;
5554
+ finalQuantity: number;
5555
+ currency: Currency;
5556
+ unitOfMeasurement: PricingMeasure;
5557
+ } | null;
5440
5558
  } | undefined;
5441
5559
  }>;
5442
5560
  /**
@@ -20283,4 +20401,4 @@ declare const createReviewSchema: z.ZodEffects<z.ZodObject<{
20283
20401
  } | undefined;
20284
20402
  }>;
20285
20403
 
20286
- export { APPOINTMENTS_COLLECTION, AUTH_ERRORS, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentMetadata, type AppointmentReminderNotification, AppointmentService, AppointmentStatus, AuthError, AuthService, type BaseDocumentElement, type BaseNotification, type BeforeAfterPerZone, type BillingPerZone, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, type HeadingElement, HeadingLevel, Language, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MedicationAllergySubtype, type MultipleChoiceElement, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, PatientRequirementsService, type PatientSensitiveInfo, PatientService, PaymentStatus, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RequesterInfo, type Requirement, RequirementType, type Review, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type Subcategory, SubcategoryService, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeSlot, TimeUnit, TreatmentBenefit, USER_ERRORS, USER_FORMS_SUBCOLLECTION, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, baseNotificationSchema, blockingConditionSchema, calendarEventSchema, calendarEventTimeSchema, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicLocationSchema, clinicReviewInfoSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createBlockingEventSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicReviewSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createFilledDocumentDataSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerReviewSchema, createPractitionerSchema, createPractitionerTokenSchema, createProcedureReviewSchema, createReviewSchema, createUserOptionsSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, filledDocumentSchema, filledDocumentStatusSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerSignupSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, procedureReviewInfoSchema, procedureReviewSchema, requesterInfoSchema, requirementInstructionDueNotificationSchema, reviewSchema, searchAppointmentsSchema, searchPatientsSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateBlockingEventSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateFilledDocumentDataSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
20404
+ export { APPOINTMENTS_COLLECTION, AUTH_ERRORS, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentMetadata, type AppointmentReminderNotification, AppointmentService, AppointmentStatus, AuthError, AuthService, type BaseDocumentElement, type BaseNotification, type BeforeAfterPerZone, type BillingPerZone, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, type HeadingElement, HeadingLevel, Language, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MedicationAllergySubtype, type MultipleChoiceElement, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, PatientRequirementsService, type PatientSensitiveInfo, PatientService, PaymentStatus, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RequesterInfo, type Requirement, RequirementType, type Review, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type Subcategory, SubcategoryService, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeSlot, TimeUnit, TreatmentBenefit, USER_ERRORS, USER_FORMS_SUBCOLLECTION, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, baseNotificationSchema, blockingConditionSchema, calendarEventSchema, calendarEventTimeSchema, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicLocationSchema, clinicReviewInfoSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createBlockingEventSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicReviewSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createFilledDocumentDataSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerReviewSchema, createPractitionerSchema, createPractitionerTokenSchema, createProcedureReviewSchema, createReviewSchema, createUserOptionsSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, filledDocumentSchema, filledDocumentStatusSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerSignupSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, procedureReviewInfoSchema, procedureReviewSchema, requesterInfoSchema, requirementInstructionDueNotificationSchema, reviewSchema, searchAppointmentsSchema, searchPatientsSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateBlockingEventSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateFilledDocumentDataSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
package/dist/index.js CHANGED
@@ -627,10 +627,20 @@ var billingPerZoneSchema = import_zod3.z.object({
627
627
  Subtotal: import_zod3.z.number().min(0, "Subtotal must be non-negative"),
628
628
  Note: import_zod3.z.string().nullable()
629
629
  });
630
+ var finalBillingSchema = import_zod3.z.object({
631
+ subtotalAll: import_zod3.z.number().min(0, "Subtotal all must be non-negative"),
632
+ taxRate: import_zod3.z.number().min(0).max(1, "Tax rate must be between 0 and 1"),
633
+ taxPrice: import_zod3.z.number().min(0, "Tax price must be non-negative"),
634
+ finalPrice: import_zod3.z.number().min(0, "Final price must be non-negative"),
635
+ finalQuantity: import_zod3.z.number().min(0, "Final quantity must be non-negative"),
636
+ currency: import_zod3.z.nativeEnum(Currency),
637
+ unitOfMeasurement: import_zod3.z.nativeEnum(PricingMeasure)
638
+ });
630
639
  var appointmentMetadataSchema = import_zod3.z.object({
631
640
  selectedZones: import_zod3.z.array(import_zod3.z.string()).nullable(),
632
641
  zonePhotos: import_zod3.z.record(import_zod3.z.string(), beforeAfterPerZoneSchema).nullable(),
633
- zoneBilling: import_zod3.z.record(import_zod3.z.string(), billingPerZoneSchema).nullable()
642
+ zoneBilling: import_zod3.z.record(import_zod3.z.string(), billingPerZoneSchema).nullable(),
643
+ finalbilling: finalBillingSchema.nullable()
634
644
  });
635
645
  var createAppointmentSchema = import_zod3.z.object({
636
646
  clinicBranchId: import_zod3.z.string().min(MIN_STRING_LENGTH, "Clinic branch ID is required"),
package/dist/index.mjs CHANGED
@@ -382,10 +382,20 @@ var billingPerZoneSchema = z3.object({
382
382
  Subtotal: z3.number().min(0, "Subtotal must be non-negative"),
383
383
  Note: z3.string().nullable()
384
384
  });
385
+ var finalBillingSchema = z3.object({
386
+ subtotalAll: z3.number().min(0, "Subtotal all must be non-negative"),
387
+ taxRate: z3.number().min(0).max(1, "Tax rate must be between 0 and 1"),
388
+ taxPrice: z3.number().min(0, "Tax price must be non-negative"),
389
+ finalPrice: z3.number().min(0, "Final price must be non-negative"),
390
+ finalQuantity: z3.number().min(0, "Final quantity must be non-negative"),
391
+ currency: z3.nativeEnum(Currency),
392
+ unitOfMeasurement: z3.nativeEnum(PricingMeasure)
393
+ });
385
394
  var appointmentMetadataSchema = z3.object({
386
395
  selectedZones: z3.array(z3.string()).nullable(),
387
396
  zonePhotos: z3.record(z3.string(), beforeAfterPerZoneSchema).nullable(),
388
- zoneBilling: z3.record(z3.string(), billingPerZoneSchema).nullable()
397
+ zoneBilling: z3.record(z3.string(), billingPerZoneSchema).nullable(),
398
+ finalbilling: finalBillingSchema.nullable()
389
399
  });
390
400
  var createAppointmentSchema = z3.object({
391
401
  clinicBranchId: z3.string().min(MIN_STRING_LENGTH, "Clinic branch ID is required"),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@blackcode_sa/metaestetics-api",
3
3
  "private": false,
4
- "version": "1.7.39",
4
+ "version": "1.7.40",
5
5
  "description": "Firebase authentication service with anonymous upgrade support",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.mjs",
package/src/index.ts CHANGED
@@ -137,6 +137,7 @@ export type {
137
137
  AppointmentMetadata,
138
138
  BeforeAfterPerZone,
139
139
  BillingPerZone,
140
+ FinalBilling,
140
141
  } from "./types/appointment";
141
142
  export {
142
143
  AppointmentStatus,
@@ -149,6 +149,26 @@ export interface BillingPerZone {
149
149
  Note: string | null;
150
150
  }
151
151
 
152
+ /**
153
+ * Interface for final billing calculations of the appointment
154
+ */
155
+ export interface FinalBilling {
156
+ /** Total of all subtotals from all zones */
157
+ subtotalAll: number;
158
+ /** Tax rate as percentage (e.g., 0.20 for 20%) */
159
+ taxRate: number;
160
+ /** Calculated tax amount */
161
+ taxPrice: number;
162
+ /** Final price including tax */
163
+ finalPrice: number;
164
+ /** Total final quantity across all zones */
165
+ finalQuantity: number;
166
+ /** Currency for the final billing */
167
+ currency: Currency;
168
+ /** Unit of measurement for the final billing */
169
+ unitOfMeasurement: PricingMeasure;
170
+ }
171
+
152
172
  /**
153
173
  * Interface for appointment metadata containing zone-specific information
154
174
  */
@@ -159,6 +179,8 @@ export interface AppointmentMetadata {
159
179
  zonePhotos: Record<string, BeforeAfterPerZone> | null;
160
180
  /** Map of billing information per zone */
161
181
  zoneBilling: Record<string, BillingPerZone> | null;
182
+ /** Final billing calculations for the appointment */
183
+ finalbilling: FinalBilling | null;
162
184
  }
163
185
 
164
186
  /**
@@ -175,6 +175,19 @@ export const billingPerZoneSchema = z.object({
175
175
  Note: z.string().nullable(),
176
176
  });
177
177
 
178
+ /**
179
+ * Schema for final billing calculations of the appointment
180
+ */
181
+ export const finalBillingSchema = z.object({
182
+ subtotalAll: z.number().min(0, "Subtotal all must be non-negative"),
183
+ taxRate: z.number().min(0).max(1, "Tax rate must be between 0 and 1"),
184
+ taxPrice: z.number().min(0, "Tax price must be non-negative"),
185
+ finalPrice: z.number().min(0, "Final price must be non-negative"),
186
+ finalQuantity: z.number().min(0, "Final quantity must be non-negative"),
187
+ currency: z.nativeEnum(Currency),
188
+ unitOfMeasurement: z.nativeEnum(PricingMeasure),
189
+ });
190
+
178
191
  /**
179
192
  * Schema for appointment metadata containing zone-specific information
180
193
  */
@@ -182,6 +195,7 @@ export const appointmentMetadataSchema = z.object({
182
195
  selectedZones: z.array(z.string()).nullable(),
183
196
  zonePhotos: z.record(z.string(), beforeAfterPerZoneSchema).nullable(),
184
197
  zoneBilling: z.record(z.string(), billingPerZoneSchema).nullable(),
198
+ finalbilling: finalBillingSchema.nullable(),
185
199
  });
186
200
 
187
201
  // --- Main Appointment Schemas ---