@blackcode_sa/metaestetics-api 1.4.16 → 1.4.18

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
@@ -865,6 +865,32 @@ declare enum ClinicTag {
865
865
  NIGHT_SHIFT = "night_shift",
866
866
  HOLIDAY_HOURS = "holiday_hours"
867
867
  }
868
+ /**
869
+ * Enum for clinic photo tags
870
+ * Used to categorize photos of different areas/parts of the clinic
871
+ */
872
+ declare enum ClinicPhotoTag {
873
+ BUILDING_EXTERIOR = "building_exterior",
874
+ ENTRANCE = "entrance",
875
+ PARKING = "parking",
876
+ RECEPTION = "reception",
877
+ WAITING_ROOM = "waiting_room",
878
+ HALLWAY = "hallway",
879
+ EXAM_ROOM = "exam_room",
880
+ TREATMENT_ROOM = "treatment_room",
881
+ LABORATORY = "laboratory",
882
+ XRAY_ROOM = "xray_room",
883
+ ULTRASOUND_ROOM = "ultrasound_room",
884
+ DENTAL_OFFICE = "dental_office",
885
+ OPERATING_ROOM = "operating_room",
886
+ RECOVERY_ROOM = "recovery_room",
887
+ MEDICAL_EQUIPMENT = "medical_equipment",
888
+ PHARMACY = "pharmacy",
889
+ CAFETERIA = "cafeteria",
890
+ CHILDREN_AREA = "children_area",
891
+ STAFF = "staff",
892
+ OTHER = "other"
893
+ }
868
894
 
869
895
  declare const CLINIC_GROUPS_COLLECTION = "clinic_groups";
870
896
  declare const CLINIC_ADMINS_COLLECTION = "clinic_admins";
@@ -1160,7 +1186,7 @@ interface Clinic {
1160
1186
  workingHours: WorkingHours;
1161
1187
  tags: ClinicTag[];
1162
1188
  featuredPhotos: string[];
1163
- photos: string[];
1189
+ coverPhoto: string | null;
1164
1190
  photosWithTags?: {
1165
1191
  url: string;
1166
1192
  tag: string;
@@ -1193,7 +1219,7 @@ interface CreateClinicData {
1193
1219
  contactInfo: ClinicContactInfo;
1194
1220
  workingHours: WorkingHours;
1195
1221
  tags: ClinicTag[];
1196
- photos: string[];
1222
+ coverPhoto: string | null;
1197
1223
  photosWithTags?: {
1198
1224
  url: string;
1199
1225
  tag: string;
@@ -1270,7 +1296,7 @@ interface ClinicBranchSetupData {
1270
1296
  workingHours: WorkingHours;
1271
1297
  tags: ClinicTag[];
1272
1298
  logo?: string;
1273
- photos: string[];
1299
+ coverPhoto: string | null;
1274
1300
  photosWithTags?: {
1275
1301
  url: string;
1276
1302
  tag: string;
@@ -8862,7 +8888,7 @@ declare const clinicSchema: z.ZodObject<{
8862
8888
  }>;
8863
8889
  tags: z.ZodArray<z.ZodNativeEnum<typeof ClinicTag>, "many">;
8864
8890
  featuredPhotos: z.ZodArray<z.ZodString, "many">;
8865
- photos: z.ZodArray<z.ZodString, "many">;
8891
+ coverPhoto: z.ZodNullable<z.ZodString>;
8866
8892
  photosWithTags: z.ZodOptional<z.ZodArray<z.ZodObject<{
8867
8893
  url: z.ZodString;
8868
8894
  tag: z.ZodString;
@@ -9074,7 +9100,7 @@ declare const clinicSchema: z.ZodObject<{
9074
9100
  }[] | undefined;
9075
9101
  } | null;
9076
9102
  };
9077
- photos: string[];
9103
+ coverPhoto: string | null;
9078
9104
  services: string[];
9079
9105
  admins: string[];
9080
9106
  featuredPhotos: string[];
@@ -9207,7 +9233,7 @@ declare const clinicSchema: z.ZodObject<{
9207
9233
  }[] | undefined;
9208
9234
  } | null;
9209
9235
  };
9210
- photos: string[];
9236
+ coverPhoto: string | null;
9211
9237
  services: string[];
9212
9238
  admins: string[];
9213
9239
  featuredPhotos: string[];
@@ -9821,7 +9847,7 @@ declare const createClinicSchema: z.ZodObject<{
9821
9847
  } | null;
9822
9848
  }>;
9823
9849
  tags: z.ZodArray<z.ZodNativeEnum<typeof ClinicTag>, "many">;
9824
- photos: z.ZodArray<z.ZodString, "many">;
9850
+ coverPhoto: z.ZodNullable<z.ZodString>;
9825
9851
  photosWithTags: z.ZodOptional<z.ZodArray<z.ZodObject<{
9826
9852
  url: z.ZodString;
9827
9853
  tag: z.ZodString;
@@ -9919,7 +9945,7 @@ declare const createClinicSchema: z.ZodObject<{
9919
9945
  }[] | undefined;
9920
9946
  } | null;
9921
9947
  };
9922
- photos: string[];
9948
+ coverPhoto: string | null;
9923
9949
  services: string[];
9924
9950
  admins: string[];
9925
9951
  description?: string | undefined;
@@ -10009,7 +10035,7 @@ declare const createClinicSchema: z.ZodObject<{
10009
10035
  }[] | undefined;
10010
10036
  } | null;
10011
10037
  };
10012
- photos: string[];
10038
+ coverPhoto: string | null;
10013
10039
  services: string[];
10014
10040
  admins: string[];
10015
10041
  description?: string | undefined;
@@ -10696,7 +10722,7 @@ declare const clinicBranchSetupSchema: z.ZodObject<{
10696
10722
  }>;
10697
10723
  tags: z.ZodArray<z.ZodNativeEnum<typeof ClinicTag>, "many">;
10698
10724
  logo: z.ZodOptional<z.ZodString>;
10699
- photos: z.ZodArray<z.ZodString, "many">;
10725
+ coverPhoto: z.ZodNullable<z.ZodString>;
10700
10726
  photosWithTags: z.ZodOptional<z.ZodArray<z.ZodObject<{
10701
10727
  url: z.ZodString;
10702
10728
  tag: z.ZodString;
@@ -10784,7 +10810,7 @@ declare const clinicBranchSetupSchema: z.ZodObject<{
10784
10810
  }[] | undefined;
10785
10811
  } | null;
10786
10812
  };
10787
- photos: string[];
10813
+ coverPhoto: string | null;
10788
10814
  description?: string | undefined;
10789
10815
  logo?: string | undefined;
