@blackcode_sa/metaestetics-api 1.5.4 → 1.5.6

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.d.mts CHANGED
@@ -4336,6 +4336,149 @@ declare class NotificationService extends BaseService {
4336
4336
  getAppointmentNotifications(appointmentId: string): Promise<Notification[]>;
4337
4337
  }
4338
4338
 
4339
+ /**
4340
+ * Procedure represents a specific medical procedure that can be performed by a practitioner in a clinic
4341
+ * It inherits properties from technology and adds clinic/practitioner specific details
4342
+ */
4343
+ interface Procedure {
4344
+ /** Unique identifier of the procedure */
4345
+ id: string;
4346
+ /** Name of the procedure */
4347
+ name: string;
4348
+ /** Detailed description of the procedure */
4349
+ description: string;
4350
+ /** Family of procedures this belongs to (aesthetics/surgery) */
4351
+ family: ProcedureFamily;
4352
+ /** Category this procedure belongs to */
4353
+ category: Category;
4354
+ /** Subcategory this procedure belongs to */
4355
+ subcategory: Subcategory;
4356
+ /** Technology used in this procedure */
4357
+ technology: Technology;
4358
+ /** Product used in this procedure */
4359
+ product: Product;
4360
+ /** Price of the procedure */
4361
+ price: number;
4362
+ /** Currency for the price */
4363
+ currency: Currency;
4364
+ /** How the price is measured (per ml, per zone, etc.) */
4365
+ pricingMeasure: PricingMeasure;
4366
+ /** Duration of the procedure in minutes */
4367
+ duration: number;
4368
+ /** Blocking conditions that prevent this procedure */
4369
+ blockingConditions: BlockingCondition[];
4370
+ /** Treatment benefits of this procedure */
4371
+ treatmentBenefits: TreatmentBenefit[];
4372
+ /** Pre-procedure requirements */
4373
+ preRequirements: Requirement[];
4374
+ /** Post-procedure requirements */
4375
+ postRequirements: Requirement[];
4376
+ /** Certification requirements for performing this procedure */
4377
+ certificationRequirement: CertificationRequirement;
4378
+ /** Documentation templates required for this procedure */
4379
+ documentationTemplates: DocumentTemplate[];
4380
+ /** ID of the practitioner who performs this procedure */
4381
+ practitionerId: string;
4382
+ /** ID of the clinic branch where this procedure is performed */
4383
+ clinicBranchId: string;
4384
+ /** Whether this procedure is active */
4385
+ isActive: boolean;
4386
+ /** When this procedure was created */
4387
+ createdAt: Date;
4388
+ /** When this procedure was last updated */
4389
+ updatedAt: Date;
4390
+ }
4391
+ /**
4392
+ * Data required to create a new procedure
4393
+ */
4394
+ interface CreateProcedureData {
4395
+ name: string;
4396
+ description: string;
4397
+ family: ProcedureFamily;
4398
+ categoryId: string;
4399
+ subcategoryId: string;
4400
+ technologyId: string;
4401
+ productId: string;
4402
+ price: number;
4403
+ currency: Currency;
4404
+ pricingMeasure: PricingMeasure;
4405
+ duration: number;
4406
+ practitionerId: string;
4407
+ clinicBranchId: string;
4408
+ }
4409
+ /**
4410
+ * Data that can be updated for an existing procedure
4411
+ */
4412
+ interface UpdateProcedureData {
4413
+ name?: string;
4414
+ description?: string;
4415
+ price?: number;
4416
+ currency?: Currency;
4417
+ pricingMeasure?: PricingMeasure;
4418
+ duration?: number;
4419
+ isActive?: boolean;
4420
+ }
4421
+
4422
+ declare class ProcedureService extends BaseService {
4423
+ constructor(db: Firestore, auth: Auth, app: FirebaseApp);
4424
+ /**
4425
+ * Creates a new procedure
4426
+ * @param data - The data for creating a new procedure
4427
+ * @returns The created procedure
4428
+ */
4429
+ createProcedure(data: CreateProcedureData): Promise<Procedure>;
4430
+ /**
4431
+ * Gets a procedure by ID
4432
+ * @param id - The ID of the procedure to get
4433
+ * @returns The procedure if found, null otherwise
4434
+ */
4435
+ getProcedure(id: string): Promise<Procedure | null>;
4436
+ /**
4437
+ * Gets all procedures for a clinic branch
4438
+ * @param clinicBranchId - The ID of the clinic branch
4439
+ * @returns List of procedures
4440
+ */
4441
+ getProceduresByClinicBranch(clinicBranchId: string): Promise<Procedure[]>;
4442
+ /**
4443
+ * Gets all procedures for a practitioner
4444
+ * @param practitionerId - The ID of the practitioner
4445
+ * @returns List of procedures
4446
+ */
4447
+ getProceduresByPractitioner(practitionerId: string): Promise<Procedure[]>;
4448
+ /**
4449
+ * Updates a procedure
4450
+ * @param id - The ID of the procedure to update
4451
+ * @param data - The data to update
4452
+ * @returns The updated procedure
4453
+ */
4454
+ updateProcedure(id: string, data: UpdateProcedureData): Promise<Procedure>;
4455
+ /**
4456
+ * Deactivates a procedure
4457
+ * @param id - The ID of the procedure to deactivate
4458
+ */
4459
+ deactivateProcedure(id: string): Promise<void>;
4460
+ /**
4461
+ * Gets a category by ID
4462
+ * @private
4463
+ */
4464
+ private getCategory;
4465
+ /**
4466
+ * Gets a subcategory by ID
4467
+ * @private
4468
+ */
4469
+ private getSubcategory;
4470
+ /**
4471
+ * Gets a technology by ID
4472
+ * @private
4473
+ */
4474
+ private getTechnology;
4475
+ /**
4476
+ * Gets a product by ID
4477
+ * @private
4478
+ */
4479
+ private getProduct;
4480
+ }
4481
+
4339
4482
  /**
4340
4483
  * Service for managing documentation templates
4341
4484
  */
