@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 +42 -16
- package/dist/index.d.ts +42 -16
- package/dist/index.js +62 -41
- package/dist/index.mjs +61 -41
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/services/clinic/clinic.service.ts +2 -2
- package/src/services/clinic/utils/clinic.utils.ts +49 -47
- package/src/types/clinic/index.ts +9 -4
- package/src/types/clinic/preferences.types.ts +40 -0
- package/src/validations/clinic.schema.ts +3 -3
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
4403
|
-
if (validatedData.
|
|
4404
|
-
console.log("[CLINIC] Processing
|
|
4426
|
+
let processedCoverPhoto = null;
|
|
4427
|
+
if (validatedData.coverPhoto) {
|
|
4428
|
+
console.log("[CLINIC] Processing cover photo");
|
|
4405
4429
|
try {
|
|
4406
|
-
|
|
4407
|
-
validatedData.
|
|
4430
|
+
processedCoverPhoto = await uploadPhoto(
|
|
4431
|
+
validatedData.coverPhoto,
|
|
4408
4432
|
"clinics",
|
|
4409
4433
|
clinicId,
|
|
4410
|
-
"
|
|
4434
|
+
"cover",
|
|
4411
4435
|
app
|
|
4412
4436
|
);
|
|
4413
|
-
console.log("[CLINIC]
|
|
4414
|
-
|
|
4437
|
+
console.log("[CLINIC] Cover photo processed", {
|
|
4438
|
+
coverPhoto: processedCoverPhoto
|
|
4415
4439
|
});
|
|
4416
|
-
} catch (
|
|
4417
|
-
console.error("[CLINIC] Error processing
|
|
4418
|
-
|
|
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
|
-
|
|
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.
|
|
4662
|
-
console.log("[CLINIC] Processing
|
|
4683
|
+
if (data.coverPhoto) {
|
|
4684
|
+
console.log("[CLINIC] Processing cover photo update");
|
|
4663
4685
|
try {
|
|
4664
|
-
|
|
4665
|
-
|
|
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
|
-
"
|
|
4691
|
+
"cover",
|
|
4676
4692
|
app
|
|
4677
4693
|
);
|
|
4678
|
-
|
|
4679
|
-
|
|
4680
|
-
}
|
|
4681
|
-
|
|
4694
|
+
if (uploadedPhoto) {
|
|
4695
|
+
updatedData.coverPhoto = uploadedPhoto;
|
|
4696
|
+
}
|
|
4697
|
+
} else {
|
|
4698
|
+
updatedData.coverPhoto = data.coverPhoto;
|
|
4682
4699
|
}
|
|
4683
|
-
|
|
4700
|
+
console.log("[CLINIC] Cover photo update processed");
|
|
4701
|
+
} catch (photoError) {
|
|
4684
4702
|
console.error(
|
|
4685
|
-
"[CLINIC] Error processing
|
|
4686
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
4369
|
-
if (validatedData.
|
|
4370
|
-
console.log("[CLINIC] Processing
|
|
4391
|
+
let processedCoverPhoto = null;
|
|
4392
|
+
if (validatedData.coverPhoto) {
|
|
4393
|
+
console.log("[CLINIC] Processing cover photo");
|
|
4371
4394
|
try {
|
|
4372
|
-
|
|
4373
|
-
validatedData.
|
|
4395
|
+
processedCoverPhoto = await uploadPhoto(
|
|
4396
|
+
validatedData.coverPhoto,
|
|
4374
4397
|
"clinics",
|
|
4375
4398
|
clinicId,
|
|
4376
|
-
"
|
|
4399
|
+
"cover",
|
|
4377
4400
|
app
|
|
4378
4401
|
);
|
|
4379
|
-
console.log("[CLINIC]
|
|
4380
|
-
|
|
4402
|
+
console.log("[CLINIC] Cover photo processed", {
|
|
4403
|
+
coverPhoto: processedCoverPhoto
|
|
4381
4404
|
});
|
|
4382
|
-
} catch (
|
|
4383
|
-
console.error("[CLINIC] Error processing
|
|
4384
|
-
|
|
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
|
-
|
|
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.
|
|
4628
|
-
console.log("[CLINIC] Processing
|
|
4648
|
+
if (data.coverPhoto) {
|
|
4649
|
+
console.log("[CLINIC] Processing cover photo update");
|
|
4629
4650
|
try {
|
|
4630
|
-
|
|
4631
|
-
|
|
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
|
-
"
|
|
4656
|
+
"cover",
|
|
4642
4657
|
app
|
|
4643
4658
|
);
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
}
|
|
4647
|
-
|
|
4659
|
+
if (uploadedPhoto) {
|
|
4660
|
+
updatedData.coverPhoto = uploadedPhoto;
|
|
4661
|
+
}
|
|
4662
|
+
} else {
|
|
4663
|
+
updatedData.coverPhoto = data.coverPhoto;
|
|
4648
4664
|
}
|
|
4649
|
-
|
|
4665
|
+
console.log("[CLINIC] Cover photo update processed");
|
|
4666
|
+
} catch (photoError) {
|
|
4650
4667
|
console.error(
|
|
4651
|
-
"[CLINIC] Error processing
|
|
4652
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
package/src/index.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
157
|
-
let
|
|
158
|
-
if (validatedData.
|
|
159
|
-
console.log("[CLINIC] Processing
|
|
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
|
-
|
|
162
|
-
validatedData.
|
|
161
|
+
processedCoverPhoto = await uploadPhoto(
|
|
162
|
+
validatedData.coverPhoto,
|
|
163
163
|
"clinics",
|
|
164
164
|
clinicId,
|
|
165
|
-
"
|
|
165
|
+
"cover",
|
|
166
166
|
app
|
|
167
167
|
);
|
|
168
|
-
console.log("[CLINIC]
|
|
169
|
-
|
|
168
|
+
console.log("[CLINIC] Cover photo processed", {
|
|
169
|
+
coverPhoto: processedCoverPhoto,
|
|
170
170
|
});
|
|
171
|
-
} catch (
|
|
172
|
-
console.error("[CLINIC] Error processing
|
|
173
|
-
// Continue with clinic creation even if
|
|
174
|
-
|
|
175
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
504
|
-
if (data.
|
|
505
|
-
console.log("[CLINIC] Processing
|
|
502
|
+
// Handle cover photo update if provided
|
|
503
|
+
if (data.coverPhoto) {
|
|
504
|
+
console.log("[CLINIC] Processing cover photo update");
|
|
506
505
|
try {
|
|
507
|
-
//
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
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
|
-
"
|
|
515
|
+
"cover",
|
|
521
516
|
app
|
|
522
517
|
);
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
//
|
|
528
|
-
updatedData.
|
|
518
|
+
if (uploadedPhoto) {
|
|
519
|
+
updatedData.coverPhoto = uploadedPhoto;
|
|
520
|
+
}
|
|
521
|
+
} else {
|
|
522
|
+
// Keep existing photo URL
|
|
523
|
+
updatedData.coverPhoto = data.coverPhoto;
|
|
529
524
|
}
|
|
530
|
-
|
|
525
|
+
console.log("[CLINIC] Cover photo update processed");
|
|
526
|
+
} catch (photoError) {
|
|
531
527
|
console.error(
|
|
532
|
-
"[CLINIC] Error processing
|
|
533
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
406
|
+
coverPhoto: z.string().nullable(),
|
|
407
407
|
photosWithTags: z
|
|
408
408
|
.array(
|
|
409
409
|
z.object({
|