10790
10816
  photosWithTags?: {
@@ -10868,7 +10894,7 @@ declare const clinicBranchSetupSchema: z.ZodObject<{
10868
10894
  }[] | undefined;
10869
10895
  } | null;
10870
10896
  };
10871
- photos: string[];
10897
+ coverPhoto: string | null;
10872
10898
  description?: string | undefined;
10873
10899
  logo?: string | undefined;
10874
10900
  photosWithTags?: {
@@ -11440,7 +11466,7 @@ declare const updateClinicSchema: z.ZodObject<{
11440
11466
  } | null;
11441
11467
  }>>;
11442
11468
  tags: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof ClinicTag>, "many">>;
11443
- photos: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11469
+ coverPhoto: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11444
11470
  photosWithTags: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
11445
11471
  url: z.ZodString;
11446
11472
  tag: z.ZodString;
@@ -11540,7 +11566,7 @@ declare const updateClinicSchema: z.ZodObject<{
11540
11566
  }[] | undefined;
11541
11567
  } | null;
11542
11568
  } | undefined;
11543
- photos?: string[] | undefined;
11569
+ coverPhoto?: string | null | undefined;
11544
11570
  photosWithTags?: {
11545
11571
  url: string;
11546
11572
  tag: string;
@@ -11630,7 +11656,7 @@ declare const updateClinicSchema: z.ZodObject<{
11630
11656
  }[] | undefined;
11631
11657
  } | null;
11632
11658
  } | undefined;
11633
- photos?: string[] | undefined;
11659
+ coverPhoto?: string | null | undefined;
11634
11660
  photosWithTags?: {
11635
11661
  url: string;
11636
11662
  tag: string;
@@ -11904,4 +11930,4 @@ interface Technology {
11904
11930
  updatedAt: Date;
11905
11931
  }
11906
11932
 
11907
- 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, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type Category, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, type ClinicReview, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, 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 PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerReview, PractitionerService, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, ProcedureFamily, type Product, type Requirement, type ReviewInfo, type ServiceInfo, type Subcategory, SubscriptionModel, type Technology, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateBlockingConditionData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, 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, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerReviewSchema, practitionerSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, reviewInfoSchema, serviceInfoSchema, timestampSchema, updateAllergySchema, updateBlockingConditionSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
11933
+ 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, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, 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 CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, 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 PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerReview, PractitionerService, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, ProcedureFamily, type Product, type Requirement, type ReviewInfo, type ServiceInfo, type Subcategory, SubscriptionModel, type Technology, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateBlockingConditionData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, 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, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerReviewSchema, practitionerSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, reviewInfoSchema, serviceInfoSchema, timestampSchema, updateAllergySchema, updateBlockingConditionSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
package/dist/index.d.ts CHANGED
@@ -865,6 +865,32 @@ declare enum ClinicTag {
865
865
  NIGHT_SHIFT = "night_shift",
866
866
  HOLIDAY_HOURS = "holiday_hours"
867
867
  }
868
+ /**
869
+ * Enum for clinic photo tags
870
+ * Used to categorize photos of different areas/parts of the clinic
871
+ */
872
+ declare enum ClinicPhotoTag {
873
+ BUILDING_EXTERIOR = "building_exterior",
874
+ ENTRANCE = "entrance",
875
+ PARKING = "parking",
876
+ RECEPTION = "reception",
877
+ WAITING_ROOM = "waiting_room",
878
+ HALLWAY = "hallway",
879
+ EXAM_ROOM = "exam_room",
880
+ TREATMENT_ROOM = "treatment_room",
881
+ LABORATORY = "laboratory",
882
+ XRAY_ROOM = "xray_room",
883
+ ULTRASOUND_ROOM = "ultrasound_room",
884
+ DENTAL_OFFICE = "dental_office",
885
+ OPERATING_ROOM = "operating_room",
886
+ RECOVERY_ROOM = "recovery_room",
887
+ MEDICAL_EQUIPMENT = "medical_equipment",
888
+ PHARMACY = "pharmacy",
889
+ CAFETERIA = "cafeteria",
890
+ CHILDREN_AREA = "children_area",
891
+ STAFF = "staff",
892
+ OTHER = "other"
893
+ }
868
894
 
869
895
  declare const CLINIC_GROUPS_COLLECTION = "clinic_groups";
870
896
  declare const CLINIC_ADMINS_COLLECTION = "clinic_admins";
@@ -1160,7 +1186,7 @@ interface Clinic {
1160
1186
  workingHours: WorkingHours;
1161
1187
  tags: ClinicTag[];
1162
1188
  featuredPhotos: string[];
1163
- photos: string[];
1189
+ coverPhoto: string | null;
1164
1190
  photosWithTags?: {
1165
1191
  url: string;
1166
1192
  tag: string;
@@ -1193,7 +1219,7 @@ interface CreateClinicData {
1193
1219
  contactInfo: ClinicContactInfo;
1194
1220
  workingHours: WorkingHours;
1195
1221
  tags: ClinicTag[];
1196
- photos: string[];
1222
+ coverPhoto: string | null;
1197
1223
  photosWithTags?: {
1198
1224
  url: string;
1199
1225
  tag: string;
@@ -1270,7 +1296,7 @@ interface ClinicBranchSetupData {
1270
1296
  workingHours: WorkingHours;
1271
1297
  tags: ClinicTag[];
1272
1298
  logo?: string;
1273
- photos: string[];
1299
+ coverPhoto: string | null;
1274
1300
  photosWithTags?: {
1275
1301
  url: string;
1276
1302
  tag: string;
@@ -8862,7 +8888,7 @@ declare const clinicSchema: z.ZodObject<{
8862
8888
  }>;
8863
8889
  tags: z.ZodArray<z.ZodNativeEnum<typeof ClinicTag>, "many">;
8864
8890
  featuredPhotos: z.ZodArray<z.ZodString, "many">;
8865
- photos: z.ZodArray<z.ZodString, "many">;
8891
+ coverPhoto: z.ZodNullable<z.ZodString>;
8866
8892
  photosWithTags: z.ZodOptional<z.ZodArray<z.ZodObject<{
8867
8893
  url: z.ZodString;
8868
8894
  tag: z.ZodString;
@@ -9074,7 +9100,7 @@ declare const clinicSchema: z.ZodObject<{
9074
9100
  }[] | undefined;
9075
9101
  } | null;
9076
9102
  };
9077
- photos: string[];
9103
+ coverPhoto: string | null;
9078
9104
  services: string[];
9079
9105
  admins: string[];
9080
9106
  featuredPhotos: string[];
@@ -9207,7 +9233,7 @@ declare const clinicSchema: z.ZodObject<{
9207
9233
  }[] | undefined;
9208
9234
  } | null;
9209
9235
  };
9210
- photos: string[];
9236
+ coverPhoto: string | null;
9211
9237
  services: string[];
9212
9238
  admins: string[];
9213
9239
  featuredPhotos: string[];
@@ -9821,7 +9847,7 @@ declare const createClinicSchema: z.ZodObject<{
9821
9847
  } | null;
9822
9848
  }>;
9823
9849
  tags: z.ZodArray<z.ZodNativeEnum<typeof ClinicTag>, "many">;
9824
- photos: z.ZodArray<z.ZodString, "many">;
9850
+ coverPhoto: z.ZodNullable<z.ZodString>;
9825
9851
  photosWithTags: z.ZodOptional<z.ZodArray<z.ZodObject<{
9826
9852
  url: z.ZodString;
9827
9853
  tag: z.ZodString;
@@ -9919,7 +9945,7 @@ declare const createClinicSchema: z.ZodObject<{
9919
9945
  }[] | undefined;
9920
9946
  } | null;
9921
9947
  };
9922
- photos: string[];
9948
+ coverPhoto: string | null;
9923
9949
  services: string[];
9924
9950
  admins: string[];
9925
9951
  description?: string | undefined;
@@ -10009,7 +10035,7 @@ declare const createClinicSchema: z.ZodObject<{
10009
10035
  }[] | undefined;
10010
10036
  } | null;
10011
10037
  };