@@ -14463,6 +14606,7 @@ declare const createCalendarEventSchema: z.ZodObject<{
14463
14606
  description?: string | undefined;
14464
14607
  createdAt?: any;
14465
14608
  appointmentId?: string | null | undefined;
14609
+ clinicBranchId?: string | null | undefined;
14466
14610
  procedureId?: string | null | undefined;
14467
14611
  eventLocation?: {
14468
14612
  latitude: number;
@@ -14473,7 +14617,6 @@ declare const createCalendarEventSchema: z.ZodObject<{
14473
14617
  postalCode: string;
14474
14618
  geohash?: string | null | undefined;
14475
14619
  } | undefined;
14476
- clinicBranchId?: string | null | undefined;
14477
14620
  clinicBranchInfo?: any;
14478
14621
  practitionerProfileId?: string | null | undefined;
14479
14622
  practitionerProfileInfo?: {
@@ -14520,6 +14663,7 @@ declare const createCalendarEventSchema: z.ZodObject<{
14520
14663
  description?: string | undefined;
14521
14664
  createdAt?: any;
14522
14665
  appointmentId?: string | null | undefined;
14666
+ clinicBranchId?: string | null | undefined;
14523
14667
  procedureId?: string | null | undefined;
14524
14668
  eventLocation?: {
14525
14669
  latitude: number;
@@ -14530,7 +14674,6 @@ declare const createCalendarEventSchema: z.ZodObject<{
14530
14674
  postalCode: string;
14531
14675
  geohash?: string | null | undefined;
14532
14676
  } | undefined;
14533
- clinicBranchId?: string | null | undefined;
14534
14677
  clinicBranchInfo?: any;
14535
14678
  practitionerProfileId?: string | null | undefined;
14536
14679
  practitionerProfileInfo?: {
@@ -14859,6 +15002,7 @@ declare const calendarEventSchema: z.ZodObject<{
14859
15002
  eventType: CalendarEventType;
14860
15003
  description?: string | undefined;
14861
15004
  appointmentId?: string | null | undefined;
15005
+ clinicBranchId?: string | null | undefined;
14862
15006
  procedureId?: string | null | undefined;
14863
15007
  eventLocation?: {
14864
15008
  latitude: number;
@@ -14869,7 +15013,6 @@ declare const calendarEventSchema: z.ZodObject<{
14869
15013
  postalCode: string;
14870
15014
  geohash?: string | null | undefined;
14871
15015
  } | undefined;
14872
- clinicBranchId?: string | null | undefined;
14873
15016
  clinicBranchInfo?: any;
14874
15017
  practitionerProfileId?: string | null | undefined;
14875
15018
  practitionerProfileInfo?: {
@@ -14930,6 +15073,7 @@ declare const calendarEventSchema: z.ZodObject<{
14930
15073
  eventType: CalendarEventType;
14931
15074
  description?: string | undefined;
14932
15075
  appointmentId?: string | null | undefined;
15076
+ clinicBranchId?: string | null | undefined;
14933
15077
  procedureId?: string | null | undefined;
14934
15078
  eventLocation?: {
14935
15079
  latitude: number;
@@ -14940,7 +15084,6 @@ declare const calendarEventSchema: z.ZodObject<{
14940
15084
  postalCode: string;
14941
15085
  geohash?: string | null | undefined;
14942
15086
  } | undefined;
14943
- clinicBranchId?: string | null | undefined;
14944
15087
  clinicBranchInfo?: any;
14945
15088
  practitionerProfileId?: string | null | undefined;
14946
15089
  practitionerProfileInfo?: {
@@ -15118,4 +15261,4 @@ declare enum FirebaseErrorCode {
15118
15261
  POPUP_ALREADY_OPEN = "auth/cancelled-popup-request"
15119
15262
  }
15120
15263
 
15121
- export { 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 AppointmentNotification, type AppointmentReminderNotification, AuthError, AuthService, type BaseNotification, BlockingCondition, type Brand, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarSyncStatus, type Category, 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, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentParams, 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 CreatePractitionerTokenData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCUMENTATION_TEMPLATES_COLLECTION, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FilledDocument, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, HeadingLevel, Language, ListType, type LocationData, MedicationAllergySubtype, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, type PatientClinic, type PatientDoctor, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileInfo, type PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerProfileInfo, type PractitionerReview, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, type Product, REGISTER_TOKENS_COLLECTION, type Requirement, type ReviewInfo, SYNCED_CALENDARS_COLLECTION, type ServiceInfo, type Subcategory, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TimeSlot, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateAppointmentParams, type UpdateBlockingConditionData, 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 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, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createPractitionerTokenSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, reviewInfoSchema, serviceInfoSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
15264
+ export { 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 AppointmentNotification, type AppointmentReminderNotification, AuthError, AuthService, type BaseNotification, BlockingCondition, type Brand, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarSyncStatus, type Category, 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, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentParams, 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 CreatePractitionerTokenData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCUMENTATION_TEMPLATES_COLLECTION, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FilledDocument, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, HeadingLevel, Language, ListType, type LocationData, MedicationAllergySubtype, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, type PatientClinic, type PatientDoctor, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileInfo, type PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerProfileInfo, type PractitionerReview, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, ProcedureService, type Product, REGISTER_TOKENS_COLLECTION, type Requirement, type ReviewInfo, SYNCED_CALENDARS_COLLECTION, type ServiceInfo, type Subcategory, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TimeSlot, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateAppointmentParams, type UpdateBlockingConditionData, 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 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, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createPractitionerTokenSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, reviewInfoSchema, serviceInfoSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
package/dist/index.d.ts CHANGED
@@ -4336,6 +4336,149 @@ declare class NotificationService extends BaseService {
4336
4336
  getAppointmentNotifications(appointmentId: string): Promise<Notification[]>;
4337
4337
  }
4338
4338
 
4339
+ /**
4340
+ * Procedure represents a specific medical procedure that can be performed by a practitioner in a clinic
4341
+ * It inherits properties from technology and adds clinic/practitioner specific details
4342
+ */
4343
+ interface Procedure {
4344
+ /** Unique identifier of the procedure */
4345
+ id: string;
4346
+ /** Name of the procedure */
4347
+ name: string;
4348
+ /** Detailed description of the procedure */
4349
+ description: string;
4350
+ /** Family of procedures this belongs to (aesthetics/surgery) */
4351
+ family: ProcedureFamily;
4352
+ /** Category this procedure belongs to */
4353
+ category: Category;
4354
+ /** Subcategory this procedure belongs to */
4355
+ subcategory: Subcategory;
4356
+ /** Technology used in this procedure */
4357
+ technology: Technology;
4358
+ /** Product used in this procedure */
4359
+ product: Product;
4360
+ /** Price of the procedure */
4361
+ price: number;
4362
+ /** Currency for the price */
4363
+ currency: Currency;
4364
+ /** How the price is measured (per ml, per zone, etc.) */
4365
+ pricingMeasure: PricingMeasure;
4366
+ /** Duration of the procedure in minutes */
4367
+ duration: number;
4368
+ /** Blocking conditions that prevent this procedure */
4369
+ blockingConditions: BlockingCondition[];
4370
+ /** Treatment benefits of this procedure */
4371
+ treatmentBenefits: TreatmentBenefit[];
4372
+ /** Pre-procedure requirements */
4373
+ preRequirements: Requirement[];
4374
+ /** Post-procedure requirements */
4375
+ postRequirements: Requirement[];
4376
+ /** Certification requirements for performing this procedure */
4377
+ certificationRequirement: CertificationRequirement;
4378
+ /** Documentation templates required for this procedure */
4379
+ documentationTemplates: DocumentTemplate[];
4380
+ /** ID of the practitioner who performs this procedure */
4381
+ practitionerId: string;
4382
+ /** ID of the clinic branch where this procedure is performed */
4383
+ clinicBranchId: string;
4384
+ /** Whether this procedure is active */
4385
+ isActive: boolean;
4386
+ /** When this procedure was created */
4387
+ createdAt: Date;
4388
+ /** When this procedure was last updated */
4389
+ updatedAt: Date;
4390
+ }
4391
+ /**
4392
+ * Data required to create a new procedure
4393
+ */
4394
+ interface CreateProcedureData {
4395
+ name: string;
4396
+ description: string;
4397
+ family: ProcedureFamily;
4398
+ categoryId: string;
4399
+ subcategoryId: string;
4400
+ technologyId: string;
4401
+ productId: string;
4402
+ price: number;
4403
+ currency: Currency;
4404
+ pricingMeasure: PricingMeasure;
4405
+ duration: number;
4406
+ practitionerId: string;
4407
+ clinicBranchId: string;
4408
+ }
4409
+ /**
4410
+ * Data that can be updated for an existing procedure
4411
+ */
4412
+ interface UpdateProcedureData {
4413
+ name?: string;
4414
+ description?: string;
4415
+ price?: number;
4416
+ currency?: Currency;
4417
+ pricingMeasure?: PricingMeasure;
4418
+ duration?: number;
4419
+ isActive?: boolean;
4420
+ }
4421
+
4422
+ declare class ProcedureService extends BaseService {
4423
+ constructor(db: Firestore, auth: Auth, app: FirebaseApp);
4424
+ /**
4425
+ * Creates a new procedure
4426
+ * @param data - The data for creating a new procedure
4427
+ * @returns The created procedure
4428
+ */
4429
+ createProcedure(data: CreateProcedureData): Promise<Procedure>;
4430
+ /**
4431
+ * Gets a procedure by ID
4432
+ * @param id - The ID of the procedure to get
4433
+ * @returns The procedure if found, null otherwise
4434
+ */
4435
+ getProcedure(id: string): Promise<Procedure | null>;
4436
+ /**
4437
+ * Gets all procedures for a clinic branch
4438
+ * @param clinicBranchId - The ID of the clinic branch
4439
+ * @returns List of procedures
4440
+ */
4441
+ getProceduresByClinicBranch(clinicBranchId: string): Promise<Procedure[]>;
4442
+ /**
4443
+ * Gets all procedures for a practitioner
4444
+ * @param practitionerId - The ID of the practitioner
4445
+ * @returns List of procedures
4446
+ */
4447
+ getProceduresByPractitioner(practitionerId: string): Promise<Procedure[]>;
4448
+ /**
4449
+ * Updates a procedure
4450
+ * @param id - The ID of the procedure to update
4451
+ * @param data - The data to update
4452
+ * @returns The updated procedure
4453
+ */
4454
+ updateProcedure(id: string, data: UpdateProcedureData): Promise<Procedure>;
4455
+ /**
4456
+ * Deactivates a procedure
4457
+ * @param id - The ID of the procedure to deactivate
4458
+ */
4459
+ deactivateProcedure(id: string): Promise<void>;
4460
+ /**
4461
+ * Gets a category by ID
4462
+ * @private
4463
+ */
4464
+ private getCategory;
4465
+ /**
4466
+ * Gets a subcategory by ID
4467
+ * @private
4468
+ */
4469
+ private getSubcategory;
4470
+ /**
4471
+ * Gets a technology by ID
4472
+ * @private
4473
+ */
4474
+ private getTechnology;
4475
+ /**
4476
+ * Gets a product by ID
4477
+ * @private
4478
+ */
4479
+ private getProduct;
4480
+ }
4481
+
4339
4482
  /**
4340
4483
  * Service for managing documentation templates
4341
4484
  */
@@ -14463,6 +14606,7 @@ declare const createCalendarEventSchema: z.ZodObject<{
14463
14606
  description?: string | undefined;
14464
14607
  createdAt?: any;
14465
14608
  appointmentId?: string | null | undefined;
14609
+ clinicBranchId?: string | null | undefined;
14466
14610
  procedureId?: string | null | undefined;
14467
14611
  eventLocation?: {
14468
14612
  latitude: number;
@@ -14473,7 +14617,6 @@ declare const createCalendarEventSchema: z.ZodObject<{
14473
14617
  postalCode: string;
14474
14618
  geohash?: string | null | undefined;
14475
14619
  } | undefined;
14476
- clinicBranchId?: string | null | undefined;
14477
14620
  clinicBranchInfo?: any;
14478
14621
  practitionerProfileId?: string | null | undefined;
14479
14622
  practitionerProfileInfo?: {
@@ -14520,6 +14663,7 @@ declare const createCalendarEventSchema: z.ZodObject<{
14520
14663
  description?: string | undefined;
14521
14664
  createdAt?: any;
14522
14665
  appointmentId?: string | null | undefined;
14666
+ clinicBranchId?: string | null | undefined;
14523
14667
  procedureId?: string | null | undefined;
14524
14668
  eventLocation?: {
14525
14669
  latitude: number;
@@ -14530,7 +14674,6 @@ declare const createCalendarEventSchema: z.ZodObject<{
14530
14674
  postalCode: string;
14531
14675
  geohash?: string | null | undefined;
14532
14676
  } | undefined;
14533
- clinicBranchId?: string | null | undefined;
14534
14677
  clinicBranchInfo?: any;
14535
14678
  practitionerProfileId?: string | null | undefined;
14536
14679
  practitionerProfileInfo?: {
@@ -14859,6 +15002,7 @@ declare const calendarEventSchema: z.ZodObject<{
14859
15002
  eventType: CalendarEventType;
14860
15003
  description?: string | undefined;
14861
15004
  appointmentId?: string | null | undefined;
15005
+ clinicBranchId?: string | null | undefined;
14862
15006
  procedureId?: string | null | undefined;
14863
15007
  eventLocation?: {
14864
15008
  latitude: number;
@@ -14869,7 +15013,6 @@ declare const calendarEventSchema: z.ZodObject<{
14869
15013
  postalCode: string;
14870
15014
  geohash?: string | null | undefined;
14871
15015
  } | undefined;
14872
- clinicBranchId?: string | null | undefined;
14873
15016
  clinicBranchInfo?: any;
14874
15017
  practitionerProfileId?: string | null | undefined;
14875
15018
  practitionerProfileInfo?: {
@@ -14930,6 +15073,7 @@ declare const calendarEventSchema: z.ZodObject<{
14930
15073
  eventType: CalendarEventType;
14931
15074
  description?: string | undefined;
14932
15075
  appointmentId?: string | null | undefined;
15076
+ clinicBranchId?: string | null | undefined;
14933
15077
  procedureId?: string | null | undefined;
14934
15078
  eventLocation?: {
14935
15079
  latitude: number;
@@ -14940,7 +15084,6 @@ declare const calendarEventSchema: z.ZodObject<{
14940
15084
  postalCode: string;
14941
15085
  geohash?: string | null | undefined;
14942
15086
  } | undefined;
14943
- clinicBranchId?: string | null | undefined;
14944
15087
  clinicBranchInfo?: any;
14945
15088
  practitionerProfileId?: string | null | undefined;
14946
15089
  practitionerProfileInfo?: {
@@ -15118,4 +15261,4 @@ declare enum FirebaseErrorCode {
15118
15261
  POPUP_ALREADY_OPEN = "auth/cancelled-popup-request"
15119
15262
  }
15120
15263
 
15121
- export { 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 AppointmentNotification, type AppointmentReminderNotification, AuthError, AuthService, type BaseNotification, BlockingCondition, type Brand, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarSyncStatus, type Category, 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, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentParams, 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 CreatePractitionerTokenData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCUMENTATION_TEMPLATES_COLLECTION, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FilledDocument, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, HeadingLevel, Language, ListType, type LocationData, MedicationAllergySubtype, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, type PatientClinic, type PatientDoctor, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileInfo, type PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerProfileInfo, type PractitionerReview, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, type Product, REGISTER_TOKENS_COLLECTION, type Requirement, type ReviewInfo, SYNCED_CALENDARS_COLLECTION, type ServiceInfo, type Subcategory, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TimeSlot, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateAppointmentParams, type UpdateBlockingConditionData, 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 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, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createPractitionerTokenSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, reviewInfoSchema, serviceInfoSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
15264
+ export { 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 AppointmentNotification, type AppointmentReminderNotification, AuthError, AuthService, type BaseNotification, BlockingCondition, type Brand, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarSyncStatus, type Category, 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, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentParams, 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 CreatePractitionerTokenData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCUMENTATION_TEMPLATES_COLLECTION, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FilledDocument, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, HeadingLevel, Language, ListType, type LocationData, MedicationAllergySubtype, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, type PatientClinic, type PatientDoctor, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileInfo, type PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerProfileInfo, type PractitionerReview, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, ProcedureService, type Product, REGISTER_TOKENS_COLLECTION, type Requirement, type ReviewInfo, SYNCED_CALENDARS_COLLECTION, type ServiceInfo, type Subcategory, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TimeSlot, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateAppointmentParams, type UpdateBlockingConditionData, 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 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, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createPractitionerTokenSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, reviewInfoSchema, serviceInfoSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };