@blackcode_sa/metaestetics-api 1.13.10 → 1.13.11
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/admin/index.d.mts +127 -125
- package/dist/admin/index.d.ts +127 -125
- package/dist/backoffice/index.d.mts +23 -23
- package/dist/backoffice/index.d.ts +23 -23
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +11 -3
- package/dist/index.mjs +11 -3
- package/package.json +1 -1
- package/src/services/procedure/procedure.service.ts +6 -0
- package/src/types/clinic/index.ts +3 -0
package/dist/admin/index.d.mts
CHANGED
|
@@ -843,6 +843,131 @@ interface ProcedureSummaryInfo {
|
|
|
843
843
|
practitionerName: string;
|
|
844
844
|
}
|
|
845
845
|
|
|
846
|
+
/**
|
|
847
|
+
* Osnovne informacije o zdravstvenom radniku
|
|
848
|
+
*/
|
|
849
|
+
interface PractitionerBasicInfo {
|
|
850
|
+
firstName: string;
|
|
851
|
+
lastName: string;
|
|
852
|
+
title: string;
|
|
853
|
+
email: string;
|
|
854
|
+
phoneNumber: string | null;
|
|
855
|
+
dateOfBirth: Timestamp | Date | null;
|
|
856
|
+
gender: "male" | "female" | "other";
|
|
857
|
+
profileImageUrl?: MediaResource | null;
|
|
858
|
+
bio?: string;
|
|
859
|
+
languages: string[];
|
|
860
|
+
}
|
|
861
|
+
/**
|
|
862
|
+
* Sertifikacija zdravstvenog radnika
|
|
863
|
+
*/
|
|
864
|
+
interface PractitionerCertification {
|
|
865
|
+
level: CertificationLevel;
|
|
866
|
+
specialties: CertificationSpecialty[];
|
|
867
|
+
licenseNumber: string;
|
|
868
|
+
issuingAuthority: string;
|
|
869
|
+
issueDate: Timestamp | Date;
|
|
870
|
+
expiryDate?: Timestamp | Date | null;
|
|
871
|
+
verificationStatus: "pending" | "verified" | "rejected";
|
|
872
|
+
}
|
|
873
|
+
/**
|
|
874
|
+
* Interfejs za radno vreme zdravstvenog radnika u klinici
|
|
875
|
+
*/
|
|
876
|
+
interface PractitionerClinicWorkingHours {
|
|
877
|
+
clinicId: string;
|
|
878
|
+
workingHours: {
|
|
879
|
+
monday: {
|
|
880
|
+
start: string;
|
|
881
|
+
end: string;
|
|
882
|
+
} | null;
|
|
883
|
+
tuesday: {
|
|
884
|
+
start: string;
|
|
885
|
+
end: string;
|
|
886
|
+
} | null;
|
|
887
|
+
wednesday: {
|
|
888
|
+
start: string;
|
|
889
|
+
end: string;
|
|
890
|
+
} | null;
|
|
891
|
+
thursday: {
|
|
892
|
+
start: string;
|
|
893
|
+
end: string;
|
|
894
|
+
} | null;
|
|
895
|
+
friday: {
|
|
896
|
+
start: string;
|
|
897
|
+
end: string;
|
|
898
|
+
} | null;
|
|
899
|
+
saturday: {
|
|
900
|
+
start: string;
|
|
901
|
+
end: string;
|
|
902
|
+
} | null;
|
|
903
|
+
sunday: {
|
|
904
|
+
start: string;
|
|
905
|
+
end: string;
|
|
906
|
+
} | null;
|
|
907
|
+
};
|
|
908
|
+
isActive: boolean;
|
|
909
|
+
createdAt: Timestamp | Date;
|
|
910
|
+
updatedAt: Timestamp | Date;
|
|
911
|
+
}
|
|
912
|
+
/**
|
|
913
|
+
* Status of practitioner profile
|
|
914
|
+
*/
|
|
915
|
+
declare enum PractitionerStatus {
|
|
916
|
+
DRAFT = "draft",
|
|
917
|
+
ACTIVE = "active"
|
|
918
|
+
}
|
|
919
|
+
/**
|
|
920
|
+
* Token status for practitioner invitations
|
|
921
|
+
*/
|
|
922
|
+
declare enum PractitionerTokenStatus {
|
|
923
|
+
ACTIVE = "active",
|
|
924
|
+
USED = "used",
|
|
925
|
+
EXPIRED = "expired",
|
|
926
|
+
REVOKED = "revoked"
|
|
927
|
+
}
|
|
928
|
+
/**
|
|
929
|
+
* Interfejs za zdravstvenog radnika
|
|
930
|
+
*/
|
|
931
|
+
interface Practitioner {
|
|
932
|
+
id: string;
|
|
933
|
+
userRef: string;
|
|
934
|
+
basicInfo: PractitionerBasicInfo;
|
|
935
|
+
fullNameLower: string;
|
|
936
|
+
certification: PractitionerCertification;
|
|
937
|
+
clinics: string[];
|
|
938
|
+
clinicWorkingHours: PractitionerClinicWorkingHours[];
|
|
939
|
+
clinicsInfo: ClinicInfo[];
|
|
940
|
+
procedures: string[];
|
|
941
|
+
freeConsultations?: Record<string, string> | null;
|
|
942
|
+
proceduresInfo: ProcedureSummaryInfo[];
|
|
943
|
+
reviewInfo: PractitionerReviewInfo;
|
|
944
|
+
isActive: boolean;
|
|
945
|
+
isVerified: boolean;
|
|
946
|
+
status: PractitionerStatus;
|
|
947
|
+
createdAt: Timestamp;
|
|
948
|
+
updatedAt: Timestamp;
|
|
949
|
+
}
|
|
950
|
+
/**
|
|
951
|
+
* Token za pozivanje zdravstvenog radnika
|
|
952
|
+
*/
|
|
953
|
+
interface PractitionerToken {
|
|
954
|
+
id: string;
|
|
955
|
+
token: string;
|
|
956
|
+
practitionerId: string;
|
|
957
|
+
email: string;
|
|
958
|
+
clinicId: string;
|
|
959
|
+
status: PractitionerTokenStatus;
|
|
960
|
+
createdBy: string;
|
|
961
|
+
createdAt: Timestamp;
|
|
962
|
+
expiresAt: Timestamp;
|
|
963
|
+
usedBy?: string;
|
|
964
|
+
usedAt?: Timestamp;
|
|
965
|
+
emailSent?: boolean;
|
|
966
|
+
emailSentAt?: Timestamp;
|
|
967
|
+
emailError?: string;
|
|
968
|
+
emailErrorAt?: Timestamp;
|
|
969
|
+
}
|
|
970
|
+
|
|
846
971
|
/**
|
|
847
972
|
* Enum for all possible clinic tags
|
|
848
973
|
*/
|
|
@@ -1141,6 +1266,8 @@ interface DoctorInfo {
|
|
|
1141
1266
|
photo: string | null;
|
|
1142
1267
|
rating: number;
|
|
1143
1268
|
services: string[];
|
|
1269
|
+
status?: PractitionerStatus;
|
|
1270
|
+
isActive?: boolean;
|
|
1144
1271
|
}
|
|
1145
1272
|
/**
|
|
1146
1273
|
* Interface for clinic
|
|
@@ -1174,131 +1301,6 @@ interface Clinic {
|
|
|
1174
1301
|
logo?: MediaResource | null;
|
|
1175
1302
|
}
|
|
1176
1303
|
|
|
1177
|
-
/**
|
|
1178
|
-
* Osnovne informacije o zdravstvenom radniku
|
|
1179
|
-
*/
|
|
1180
|
-
interface PractitionerBasicInfo {
|
|
1181
|
-
firstName: string;
|
|
1182
|
-
lastName: string;
|
|
1183
|
-
title: string;
|
|
1184
|
-
email: string;
|
|
1185
|
-
phoneNumber: string | null;
|
|
1186
|
-
dateOfBirth: Timestamp | Date | null;
|
|
1187
|
-
gender: "male" | "female" | "other";
|
|
1188
|
-
profileImageUrl?: MediaResource | null;
|
|
1189
|
-
bio?: string;
|
|
1190
|
-
languages: string[];
|
|
1191
|
-
}
|
|
1192
|
-
/**
|
|
1193
|
-
* Sertifikacija zdravstvenog radnika
|
|
1194
|
-
*/
|
|
1195
|
-
interface PractitionerCertification {
|
|
1196
|
-
level: CertificationLevel;
|
|
1197
|
-
specialties: CertificationSpecialty[];
|
|
1198
|
-
licenseNumber: string;
|
|
1199
|
-
issuingAuthority: string;
|
|
1200
|
-
issueDate: Timestamp | Date;
|
|
1201
|
-
expiryDate?: Timestamp | Date | null;
|
|
1202
|
-
verificationStatus: "pending" | "verified" | "rejected";
|
|
1203
|
-
}
|
|
1204
|
-
/**
|
|
1205
|
-
* Interfejs za radno vreme zdravstvenog radnika u klinici
|
|
1206
|
-
*/
|
|
1207
|
-
interface PractitionerClinicWorkingHours {
|
|
1208
|
-
clinicId: string;
|
|
1209
|
-
workingHours: {
|
|
1210
|
-
monday: {
|
|
1211
|
-
start: string;
|
|
1212
|
-
end: string;
|
|
1213
|
-
} | null;
|
|
1214
|
-
tuesday: {
|
|
1215
|
-
start: string;
|
|
1216
|
-
end: string;
|
|
1217
|
-
} | null;
|
|
1218
|
-
wednesday: {
|
|
1219
|
-
start: string;
|
|
1220
|
-
end: string;
|
|
1221
|
-
} | null;
|
|
1222
|
-
thursday: {
|
|
1223
|
-
start: string;
|
|
1224
|
-
end: string;
|
|
1225
|
-
} | null;
|
|
1226
|
-
friday: {
|
|
1227
|
-
start: string;
|
|
1228
|
-
end: string;
|
|
1229
|
-
} | null;
|
|
1230
|
-
saturday: {
|
|
1231
|
-
start: string;
|
|
1232
|
-
end: string;
|
|
1233
|
-
} | null;
|
|
1234
|
-
sunday: {
|
|
1235
|
-
start: string;
|
|
1236
|
-
end: string;
|
|
1237
|
-
} | null;
|
|
1238
|
-
};
|
|
1239
|
-
isActive: boolean;
|
|
1240
|
-
createdAt: Timestamp | Date;
|
|
1241
|
-
updatedAt: Timestamp | Date;
|
|
1242
|
-
}
|
|
1243
|
-
/**
|
|
1244
|
-
* Status of practitioner profile
|
|
1245
|
-
*/
|
|
1246
|
-
declare enum PractitionerStatus {
|
|
1247
|
-
DRAFT = "draft",
|
|
1248
|
-
ACTIVE = "active"
|
|
1249
|
-
}
|
|
1250
|
-
/**
|
|
1251
|
-
* Token status for practitioner invitations
|
|
1252
|
-
*/
|
|
1253
|
-
declare enum PractitionerTokenStatus {
|
|
1254
|
-
ACTIVE = "active",
|
|
1255
|
-
USED = "used",
|
|
1256
|
-
EXPIRED = "expired",
|
|
1257
|
-
REVOKED = "revoked"
|
|
1258
|
-
}
|
|
1259
|
-
/**
|
|
1260
|
-
* Interfejs za zdravstvenog radnika
|
|
1261
|
-
*/
|
|
1262
|
-
interface Practitioner {
|
|
1263
|
-
id: string;
|
|
1264
|
-
userRef: string;
|
|
1265
|
-
basicInfo: PractitionerBasicInfo;
|
|
1266
|
-
fullNameLower: string;
|
|
1267
|
-
certification: PractitionerCertification;
|
|
1268
|
-
clinics: string[];
|
|
1269
|
-
clinicWorkingHours: PractitionerClinicWorkingHours[];
|
|
1270
|
-
clinicsInfo: ClinicInfo[];
|
|
1271
|
-
procedures: string[];
|
|
1272
|
-
freeConsultations?: Record<string, string> | null;
|
|
1273
|
-
proceduresInfo: ProcedureSummaryInfo[];
|
|
1274
|
-
reviewInfo: PractitionerReviewInfo;
|
|
1275
|
-
isActive: boolean;
|
|
1276
|
-
isVerified: boolean;
|
|
1277
|
-
status: PractitionerStatus;
|
|
1278
|
-
createdAt: Timestamp;
|
|
1279
|
-
updatedAt: Timestamp;
|
|
1280
|
-
}
|
|
1281
|
-
/**
|
|
1282
|
-
* Token za pozivanje zdravstvenog radnika
|
|
1283
|
-
*/
|
|
1284
|
-
interface PractitionerToken {
|
|
1285
|
-
id: string;
|
|
1286
|
-
token: string;
|
|
1287
|
-
practitionerId: string;
|
|
1288
|
-
email: string;
|
|
1289
|
-
clinicId: string;
|
|
1290
|
-
status: PractitionerTokenStatus;
|
|
1291
|
-
createdBy: string;
|
|
1292
|
-
createdAt: Timestamp;
|
|
1293
|
-
expiresAt: Timestamp;
|
|
1294
|
-
usedBy?: string;
|
|
1295
|
-
usedAt?: Timestamp;
|
|
1296
|
-
emailSent?: boolean;
|
|
1297
|
-
emailSentAt?: Timestamp;
|
|
1298
|
-
emailError?: string;
|
|
1299
|
-
emailErrorAt?: Timestamp;
|
|
1300
|
-
}
|
|
1301
|
-
|
|
1302
1304
|
declare enum AllergyType {
|
|
1303
1305
|
MEDICATION = "medication",
|
|
1304
1306
|
FOOD = "food",
|
package/dist/admin/index.d.ts
CHANGED
|
@@ -843,6 +843,131 @@ interface ProcedureSummaryInfo {
|
|
|
843
843
|
practitionerName: string;
|
|
844
844
|
}
|
|
845
845
|
|
|
846
|
+
/**
|
|
847
|
+
* Osnovne informacije o zdravstvenom radniku
|
|
848
|
+
*/
|
|
849
|
+
interface PractitionerBasicInfo {
|
|
850
|
+
firstName: string;
|
|
851
|
+
lastName: string;
|
|
852
|
+
title: string;
|
|
853
|
+
email: string;
|
|
854
|
+
phoneNumber: string | null;
|
|
855
|
+
dateOfBirth: Timestamp | Date | null;
|
|
856
|
+
gender: "male" | "female" | "other";
|
|
857
|
+
profileImageUrl?: MediaResource | null;
|
|
858
|
+
bio?: string;
|
|
859
|
+
languages: string[];
|
|
860
|
+
}
|
|
861
|
+
/**
|
|
862
|
+
* Sertifikacija zdravstvenog radnika
|
|
863
|
+
*/
|
|
864
|
+
interface PractitionerCertification {
|
|
865
|
+
level: CertificationLevel;
|
|
866
|
+
specialties: CertificationSpecialty[];
|
|
867
|
+
licenseNumber: string;
|
|
868
|
+
issuingAuthority: string;
|
|
869
|
+
issueDate: Timestamp | Date;
|
|
870
|
+
expiryDate?: Timestamp | Date | null;
|
|
871
|
+
verificationStatus: "pending" | "verified" | "rejected";
|
|
872
|
+
}
|
|
873
|
+
/**
|
|
874
|
+
* Interfejs za radno vreme zdravstvenog radnika u klinici
|
|
875
|
+
*/
|
|
876
|
+
interface PractitionerClinicWorkingHours {
|
|
877
|
+
clinicId: string;
|
|
878
|
+
workingHours: {
|
|
879
|
+
monday: {
|
|
880
|
+
start: string;
|
|
881
|
+
end: string;
|
|
882
|
+
} | null;
|
|
883
|
+
tuesday: {
|
|
884
|
+
start: string;
|
|
885
|
+
end: string;
|
|
886
|
+
} | null;
|
|
887
|
+
wednesday: {
|
|
888
|
+
start: string;
|
|
889
|
+
end: string;
|
|
890
|
+
} | null;
|
|
891
|
+
thursday: {
|
|
892
|
+
start: string;
|
|
893
|
+
end: string;
|
|
894
|
+
} | null;
|
|
895
|
+
friday: {
|
|
896
|
+
start: string;
|
|
897
|
+
end: string;
|
|
898
|
+
} | null;
|
|
899
|
+
saturday: {
|
|
900
|
+
start: string;
|
|
901
|
+
end: string;
|
|
902
|
+
} | null;
|
|
903
|
+
sunday: {
|
|
904
|
+
start: string;
|
|
905
|
+
end: string;
|
|
906
|
+
} | null;
|
|
907
|
+
};
|
|
908
|
+
isActive: boolean;
|
|
909
|
+
createdAt: Timestamp | Date;
|
|
910
|
+
updatedAt: Timestamp | Date;
|
|
911
|
+
}
|
|
912
|
+
/**
|
|
913
|
+
* Status of practitioner profile
|
|
914
|
+
*/
|
|
915
|
+
declare enum PractitionerStatus {
|
|
916
|
+
DRAFT = "draft",
|
|
917
|
+
ACTIVE = "active"
|
|
918
|
+
}
|
|
919
|
+
/**
|
|
920
|
+
* Token status for practitioner invitations
|
|
921
|
+
*/
|
|
922
|
+
declare enum PractitionerTokenStatus {
|
|
923
|
+
ACTIVE = "active",
|
|
924
|
+
USED = "used",
|
|
925
|
+
EXPIRED = "expired",
|
|
926
|
+
REVOKED = "revoked"
|
|
927
|
+
}
|
|
928
|
+
/**
|
|
929
|
+
* Interfejs za zdravstvenog radnika
|
|
930
|
+
*/
|
|
931
|
+
interface Practitioner {
|
|
932
|
+
id: string;
|
|
933
|
+
userRef: string;
|
|
934
|
+
basicInfo: PractitionerBasicInfo;
|
|
935
|
+
fullNameLower: string;
|
|
936
|
+
certification: PractitionerCertification;
|
|
937
|
+
clinics: string[];
|
|
938
|
+
clinicWorkingHours: PractitionerClinicWorkingHours[];
|
|
939
|
+
clinicsInfo: ClinicInfo[];
|
|
940
|
+
procedures: string[];
|
|
941
|
+
freeConsultations?: Record<string, string> | null;
|
|
942
|
+
proceduresInfo: ProcedureSummaryInfo[];
|
|
943
|
+
reviewInfo: PractitionerReviewInfo;
|
|
944
|
+
isActive: boolean;
|
|
945
|
+
isVerified: boolean;
|
|
946
|
+
status: PractitionerStatus;
|
|
947
|
+
createdAt: Timestamp;
|
|
948
|
+
updatedAt: Timestamp;
|
|
949
|
+
}
|
|
950
|
+
/**
|
|
951
|
+
* Token za pozivanje zdravstvenog radnika
|
|
952
|
+
*/
|
|
953
|
+
interface PractitionerToken {
|
|
954
|
+
id: string;
|
|
955
|
+
token: string;
|
|
956
|
+
practitionerId: string;
|
|
957
|
+
email: string;
|
|
958
|
+
clinicId: string;
|
|
959
|
+
status: PractitionerTokenStatus;
|
|
960
|
+
createdBy: string;
|
|
961
|
+
createdAt: Timestamp;
|
|
962
|
+
expiresAt: Timestamp;
|
|
963
|
+
usedBy?: string;
|
|
964
|
+
usedAt?: Timestamp;
|
|
965
|
+
emailSent?: boolean;
|
|
966
|
+
emailSentAt?: Timestamp;
|
|
967
|
+
emailError?: string;
|
|
968
|
+
emailErrorAt?: Timestamp;
|
|
969
|
+
}
|
|
970
|
+
|
|
846
971
|
/**
|
|
847
972
|
* Enum for all possible clinic tags
|
|
848
973
|
*/
|
|
@@ -1141,6 +1266,8 @@ interface DoctorInfo {
|
|
|
1141
1266
|
photo: string | null;
|
|
1142
1267
|
rating: number;
|
|
1143
1268
|
services: string[];
|
|
1269
|
+
status?: PractitionerStatus;
|
|
1270
|
+
isActive?: boolean;
|
|
1144
1271
|
}
|
|
1145
1272
|
/**
|
|
1146
1273
|
* Interface for clinic
|
|
@@ -1174,131 +1301,6 @@ interface Clinic {
|
|
|
1174
1301
|
logo?: MediaResource | null;
|
|
1175
1302
|
}
|
|
1176
1303
|
|
|
1177
|
-
/**
|
|
1178
|
-
* Osnovne informacije o zdravstvenom radniku
|
|
1179
|
-
*/
|
|
1180
|
-
interface PractitionerBasicInfo {
|
|
1181
|
-
firstName: string;
|
|
1182
|
-
lastName: string;
|
|
1183
|
-
title: string;
|
|
1184
|
-
email: string;
|
|
1185
|
-
phoneNumber: string | null;
|
|
1186
|
-
dateOfBirth: Timestamp | Date | null;
|
|
1187
|
-
gender: "male" | "female" | "other";
|
|
1188
|
-
profileImageUrl?: MediaResource | null;
|
|
1189
|
-
bio?: string;
|
|
1190
|
-
languages: string[];
|
|
1191
|
-
}
|
|
1192
|
-
/**
|
|
1193
|
-
* Sertifikacija zdravstvenog radnika
|
|
1194
|
-
*/
|
|
1195
|
-
interface PractitionerCertification {
|
|
1196
|
-
level: CertificationLevel;
|
|
1197
|
-
specialties: CertificationSpecialty[];
|
|
1198
|
-
licenseNumber: string;
|
|
1199
|
-
issuingAuthority: string;
|
|
1200
|
-
issueDate: Timestamp | Date;
|
|
1201
|
-
expiryDate?: Timestamp | Date | null;
|
|
1202
|
-
verificationStatus: "pending" | "verified" | "rejected";
|
|
1203
|
-
}
|
|
1204
|
-
/**
|
|
1205
|
-
* Interfejs za radno vreme zdravstvenog radnika u klinici
|
|
1206
|
-
*/
|
|
1207
|
-
interface PractitionerClinicWorkingHours {
|
|
1208
|
-
clinicId: string;
|
|
1209
|
-
workingHours: {
|
|
1210
|
-
monday: {
|
|
1211
|
-
start: string;
|
|
1212
|
-
end: string;
|
|
1213
|
-
} | null;
|
|
1214
|
-
tuesday: {
|
|
1215
|
-
start: string;
|
|
1216
|
-
end: string;
|
|
1217
|
-
} | null;
|
|
1218
|
-
wednesday: {
|
|
1219
|
-
start: string;
|
|
1220
|
-
end: string;
|
|
1221
|
-
} | null;
|
|
1222
|
-
thursday: {
|
|
1223
|
-
start: string;
|
|
1224
|
-
end: string;
|
|
1225
|
-
} | null;
|
|
1226
|
-
friday: {
|
|
1227
|
-
start: string;
|
|
1228
|
-
end: string;
|
|
1229
|
-
} | null;
|
|
1230
|
-
saturday: {
|
|
1231
|
-
start: string;
|
|
1232
|
-
end: string;
|
|
1233
|
-
} | null;
|
|
1234
|
-
sunday: {
|
|
1235
|
-
start: string;
|
|
1236
|
-
end: string;
|
|
1237
|
-
} | null;
|
|
1238
|
-
};
|
|
1239
|
-
isActive: boolean;
|
|
1240
|
-
createdAt: Timestamp | Date;
|
|
1241
|
-
updatedAt: Timestamp | Date;
|
|
1242
|
-
}
|
|
1243
|
-
/**
|
|
1244
|
-
* Status of practitioner profile
|
|
1245
|
-
*/
|
|
1246
|
-
declare enum PractitionerStatus {
|
|
1247
|
-
DRAFT = "draft",
|
|
1248
|
-
ACTIVE = "active"
|
|
1249
|
-
}
|
|
1250
|
-
/**
|
|
1251
|
-
* Token status for practitioner invitations
|
|
1252
|
-
*/
|
|
1253
|
-
declare enum PractitionerTokenStatus {
|
|
1254
|
-
ACTIVE = "active",
|
|
1255
|
-
USED = "used",
|
|
1256
|
-
EXPIRED = "expired",
|
|
1257
|
-
REVOKED = "revoked"
|
|
1258
|
-
}
|
|
1259
|
-
/**
|
|
1260
|
-
* Interfejs za zdravstvenog radnika
|
|
1261
|
-
*/
|
|
1262
|
-
interface Practitioner {
|
|
1263
|
-
id: string;
|
|
1264
|
-
userRef: string;
|
|
1265
|
-
basicInfo: PractitionerBasicInfo;
|
|
1266
|
-
fullNameLower: string;
|
|
1267
|
-
certification: PractitionerCertification;
|
|
1268
|
-
clinics: string[];
|
|
1269
|
-
clinicWorkingHours: PractitionerClinicWorkingHours[];
|
|
1270
|
-
clinicsInfo: ClinicInfo[];
|
|
1271
|
-
procedures: string[];
|
|
1272
|
-
freeConsultations?: Record<string, string> | null;
|
|
1273
|
-
proceduresInfo: ProcedureSummaryInfo[];
|
|
1274
|
-
reviewInfo: PractitionerReviewInfo;
|
|
1275
|
-
isActive: boolean;
|
|
1276
|
-
isVerified: boolean;
|
|
1277
|
-
status: PractitionerStatus;
|
|
1278
|
-
createdAt: Timestamp;
|
|
1279
|
-
updatedAt: Timestamp;
|
|
1280
|
-
}
|
|
1281
|
-
/**
|
|
1282
|
-
* Token za pozivanje zdravstvenog radnika
|
|
1283
|
-
*/
|
|
1284
|
-
interface PractitionerToken {
|
|
1285
|
-
id: string;
|
|
1286
|
-
token: string;
|
|
1287
|
-
practitionerId: string;
|
|
1288
|
-
email: string;
|
|
1289
|
-
clinicId: string;
|
|
1290
|
-
status: PractitionerTokenStatus;
|
|
1291
|
-
createdBy: string;
|
|
1292
|
-
createdAt: Timestamp;
|
|
1293
|
-
expiresAt: Timestamp;
|
|
1294
|
-
usedBy?: string;
|
|
1295
|
-
usedAt?: Timestamp;
|
|
1296
|
-
emailSent?: boolean;
|
|
1297
|
-
emailSentAt?: Timestamp;
|
|
1298
|
-
emailError?: string;
|
|
1299
|
-
emailErrorAt?: Timestamp;
|
|
1300
|
-
}
|
|
1301
|
-
|
|
1302
1304
|
declare enum AllergyType {
|
|
1303
1305
|
MEDICATION = "medication",
|
|
1304
1306
|
FOOD = "food",
|
|
@@ -1307,29 +1307,6 @@ interface ProcedureSummaryInfo {
|
|
|
1307
1307
|
practitionerName: string;
|
|
1308
1308
|
}
|
|
1309
1309
|
|
|
1310
|
-
/**
|
|
1311
|
-
* Interface for clinic contact information
|
|
1312
|
-
*/
|
|
1313
|
-
interface ClinicContactInfo {
|
|
1314
|
-
email: string;
|
|
1315
|
-
phoneNumber: string;
|
|
1316
|
-
alternativePhoneNumber?: string | null;
|
|
1317
|
-
website?: string | null;
|
|
1318
|
-
}
|
|
1319
|
-
/**
|
|
1320
|
-
* Interface for clinic location
|
|
1321
|
-
*/
|
|
1322
|
-
interface ClinicLocation {
|
|
1323
|
-
address: string;
|
|
1324
|
-
city: string;
|
|
1325
|
-
country: string;
|
|
1326
|
-
postalCode: string;
|
|
1327
|
-
latitude: number;
|
|
1328
|
-
longitude: number;
|
|
1329
|
-
geohash?: string | null;
|
|
1330
|
-
tz?: string | null;
|
|
1331
|
-
}
|
|
1332
|
-
|
|
1333
1310
|
/**
|
|
1334
1311
|
* Osnovne informacije o zdravstvenom radniku
|
|
1335
1312
|
*/
|
|
@@ -1426,6 +1403,29 @@ interface Practitioner {
|
|
|
1426
1403
|
updatedAt: Timestamp;
|
|
1427
1404
|
}
|
|
1428
1405
|
|
|
1406
|
+
/**
|
|
1407
|
+
* Interface for clinic contact information
|
|
1408
|
+
*/
|
|
1409
|
+
interface ClinicContactInfo {
|
|
1410
|
+
email: string;
|
|
1411
|
+
phoneNumber: string;
|
|
1412
|
+
alternativePhoneNumber?: string | null;
|
|
1413
|
+
website?: string | null;
|
|
1414
|
+
}
|
|
1415
|
+
/**
|
|
1416
|
+
* Interface for clinic location
|
|
1417
|
+
*/
|
|
1418
|
+
interface ClinicLocation {
|
|
1419
|
+
address: string;
|
|
1420
|
+
city: string;
|
|
1421
|
+
country: string;
|
|
1422
|
+
postalCode: string;
|
|
1423
|
+
latitude: number;
|
|
1424
|
+
longitude: number;
|
|
1425
|
+
geohash?: string | null;
|
|
1426
|
+
tz?: string | null;
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
1429
|
/**
|
|
1430
1430
|
* Interface for clinic profile information
|
|
1431
1431
|
*/
|
|
@@ -1307,29 +1307,6 @@ interface ProcedureSummaryInfo {
|
|
|
1307
1307
|
practitionerName: string;
|
|
1308
1308
|
}
|
|
1309
1309
|
|
|
1310
|
-
/**
|
|
1311
|
-
* Interface for clinic contact information
|
|
1312
|
-
*/
|
|
1313
|
-
interface ClinicContactInfo {
|
|
1314
|
-
email: string;
|
|
1315
|
-
phoneNumber: string;
|
|
1316
|
-
alternativePhoneNumber?: string | null;
|
|
1317
|
-
website?: string | null;
|
|
1318
|
-
}
|
|
1319
|
-
/**
|
|
1320
|
-
* Interface for clinic location
|
|
1321
|
-
*/
|
|
1322
|
-
interface ClinicLocation {
|
|
1323
|
-
address: string;
|
|
1324
|
-
city: string;
|
|
1325
|
-
country: string;
|
|
1326
|
-
postalCode: string;
|
|
1327
|
-
latitude: number;
|
|
1328
|
-
longitude: number;
|
|
1329
|
-
geohash?: string | null;
|
|
1330
|
-
tz?: string | null;
|
|
1331
|
-
}
|
|
1332
|
-
|
|
1333
1310
|
/**
|
|
1334
1311
|
* Osnovne informacije o zdravstvenom radniku
|
|
1335
1312
|
*/
|
|
@@ -1426,6 +1403,29 @@ interface Practitioner {
|
|
|
1426
1403
|
updatedAt: Timestamp;
|
|
1427
1404
|
}
|
|
1428
1405
|
|
|
1406
|
+
/**
|
|
1407
|
+
* Interface for clinic contact information
|
|
1408
|
+
*/
|
|
1409
|
+
interface ClinicContactInfo {
|
|
1410
|
+
email: string;
|
|
1411
|
+
phoneNumber: string;
|
|
1412
|
+
alternativePhoneNumber?: string | null;
|
|
1413
|
+
website?: string | null;
|
|
1414
|
+
}
|
|
1415
|
+
/**
|
|
1416
|
+
* Interface for clinic location
|
|
1417
|
+
*/
|
|
1418
|
+
interface ClinicLocation {
|
|
1419
|
+
address: string;
|
|
1420
|
+
city: string;
|
|
1421
|
+
country: string;
|
|
1422
|
+
postalCode: string;
|
|
1423
|
+
latitude: number;
|
|
1424
|
+
longitude: number;
|
|
1425
|
+
geohash?: string | null;
|
|
1426
|
+
tz?: string | null;
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
1429
|
/**
|
|
1430
1430
|
* Interface for clinic profile information
|
|
1431
1431
|
*/
|
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -20271,7 +20271,11 @@ var ProcedureService = class extends BaseService {
|
|
|
20271
20271
|
photo: typeof practitioner.basicInfo.profileImageUrl === "string" ? practitioner.basicInfo.profileImageUrl : "",
|
|
20272
20272
|
// Default to empty string if not a processed URL
|
|
20273
20273
|
rating: ((_a = practitioner.reviewInfo) == null ? void 0 : _a.averageRating) || 0,
|
|
20274
|
-
services: practitioner.procedures || []
|
|
20274
|
+
services: practitioner.procedures || [],
|
|
20275
|
+
status: practitioner.status,
|
|
20276
|
+
// Include practitioner status for client-side filtering
|
|
20277
|
+
isActive: practitioner.isActive
|
|
20278
|
+
// Include isActive flag for client-side filtering
|
|
20275
20279
|
};
|
|
20276
20280
|
const { productsMetadata: _, productId: __, photos: ___, ...validatedDataWithoutProductsMetadata } = validatedData;
|
|
20277
20281
|
const newProcedure = {
|
|
@@ -20430,7 +20434,9 @@ var ProcedureService = class extends BaseService {
|
|
|
20430
20434
|
description: practitioner.basicInfo.bio || "",
|
|
20431
20435
|
photo: typeof practitioner.basicInfo.profileImageUrl === "string" ? practitioner.basicInfo.profileImageUrl : "",
|
|
20432
20436
|
rating: ((_c = practitioner.reviewInfo) == null ? void 0 : _c.averageRating) || 0,
|
|
20433
|
-
services: practitioner.procedures || []
|
|
20437
|
+
services: practitioner.procedures || [],
|
|
20438
|
+
status: practitioner.status,
|
|
20439
|
+
isActive: practitioner.isActive
|
|
20434
20440
|
};
|
|
20435
20441
|
const newProcedure = {
|
|
20436
20442
|
...sourceProcedure,
|
|
@@ -20927,7 +20933,9 @@ var ProcedureService = class extends BaseService {
|
|
|
20927
20933
|
photo: typeof newPractitioner.basicInfo.profileImageUrl === "string" ? newPractitioner.basicInfo.profileImageUrl : "",
|
|
20928
20934
|
// Default to empty string if not a processed URL
|
|
20929
20935
|
rating: ((_b = newPractitioner.reviewInfo) == null ? void 0 : _b.averageRating) || 0,
|
|
20930
|
-
services: newPractitioner.procedures || []
|
|
20936
|
+
services: newPractitioner.procedures || [],
|
|
20937
|
+
status: newPractitioner.status,
|
|
20938
|
+
isActive: newPractitioner.isActive
|
|
20931
20939
|
};
|
|
20932
20940
|
}
|
|
20933
20941
|
if (validatedData.clinicBranchId && validatedData.clinicBranchId !== oldClinicId) {
|
package/dist/index.mjs
CHANGED
|
@@ -20507,7 +20507,11 @@ var ProcedureService = class extends BaseService {
|
|
|
20507
20507
|
photo: typeof practitioner.basicInfo.profileImageUrl === "string" ? practitioner.basicInfo.profileImageUrl : "",
|
|
20508
20508
|
// Default to empty string if not a processed URL
|
|
20509
20509
|
rating: ((_a = practitioner.reviewInfo) == null ? void 0 : _a.averageRating) || 0,
|
|
20510
|
-
services: practitioner.procedures || []
|
|
20510
|
+
services: practitioner.procedures || [],
|
|
20511
|
+
status: practitioner.status,
|
|
20512
|
+
// Include practitioner status for client-side filtering
|
|
20513
|
+
isActive: practitioner.isActive
|
|
20514
|
+
// Include isActive flag for client-side filtering
|
|
20511
20515
|
};
|
|
20512
20516
|
const { productsMetadata: _, productId: __, photos: ___, ...validatedDataWithoutProductsMetadata } = validatedData;
|
|
20513
20517
|
const newProcedure = {
|
|
@@ -20666,7 +20670,9 @@ var ProcedureService = class extends BaseService {
|
|
|
20666
20670
|
description: practitioner.basicInfo.bio || "",
|
|
20667
20671
|
photo: typeof practitioner.basicInfo.profileImageUrl === "string" ? practitioner.basicInfo.profileImageUrl : "",
|
|
20668
20672
|
rating: ((_c = practitioner.reviewInfo) == null ? void 0 : _c.averageRating) || 0,
|
|
20669
|
-
services: practitioner.procedures || []
|
|
20673
|
+
services: practitioner.procedures || [],
|
|
20674
|
+
status: practitioner.status,
|
|
20675
|
+
isActive: practitioner.isActive
|
|
20670
20676
|
};
|
|
20671
20677
|
const newProcedure = {
|
|
20672
20678
|
...sourceProcedure,
|
|
@@ -21163,7 +21169,9 @@ var ProcedureService = class extends BaseService {
|
|
|
21163
21169
|
photo: typeof newPractitioner.basicInfo.profileImageUrl === "string" ? newPractitioner.basicInfo.profileImageUrl : "",
|
|
21164
21170
|
// Default to empty string if not a processed URL
|
|
21165
21171
|
rating: ((_b = newPractitioner.reviewInfo) == null ? void 0 : _b.averageRating) || 0,
|
|
21166
|
-
services: newPractitioner.procedures || []
|
|
21172
|
+
services: newPractitioner.procedures || [],
|
|
21173
|
+
status: newPractitioner.status,
|
|
21174
|
+
isActive: newPractitioner.isActive
|
|
21167
21175
|
};
|
|
21168
21176
|
}
|
|
21169
21177
|
if (validatedData.clinicBranchId && validatedData.clinicBranchId !== oldClinicId) {
|
package/package.json
CHANGED
|
@@ -439,6 +439,8 @@ export class ProcedureService extends BaseService {
|
|
|
439
439
|
: '', // Default to empty string if not a processed URL
|
|
440
440
|
rating: practitioner.reviewInfo?.averageRating || 0,
|
|
441
441
|
services: practitioner.procedures || [],
|
|
442
|
+
status: practitioner.status, // Include practitioner status for client-side filtering
|
|
443
|
+
isActive: practitioner.isActive, // Include isActive flag for client-side filtering
|
|
442
444
|
};
|
|
443
445
|
|
|
444
446
|
// Create the procedure object
|
|
@@ -628,6 +630,8 @@ export class ProcedureService extends BaseService {
|
|
|
628
630
|
: '',
|
|
629
631
|
rating: practitioner.reviewInfo?.averageRating || 0,
|
|
630
632
|
services: practitioner.procedures || [],
|
|
633
|
+
status: practitioner.status,
|
|
634
|
+
isActive: practitioner.isActive,
|
|
631
635
|
};
|
|
632
636
|
|
|
633
637
|
// Construct the new procedure object
|
|
@@ -1265,6 +1269,8 @@ export class ProcedureService extends BaseService {
|
|
|
1265
1269
|
: '', // Default to empty string if not a processed URL
|
|
1266
1270
|
rating: newPractitioner.reviewInfo?.averageRating || 0,
|
|
1267
1271
|
services: newPractitioner.procedures || [],
|
|
1272
|
+
status: newPractitioner.status,
|
|
1273
|
+
isActive: newPractitioner.isActive,
|
|
1268
1274
|
};
|
|
1269
1275
|
}
|
|
1270
1276
|
|
|
@@ -3,6 +3,7 @@ import { Timestamp, FieldValue } from 'firebase/firestore';
|
|
|
3
3
|
import type { ClinicInfo } from '../profile';
|
|
4
4
|
import { ClinicReviewInfo } from '../reviews';
|
|
5
5
|
import { ProcedureSummaryInfo } from '../procedure';
|
|
6
|
+
import { PractitionerStatus } from '../practitioner';
|
|
6
7
|
|
|
7
8
|
export const CLINIC_GROUPS_COLLECTION = 'clinic_groups';
|
|
8
9
|
export const CLINIC_ADMINS_COLLECTION = 'clinic_admins';
|
|
@@ -351,6 +352,8 @@ export interface DoctorInfo {
|
|
|
351
352
|
photo: string | null;
|
|
352
353
|
rating: number;
|
|
353
354
|
services: string[]; // Used for search and filtering
|
|
355
|
+
status?: PractitionerStatus; // Practitioner status (DRAFT, ACTIVE, etc.)
|
|
356
|
+
isActive?: boolean; // Whether practitioner is active
|
|
354
357
|
// TODO: Add aggregated fields, like rating, reviews, services this doctor provides in this clinic and similar
|
|
355
358
|
}
|
|
356
359
|
|