10012
- photos: string[];
10038
+ coverPhoto: string | null;
10013
10039
  services: string[];
10014
10040
  admins: string[];
10015
10041
  description?: string | undefined;
@@ -10696,7 +10722,7 @@ declare const clinicBranchSetupSchema: z.ZodObject<{
10696
10722
  }>;
10697
10723
  tags: z.ZodArray<z.ZodNativeEnum<typeof ClinicTag>, "many">;
10698
10724
  logo: z.ZodOptional<z.ZodString>;
10699
- photos: z.ZodArray<z.ZodString, "many">;
10725
+ coverPhoto: z.ZodNullable<z.ZodString>;
10700
10726
  photosWithTags: z.ZodOptional<z.ZodArray<z.ZodObject<{
10701
10727
  url: z.ZodString;
10702
10728
  tag: z.ZodString;
@@ -10784,7 +10810,7 @@ declare const clinicBranchSetupSchema: z.ZodObject<{
10784
10810
  }[] | undefined;
10785
10811
  } | null;
10786
10812
  };
10787
- photos: string[];
10813
+ coverPhoto: string | null;
10788
10814
  description?: string | undefined;
10789
10815
  logo?: string | undefined;
10790
10816
  photosWithTags?: {
@@ -10868,7 +10894,7 @@ declare const clinicBranchSetupSchema: z.ZodObject<{
10868
10894
  }[] | undefined;
10869
10895
  } | null;
10870
10896
  };
10871
- photos: string[];
10897
+ coverPhoto: string | null;
10872
10898
  description?: string | undefined;
10873
10899
  logo?: string | undefined;
10874
10900
  photosWithTags?: {
@@ -11440,7 +11466,7 @@ declare const updateClinicSchema: z.ZodObject<{
11440
11466
  } | null;
11441
11467
  }>>;
11442
11468
  tags: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof ClinicTag>, "many">>;
11443
- photos: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11469
+ coverPhoto: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11444
11470
  photosWithTags: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
11445
11471
  url: z.ZodString;
11446
11472
  tag: z.ZodString;
@@ -11540,7 +11566,7 @@ declare const updateClinicSchema: z.ZodObject<{
11540
11566
  }[] | undefined;
11541
11567
  } | null;
11542
11568
  } | undefined;
11543
- photos?: string[] | undefined;
11569
+ coverPhoto?: string | null | undefined;
11544
11570
  photosWithTags?: {
11545
11571
  url: string;
11546
11572
  tag: string;
@@ -11630,7 +11656,7 @@ declare const updateClinicSchema: z.ZodObject<{
11630
11656
  }[] | undefined;
11631
11657
  } | null;
11632
11658
  } | undefined;
11633
- photos?: string[] | undefined;
11659
+ coverPhoto?: string | null | undefined;
11634
11660
  photosWithTags?: {
11635
11661
  url: string;
11636
11662
  tag: string;
@@ -11904,4 +11930,4 @@ interface Technology {
11904
11930
  updatedAt: Date;
11905
11931
  }
11906
11932
 
11907
- 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, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type Category, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, type ClinicReview, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, 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 PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerReview, PractitionerService, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, ProcedureFamily, type Product, type Requirement, type ReviewInfo, type ServiceInfo, type Subcategory, SubscriptionModel, type Technology, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateBlockingConditionData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, 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, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerReviewSchema, practitionerSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, reviewInfoSchema, serviceInfoSchema, timestampSchema, updateAllergySchema, updateBlockingConditionSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
11933
+ 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, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, 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 CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, 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 PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerReview, PractitionerService, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, ProcedureFamily, type Product, type Requirement, type ReviewInfo, type ServiceInfo, type Subcategory, SubscriptionModel, type Technology, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateBlockingConditionData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, 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, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerReviewSchema, practitionerSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, reviewInfoSchema, serviceInfoSchema, timestampSchema, updateAllergySchema, updateBlockingConditionSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ __export(index_exports, {
32
32
  CertificationSpecialty: () => CertificationSpecialty,
33
33
  ClinicAdminService: () => ClinicAdminService,
34
34
  ClinicGroupService: () => ClinicGroupService,
35
+ ClinicPhotoTag: () => ClinicPhotoTag,
35
36
  ClinicService: () => ClinicService,
36
37
  ClinicTag: () => ClinicTag,
37
38
  Contraindication: () => Contraindication,
@@ -2245,6 +2246,29 @@ var ClinicTag = /* @__PURE__ */ ((ClinicTag4) => {
2245
2246
  ClinicTag4["HOLIDAY_HOURS"] = "holiday_hours";
2246
2247
  return ClinicTag4;
2247
2248
  })(ClinicTag || {});
2249
+ var ClinicPhotoTag = /* @__PURE__ */ ((ClinicPhotoTag2) => {
2250
+ ClinicPhotoTag2["BUILDING_EXTERIOR"] = "building_exterior";
2251
+ ClinicPhotoTag2["ENTRANCE"] = "entrance";
2252
+ ClinicPhotoTag2["PARKING"] = "parking";
2253
+ ClinicPhotoTag2["RECEPTION"] = "reception";
2254
+ ClinicPhotoTag2["WAITING_ROOM"] = "waiting_room";
2255
+ ClinicPhotoTag2["HALLWAY"] = "hallway";
2256
+ ClinicPhotoTag2["EXAM_ROOM"] = "exam_room";
2257
+ ClinicPhotoTag2["TREATMENT_ROOM"] = "treatment_room";
2258
+ ClinicPhotoTag2["LABORATORY"] = "laboratory";
2259
+ ClinicPhotoTag2["XRAY_ROOM"] = "xray_room";
2260
+ ClinicPhotoTag2["ULTRASOUND_ROOM"] = "ultrasound_room";
2261
+ ClinicPhotoTag2["DENTAL_OFFICE"] = "dental_office";
2262
+ ClinicPhotoTag2["OPERATING_ROOM"] = "operating_room";
2263
+ ClinicPhotoTag2["RECOVERY_ROOM"] = "recovery_room";
2264
+ ClinicPhotoTag2["MEDICAL_EQUIPMENT"] = "medical_equipment";
2265
+ ClinicPhotoTag2["PHARMACY"] = "pharmacy";
2266
+ ClinicPhotoTag2["CAFETERIA"] = "cafeteria";
2267
+ ClinicPhotoTag2["CHILDREN_AREA"] = "children_area";
2268
+ ClinicPhotoTag2["STAFF"] = "staff";
2269
+ ClinicPhotoTag2["OTHER"] = "other";
2270
+ return ClinicPhotoTag2;
2271
+ })(ClinicPhotoTag || {});
2248
2272
 
2249
2273
  // src/types/clinic/index.ts
2250
2274
  var CLINIC_GROUPS_COLLECTION = "clinic_groups";
@@ -2483,7 +2507,7 @@ var clinicSchema = import_zod9.z.object({
2483
2507
  workingHours: workingHoursSchema,
2484
2508
  tags: import_zod9.z.array(import_zod9.z.nativeEnum(ClinicTag)),
2485
2509
  featuredPhotos: import_zod9.z.array(import_zod9.z.string()),
2486
- photos: import_zod9.z.array(import_zod9.z.string()),
2510
+ coverPhoto: import_zod9.z.string().nullable(),
2487
2511
  photosWithTags: import_zod9.z.array(
2488
2512
  import_zod9.z.object({
2489
2513
  url: import_zod9.z.string(),
@@ -2542,7 +2566,7 @@ var createClinicSchema = import_zod9.z.object({
2542
2566
  contactInfo: clinicContactInfoSchema,
2543
2567
  workingHours: workingHoursSchema,
2544
2568
  tags: import_zod9.z.array(import_zod9.z.nativeEnum(ClinicTag)),
2545
- photos: import_zod9.z.array(import_zod9.z.string()),
2569
+ coverPhoto: import_zod9.z.string().nullable(),
2546
2570
  photosWithTags: import_zod9.z.array(
2547
2571
  import_zod9.z.object({
2548
2572
  url: import_zod9.z.string(),
@@ -2603,7 +2627,7 @@ var clinicBranchSetupSchema = import_zod9.z.object({
2603
2627
  workingHours: workingHoursSchema,
2604
2628
  tags: import_zod9.z.array(import_zod9.z.nativeEnum(ClinicTag)),
2605
2629
  logo: import_zod9.z.string().optional(),
2606
- photos: import_zod9.z.array(import_zod9.z.string()),
2630
+ coverPhoto: import_zod9.z.string().nullable(),
2607
2631
  photosWithTags: import_zod9.z.array(
2608
2632
  import_zod9.z.object({
2609
2633
  url: import_zod9.z.string(),
@@ -4399,25 +4423,23 @@ async function createClinic(db, data, creatorAdminId, clinicGroupService, clinic
4399
4423
  console.error("[CLINIC] Error processing logo:", logoError);
4400
4424
  }
4401
4425
  }
4402
- let processedPhotos = [];
4403
- if (validatedData.photos && validatedData.photos.length > 0) {
4404
- console.log("[CLINIC] Processing regular photos");
4426
+ let processedCoverPhoto = null;
4427
+ if (validatedData.coverPhoto) {
4428
+ console.log("[CLINIC] Processing cover photo");
4405
4429
  try {
4406
- processedPhotos = await uploadMultiplePhotos(
4407
- validatedData.photos,
4430
+ processedCoverPhoto = await uploadPhoto(
4431
+ validatedData.coverPhoto,
4408
4432
  "clinics",
4409
4433
  clinicId,
4410
- "photo",
4434
+ "cover",
4411
4435
  app
4412
4436
  );
4413
- console.log("[CLINIC] Regular photos processed", {
4414
- count: processedPhotos.length
4437
+ console.log("[CLINIC] Cover photo processed", {
4438
+ coverPhoto: processedCoverPhoto
4415
4439
  });
4416
- } catch (photosError) {
4417
- console.error("[CLINIC] Error processing regular photos:", photosError);
4418
- processedPhotos = validatedData.photos.filter(
4419
- (photo) => !photo.startsWith("data:")
4420
- );
4440
+ } catch (coverPhotoError) {
4441
+ console.error("[CLINIC] Error processing cover photo:", coverPhotoError);
4442
+ processedCoverPhoto = validatedData.coverPhoto.startsWith("data:") ? null : validatedData.coverPhoto;
4421
4443
  }
4422
4444
  }
4423
4445
  let processedFeaturedPhotos = [];
@@ -4503,7 +4525,7 @@ async function createClinic(db, data, creatorAdminId, clinicGroupService, clinic
4503
4525
  logo: logoUrl || "",
4504
4526
  tags: validatedData.tags || [],
4505
4527
  featuredPhotos: processedFeaturedPhotos || [],
4506
- photos: processedPhotos || [],
4528
+ coverPhoto: processedCoverPhoto,
4507
4529
  photosWithTags: processedPhotosWithTags,
4508
4530
  doctors: [],
4509
4531
  doctorsInfo: [],
@@ -4658,36 +4680,32 @@ async function updateClinic(db, clinicId, data, adminId, clinicAdminService, app
4658
4680
  console.error("[CLINIC] Error processing logo update:", logoError);
4659
4681
  }
4660
4682
  }
4661
- if (data.photos && data.photos.length > 0) {
4662
- console.log("[CLINIC] Processing regular photos update");
4683
+ if (data.coverPhoto) {
4684
+ console.log("[CLINIC] Processing cover photo update");
4663
4685
  try {
4664
- const dataUrlPhotos = data.photos.filter(
4665
- (photo) => typeof photo === "string" && photo.startsWith("data:")
4666
- );
4667
- const existingPhotos = data.photos.filter(
4668
- (photo) => typeof photo === "string" && !photo.startsWith("data:")
4669
- );
4670
- if (dataUrlPhotos.length > 0) {
4671
- const uploadedPhotos = await uploadMultiplePhotos(
4672
- dataUrlPhotos,
4686
+ if (typeof data.coverPhoto === "string" && data.coverPhoto.startsWith("data:")) {
4687
+ const uploadedPhoto = await uploadPhoto(
4688
+ data.coverPhoto,
4673
4689
  "clinics",
4674
4690
  clinicId,
4675
- "photo",
4691
+ "cover",
4676
4692
  app
4677
4693
  );
4678
- console.log("[CLINIC] Regular photos update processed", {
4679
- count: uploadedPhotos.length
4680
- });
4681
- updatedData.photos = [...existingPhotos, ...uploadedPhotos];
4694
+ if (uploadedPhoto) {
4695
+ updatedData.coverPhoto = uploadedPhoto;
4696
+ }
4697
+ } else {
4698
+ updatedData.coverPhoto = data.coverPhoto;
4682
4699
  }
4683
- } catch (photosError) {
4700
+ console.log("[CLINIC] Cover photo update processed");
4701
+ } catch (photoError) {
4684
4702
  console.error(
4685
- "[CLINIC] Error processing regular photos update:",
4686
- photosError
4687
- );
4688
- updatedData.photos = data.photos.filter(
4689
- (photo) => typeof photo === "string" && !photo.startsWith("data:")
4703
+ "[CLINIC] Error processing cover photo update:",
4704
+ photoError
4690
4705
  );
4706
+ if (typeof data.coverPhoto === "string" && !data.coverPhoto.startsWith("data:")) {
4707
+ updatedData.coverPhoto = data.coverPhoto;
4708
+ }
4691
4709
  }
4692
4710
  }
4693
4711
  if (data.featuredPhotos && data.featuredPhotos.length > 0) {
@@ -4711,6 +4729,8 @@ async function updateClinic(db, clinicId, data, adminId, clinicAdminService, app
4711
4729
  count: uploadedPhotos.length
4712
4730
  });
4713
4731
  updatedData.featuredPhotos = [...existingPhotos, ...uploadedPhotos];
4732
+ } else {
4733
+ updatedData.featuredPhotos = existingPhotos;
4714
4734
  }
4715
4735
  } catch (featuredError) {
4716
4736
  console.error(
@@ -5139,7 +5159,7 @@ var ClinicService = class extends BaseService {
5139
5159
  contactInfo: setupData.contactInfo,
5140
5160
  workingHours: setupData.workingHours,
5141
5161
  tags: setupData.tags,
5142
- photos: setupData.photos || [],
5162
+ coverPhoto: setupData.coverPhoto || null,
5143
5163
  photosWithTags: setupData.photosWithTags || [],
5144
5164
  doctors: [],
5145
5165
  services: [],
@@ -5152,7 +5172,7 @@ var ClinicService = class extends BaseService {
5152
5172
  console.log("[CLINIC_SERVICE] Creating clinic branch with data", {
5153
5173
  name: createClinicData.name,
5154
5174
  hasLogo: !!createClinicData.logo,
5155
- photosCount: createClinicData.photos.length,
5175
+ hasCoverPhoto: !!createClinicData.coverPhoto,
5156
5176
  featuredPhotosCount: ((_a = createClinicData.featuredPhotos) == null ? void 0 : _a.length) || 0,
5157
5177
  photosWithTagsCount: ((_b = createClinicData.photosWithTags) == null ? void 0 : _b.length) || 0
5158
5178
  });
@@ -6415,6 +6435,7 @@ var notificationSchema = import_zod16.z.discriminatedUnion("notificationType", [
6415
6435
  CertificationSpecialty,
6416
6436
  ClinicAdminService,
6417
6437
  ClinicGroupService,
6438
+ ClinicPhotoTag,
6418
6439
  ClinicService,
6419
6440
  ClinicTag,
6420
6441
  Contraindication,
package/dist/index.mjs CHANGED
@@ -2173,6 +2173,29 @@ var ClinicTag = /* @__PURE__ */ ((ClinicTag4) => {
2173
2173
  ClinicTag4["HOLIDAY_HOURS"] = "holiday_hours";
2174
2174
  return ClinicTag4;
2175
2175
  })(ClinicTag || {});
2176
+ var ClinicPhotoTag = /* @__PURE__ */ ((ClinicPhotoTag2) => {
2177
+ ClinicPhotoTag2["BUILDING_EXTERIOR"] = "building_exterior";
2178
+ ClinicPhotoTag2["ENTRANCE"] = "entrance";
2179
+ ClinicPhotoTag2["PARKING"] = "parking";
2180
+ ClinicPhotoTag2["RECEPTION"] = "reception";
2181
+ ClinicPhotoTag2["WAITING_ROOM"] = "waiting_room";
2182
+ ClinicPhotoTag2["HALLWAY"] = "hallway";
2183
+ ClinicPhotoTag2["EXAM_ROOM"] = "exam_room";
2184
+ ClinicPhotoTag2["TREATMENT_ROOM"] = "treatment_room";
2185
+ ClinicPhotoTag2["LABORATORY"] = "laboratory";
2186
+ ClinicPhotoTag2["XRAY_ROOM"] = "xray_room";
2187
+ ClinicPhotoTag2["ULTRASOUND_ROOM"] = "ultrasound_room";
2188
+ ClinicPhotoTag2["DENTAL_OFFICE"] = "dental_office";
2189
+ ClinicPhotoTag2["OPERATING_ROOM"] = "operating_room";
2190
+ ClinicPhotoTag2["RECOVERY_ROOM"] = "recovery_room";
2191
+ ClinicPhotoTag2["MEDICAL_EQUIPMENT"] = "medical_equipment";
2192
+ ClinicPhotoTag2["PHARMACY"] = "pharmacy";
2193
+ ClinicPhotoTag2["CAFETERIA"] = "cafeteria";
2194
+ ClinicPhotoTag2["CHILDREN_AREA"] = "children_area";
2195
+ ClinicPhotoTag2["STAFF"] = "staff";
2196
+ ClinicPhotoTag2["OTHER"] = "other";
2197
+ return ClinicPhotoTag2;
2198
+ })(ClinicPhotoTag || {});
2176
2199
 
2177
2200
  // src/types/clinic/index.ts
2178
2201
  var CLINIC_GROUPS_COLLECTION = "clinic_groups";
@@ -2411,7 +2434,7 @@ var clinicSchema = z9.object({
2411
2434
  workingHours: workingHoursSchema,
2412
2435
  tags: z9.array(z9.nativeEnum(ClinicTag)),
2413
2436
  featuredPhotos: z9.array(z9.string()),
2414
- photos: z9.array(z9.string()),
2437
+ coverPhoto: z9.string().nullable(),
2415
2438
  photosWithTags: z9.array(
2416
2439
  z9.object({
2417
2440
  url: z9.string(),
@@ -2470,7 +2493,7 @@ var createClinicSchema = z9.object({
2470
2493
  contactInfo: clinicContactInfoSchema,
2471
2494
  workingHours: workingHoursSchema,
2472
2495
  tags: z9.array(z9.nativeEnum(ClinicTag)),
2473
- photos: z9.array(z9.string()),
2496
+ coverPhoto: z9.string().nullable(),
2474
2497
  photosWithTags: z9.array(
2475
2498
  z9.object({
2476
2499
  url: z9.string(),
@@ -2531,7 +2554,7 @@ var clinicBranchSetupSchema = z9.object({
2531
2554
  workingHours: workingHoursSchema,
2532
2555
  tags: z9.array(z9.nativeEnum(ClinicTag)),
2533
2556
  logo: z9.string().optional(),
2534
- photos: z9.array(z9.string()),
2557
+ coverPhoto: z9.string().nullable(),
2535
2558
  photosWithTags: z9.array(
2536
2559
  z9.object({
2537
2560
  url: z9.string(),
@@ -4365,25 +4388,23 @@ async function createClinic(db, data, creatorAdminId, clinicGroupService, clinic
4365
4388
  console.error("[CLINIC] Error processing logo:", logoError);
4366
4389
  }
4367
4390
  }
4368
- let processedPhotos = [];
4369
- if (validatedData.photos && validatedData.photos.length > 0) {
4370
- console.log("[CLINIC] Processing regular photos");
4391
+ let processedCoverPhoto = null;
4392
+ if (validatedData.coverPhoto) {
4393
+ console.log("[CLINIC] Processing cover photo");
4371
4394
  try {
4372
- processedPhotos = await uploadMultiplePhotos(
4373
- validatedData.photos,
4395
+ processedCoverPhoto = await uploadPhoto(
4396
+ validatedData.coverPhoto,
4374
4397
  "clinics",
4375
4398
  clinicId,
4376
- "photo",
4399
+ "cover",
4377
4400
  app
4378
4401
  );
4379
- console.log("[CLINIC] Regular photos processed", {
4380
- count: processedPhotos.length
4402
+ console.log("[CLINIC] Cover photo processed", {
4403
+ coverPhoto: processedCoverPhoto
4381
4404
  });
4382
- } catch (photosError) {
4383
- console.error("[CLINIC] Error processing regular photos:", photosError);
4384
- processedPhotos = validatedData.photos.filter(
4385
- (photo) => !photo.startsWith("data:")
4386
- );
4405
+ } catch (coverPhotoError) {
4406
+ console.error("[CLINIC] Error processing cover photo:", coverPhotoError);
4407
+ processedCoverPhoto = validatedData.coverPhoto.startsWith("data:") ? null : validatedData.coverPhoto;
4387
4408
  }
4388
4409
  }
4389
4410
  let processedFeaturedPhotos = [];
@@ -4469,7 +4490,7 @@ async function createClinic(db, data, creatorAdminId, clinicGroupService, clinic
4469
4490
  logo: logoUrl || "",
4470
4491
  tags: validatedData.tags || [],
4471
4492
  featuredPhotos: processedFeaturedPhotos || [],
4472
- photos: processedPhotos || [],
4493
+ coverPhoto: processedCoverPhoto,
4473
4494
  photosWithTags: processedPhotosWithTags,
4474
4495
  doctors: [],
4475
4496
  doctorsInfo: [],
@@ -4624,36 +4645,32 @@ async function updateClinic(db, clinicId, data, adminId, clinicAdminService, app
4624
4645
  console.error("[CLINIC] Error processing logo update:", logoError);
4625
4646
  }
4626
4647
  }
4627
- if (data.photos && data.photos.length > 0) {
4628
- console.log("[CLINIC] Processing regular photos update");
4648
+ if (data.coverPhoto) {
4649
+ console.log("[CLINIC] Processing cover photo update");
4629
4650
  try {
4630
- const dataUrlPhotos = data.photos.filter(
4631
- (photo) => typeof photo === "string" && photo.startsWith("data:")
4632
- );
4633
- const existingPhotos = data.photos.filter(
4634
- (photo) => typeof photo === "string" && !photo.startsWith("data:")
4635
- );
4636
- if (dataUrlPhotos.length > 0) {
4637
- const uploadedPhotos = await uploadMultiplePhotos(
4638
- dataUrlPhotos,
4651
+ if (typeof data.coverPhoto === "string" && data.coverPhoto.startsWith("data:")) {
4652
+ const uploadedPhoto = await uploadPhoto(
4653
+ data.coverPhoto,
4639
4654
  "clinics",
4640
4655
  clinicId,
4641
- "photo",
4656
+ "cover",
4642
4657
  app
4643
4658
  );
4644
- console.log("[CLINIC] Regular photos update processed", {
4645
- count: uploadedPhotos.length
4646
- });
4647
- updatedData.photos = [...existingPhotos, ...uploadedPhotos];
4659
+ if (uploadedPhoto) {
4660
+ updatedData.coverPhoto = uploadedPhoto;
4661
+ }
4662
+ } else {
4663
+ updatedData.coverPhoto = data.coverPhoto;
4648
4664
  }
4649
- } catch (photosError) {
4665
+ console.log("[CLINIC] Cover photo update processed");
4666
+ } catch (photoError) {
4650
4667
  console.error(
4651
- "[CLINIC] Error processing regular photos update:",
4652
- photosError
4653
- );
4654
- updatedData.photos = data.photos.filter(
4655
- (photo) => typeof photo === "string" && !photo.startsWith("data:")
4668
+ "[CLINIC] Error processing cover photo update:",
4669
+ photoError
4656
4670
  );
4671
+ if (typeof data.coverPhoto === "string" && !data.coverPhoto.startsWith("data:")) {
4672
+ updatedData.coverPhoto = data.coverPhoto;
4673
+ }
4657
4674
  }
4658
4675
  }
4659
4676
  if (data.featuredPhotos && data.featuredPhotos.length > 0) {
@@ -4677,6 +4694,8 @@ async function updateClinic(db, clinicId, data, adminId, clinicAdminService, app
4677
4694
  count: uploadedPhotos.length
4678
4695
  });
4679
4696
  updatedData.featuredPhotos = [...existingPhotos, ...uploadedPhotos];
4697
+ } else {
4698
+ updatedData.featuredPhotos = existingPhotos;
4680
4699
  }
4681
4700
  } catch (featuredError) {
4682
4701
  console.error(
@@ -5116,7 +5135,7 @@ var ClinicService = class extends BaseService {
5116
5135
  contactInfo: setupData.contactInfo,
5117
5136
  workingHours: setupData.workingHours,
5118
5137
  tags: setupData.tags,
5119
- photos: setupData.photos || [],
5138
+ coverPhoto: setupData.coverPhoto || null,
5120
5139
  photosWithTags: setupData.photosWithTags || [],
5121
5140
  doctors: [],
5122
5141
  services: [],
@@ -5129,7 +5148,7 @@ var ClinicService = class extends BaseService {
5129
5148
  console.log("[CLINIC_SERVICE] Creating clinic branch with data", {
5130
5149
  name: createClinicData.name,
5131
5150
  hasLogo: !!createClinicData.logo,
5132
- photosCount: createClinicData.photos.length,
5151
+ hasCoverPhoto: !!createClinicData.coverPhoto,
5133
5152
  featuredPhotosCount: ((_a = createClinicData.featuredPhotos) == null ? void 0 : _a.length) || 0,
5134
5153
  photosWithTagsCount: ((_b = createClinicData.photosWithTags) == null ? void 0 : _b.length) || 0
5135
5154
  });
@@ -6429,6 +6448,7 @@ export {
6429
6448
  CertificationSpecialty,
6430
6449
  ClinicAdminService,
6431
6450
  ClinicGroupService,
6451
+ ClinicPhotoTag,
6432
6452
  ClinicService,
6433
6453
  ClinicTag,
6434
6454
  Contraindication,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@blackcode_sa/metaestetics-api",
3
3
  "private": false,
4
- "version": "1.4.16",
4
+ "version": "1.4.18",
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
@@ -154,6 +154,7 @@ export {
154
154
  PracticeType,
155
155
  Language,
156
156
  ClinicTag,
157
+ ClinicPhotoTag,
157
158
  AdminTokenStatus,
158
159
  SubscriptionModel,
159
160
  } from "./types/clinic";
@@ -267,7 +267,7 @@ export class ClinicService extends BaseService {
267
267
  contactInfo: setupData.contactInfo,
268
268
  workingHours: setupData.workingHours,
269
269
  tags: setupData.tags,
270
- photos: setupData.photos || [],
270
+ coverPhoto: setupData.coverPhoto || null,
271
271
  photosWithTags: setupData.photosWithTags || [],
272
272
  doctors: [],
273
273
  services: [],
@@ -281,7 +281,7 @@ export class ClinicService extends BaseService {
281
281
  console.log("[CLINIC_SERVICE] Creating clinic branch with data", {
282
282
  name: createClinicData.name,
283
283
  hasLogo: !!createClinicData.logo,
284
- photosCount: createClinicData.photos.length,
284
+ hasCoverPhoto: !!createClinicData.coverPhoto,
285
285
  featuredPhotosCount: createClinicData.featuredPhotos?.length || 0,
286
286
  photosWithTagsCount: createClinicData.photosWithTags?.length || 0,
287
287
  });
@@ -153,27 +153,27 @@ export async function createClinic(
153
153
  }
154
154
  }
155
155
 
156
- // Handle regular photos upload
157
- let processedPhotos: string[] = [];
158
- if (validatedData.photos && validatedData.photos.length > 0) {
159
- console.log("[CLINIC] Processing regular photos");
156
+ // Handle cover photo upload
157
+ let processedCoverPhoto: string | null = null;
158
+ if (validatedData.coverPhoto) {
159
+ console.log("[CLINIC] Processing cover photo");
160
160
  try {
161
- processedPhotos = await uploadMultiplePhotos(
162
- validatedData.photos,
161
+ processedCoverPhoto = await uploadPhoto(
162
+ validatedData.coverPhoto,
163
163
  "clinics",
164
164
  clinicId,
165
- "photo",
165
+ "cover",
166
166
  app
167
167
  );
168
- console.log("[CLINIC] Regular photos processed", {
169
- count: processedPhotos.length,
168
+ console.log("[CLINIC] Cover photo processed", {
169
+ coverPhoto: processedCoverPhoto,
170
170
  });
171
- } catch (photosError) {
172
- console.error("[CLINIC] Error processing regular photos:", photosError);
173
- // Continue with clinic creation even if photos upload fails
174
- processedPhotos = validatedData.photos.filter(
175
- (photo) => !photo.startsWith("data:")
176
- );
171
+ } catch (coverPhotoError) {
172
+ console.error("[CLINIC] Error processing cover photo:", coverPhotoError);
173
+ // Continue with clinic creation even if cover photo upload fails
174
+ processedCoverPhoto = validatedData.coverPhoto.startsWith("data:")
175
+ ? null
176
+ : validatedData.coverPhoto;
177
177
  }
178
178
  }
179
179
 
@@ -269,7 +269,7 @@ export async function createClinic(
269
269
  logo: logoUrl || "",
270
270
  tags: validatedData.tags || [],
271
271
  featuredPhotos: processedFeaturedPhotos || [],
272
- photos: processedPhotos || [],
272
+ coverPhoto: processedCoverPhoto,
273
273
  photosWithTags: processedPhotosWithTags,
274
274
  doctors: [],
275
275
  doctorsInfo: [],
@@ -443,9 +443,8 @@ export async function updateClinic(
443
443
  }
444
444
 
445
445
  // Check if admin is either:
446
- // 1. The owner of the clinic group, OR
447
- // 2. Has this clinic in their managed clinics list, OR
448
- // 3. Is listed in the clinic's admins array
446
+ // 1. The owner of the clinic group that this clinic belongs to, OR
447
+ // 2. Has this clinic in their managed clinics list AND is listed in the clinic's admins array
449
448
  const hasPermission =
450
449
  (admin.isGroupOwner && admin.clinicGroupId === clinic.clinicGroupId) ||
451
450
  (admin.clinicsManaged.includes(clinicId) &&
@@ -500,42 +499,42 @@ export async function updateClinic(
500
499
  }
501
500
  }
502
501
 
503
- // Handle regular photos update if provided
504
- if (data.photos && data.photos.length > 0) {
505
- console.log("[CLINIC] Processing regular photos update");
502
+ // Handle cover photo update if provided
503
+ if (data.coverPhoto) {
504
+ console.log("[CLINIC] Processing cover photo update");
506
505
  try {
507
- // Filter out only data URLs that need to be uploaded
508
- const dataUrlPhotos = data.photos.filter(
509
- (photo) => typeof photo === "string" && photo.startsWith("data:")
510
- );
511
- const existingPhotos = data.photos.filter(
512
- (photo) => typeof photo === "string" && !photo.startsWith("data:")
513
- );
514
-
515
- if (dataUrlPhotos.length > 0) {
516
- const uploadedPhotos = await uploadMultiplePhotos(
517
- dataUrlPhotos,
506
+ // Check if it's a data URL that needs to be uploaded
507
+ if (
508
+ typeof data.coverPhoto === "string" &&
509
+ data.coverPhoto.startsWith("data:")
510
+ ) {
511
+ const uploadedPhoto = await uploadPhoto(
512
+ data.coverPhoto,
518
513
  "clinics",
519
514
  clinicId,
520
- "photo",
515
+ "cover",
521
516
  app
522
517
  );
523
- console.log("[CLINIC] Regular photos update processed", {
524
- count: uploadedPhotos.length,
525
- });
526
-
527
- // Combine existing photos with newly uploaded ones
528
- updatedData.photos = [...existingPhotos, ...uploadedPhotos];
518
+ if (uploadedPhoto) {
519
+ updatedData.coverPhoto = uploadedPhoto;
520
+ }
521
+ } else {
522
+ // Keep existing photo URL
523
+ updatedData.coverPhoto = data.coverPhoto;
529
524
  }
530
- } catch (photosError) {
525
+ console.log("[CLINIC] Cover photo update processed");
526
+ } catch (photoError) {
531
527
  console.error(
532
- "[CLINIC] Error processing regular photos update:",
533
- photosError
534
- );
535
- // Continue with update even if photos upload fails
536
- updatedData.photos = data.photos.filter(
537
- (photo) => typeof photo === "string" && !photo.startsWith("data:")
528
+ "[CLINIC] Error processing cover photo update:",
529
+ photoError
538
530
  );
531
+ // Keep existing photo if upload fails
532
+ if (
533
+ typeof data.coverPhoto === "string" &&
534
+ !data.coverPhoto.startsWith("data:")
535
+ ) {
536
+ updatedData.coverPhoto = data.coverPhoto;
537
+ }
539
538
  }
540
539
  }
541
540
 
@@ -565,6 +564,9 @@ export async function updateClinic(
565
564
 
566
565
  // Combine existing photos with newly uploaded ones
567
566
  updatedData.featuredPhotos = [...existingPhotos, ...uploadedPhotos];
567
+ } else {
568
+ // If no new photos to upload, just use the existing ones
569
+ updatedData.featuredPhotos = existingPhotos;
568
570
  }
569
571
  } catch (featuredError) {
570
572
  console.error(
@@ -10,7 +10,12 @@ export const CLINIC_GROUPS_COLLECTION = "clinic_groups";
10
10
  export const CLINIC_ADMINS_COLLECTION = "clinic_admins";
11
11
  export const CLINICS_COLLECTION = "clinics";
12
12
 
13
- import { PracticeType, Language, ClinicTag } from "./preferences.types";
13
+ import {
14
+ PracticeType,
15
+ Language,
16
+ ClinicTag,
17
+ ClinicPhotoTag,
18
+ } from "./preferences.types";
14
19
 
15
20
  export * from "./preferences.types";
16
21
 
@@ -303,7 +308,7 @@ export interface Clinic {
303
308
  workingHours: WorkingHours;
304
309
  tags: ClinicTag[];
305
310
  featuredPhotos: string[];
306
- photos: string[];
311
+ coverPhoto: string | null;
307
312
  photosWithTags?: { url: string; tag: string }[];
308
313
  doctors: string[];
309
314
  doctorsInfo: DoctorInfo[];
@@ -334,7 +339,7 @@ export interface CreateClinicData {
334
339
  contactInfo: ClinicContactInfo;
335
340
  workingHours: WorkingHours;
336
341
  tags: ClinicTag[];
337
- photos: string[];
342
+ coverPhoto: string | null;
338
343
  photosWithTags?: { url: string; tag: string }[];
339
344
  doctors: string[];
340
345
  services: string[];
@@ -413,7 +418,7 @@ export interface ClinicBranchSetupData {
413
418
  workingHours: WorkingHours;
414
419
  tags: ClinicTag[];
415
420
  logo?: string;
416
- photos: string[];
421
+ coverPhoto: string | null;
417
422
  photosWithTags?: { url: string; tag: string }[];
418
423
  featuredPhotos?: string[];
419
424
  }
@@ -99,3 +99,43 @@ export enum ClinicTag {
99
99
  NIGHT_SHIFT = "night_shift",
100
100
  HOLIDAY_HOURS = "holiday_hours",
101
101
  }
102
+
103
+ /**
104
+ * Enum for clinic photo tags
105
+ * Used to categorize photos of different areas/parts of the clinic
106
+ */
107
+ export enum ClinicPhotoTag {
108
+ // Exterior
109
+ BUILDING_EXTERIOR = "building_exterior",
110
+ ENTRANCE = "entrance",
111
+ PARKING = "parking",
112
+
113
+ // Interior common areas
114
+ RECEPTION = "reception",
115
+ WAITING_ROOM = "waiting_room",
116
+ HALLWAY = "hallway",
117
+
118
+ // Medical areas
119
+ EXAM_ROOM = "exam_room",
120
+ TREATMENT_ROOM = "treatment_room",
121
+ LABORATORY = "laboratory",
122
+ XRAY_ROOM = "xray_room",
123
+ ULTRASOUND_ROOM = "ultrasound_room",
124
+ DENTAL_OFFICE = "dental_office",
125
+ OPERATING_ROOM = "operating_room",
126
+ RECOVERY_ROOM = "recovery_room",
127
+
128
+ // Equipment
129
+ MEDICAL_EQUIPMENT = "medical_equipment",
130
+
131
+ // Amenities
132
+ PHARMACY = "pharmacy",
133
+ CAFETERIA = "cafeteria",
134
+ CHILDREN_AREA = "children_area",
135
+
136
+ // Staff
137
+ STAFF = "staff",
138
+
139
+ // Other
140
+ OTHER = "other",
141
+ }
@@ -240,7 +240,7 @@ export const clinicSchema = z.object({
240
240
  workingHours: workingHoursSchema,
241
241
  tags: z.array(z.nativeEnum(ClinicTag)),
242
242
  featuredPhotos: z.array(z.string()),
243
- photos: z.array(z.string()),
243
+ coverPhoto: z.string().nullable(),
244
244
  photosWithTags: z
245
245
  .array(
246
246
  z.object({
@@ -316,7 +316,7 @@ export const createClinicSchema = z.object({
316
316
  contactInfo: clinicContactInfoSchema,
317
317
  workingHours: workingHoursSchema,
318
318
  tags: z.array(z.nativeEnum(ClinicTag)),
319
- photos: z.array(z.string()),
319
+ coverPhoto: z.string().nullable(),
320
320
  photosWithTags: z
321
321
  .array(
322
322
  z.object({
@@ -403,7 +403,7 @@ export const clinicBranchSetupSchema = z.object({
403
403
  workingHours: workingHoursSchema,
404
404
  tags: z.array(z.nativeEnum(ClinicTag)),
405
405
  logo: z.string().optional(),
406
- photos: z.array(z.string()),
406
+ coverPhoto: z.string().nullable(),
407
407
  photosWithTags: z
408
408
  .array(
409
409
  z.object({