@blackcode_sa/metaestetics-api 1.12.1 → 1.12.2

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.mjs CHANGED
@@ -15249,9 +15249,7 @@ var ProcedureService = class extends BaseService {
15249
15249
  return media;
15250
15250
  }
15251
15251
  if (media instanceof File || media instanceof Blob) {
15252
- console.log(
15253
- `[ProcedureService] Uploading ${collectionName} media for ${ownerId}`
15254
- );
15252
+ console.log(`[ProcedureService] Uploading ${collectionName} media for ${ownerId}`);
15255
15253
  const metadata = await this.mediaService.uploadMedia(
15256
15254
  media,
15257
15255
  ownerId,
@@ -15273,11 +15271,7 @@ var ProcedureService = class extends BaseService {
15273
15271
  if (!mediaArray || mediaArray.length === 0) return [];
15274
15272
  const result = [];
15275
15273
  for (const media of mediaArray) {
15276
- const processedUrl = await this.processMedia(
15277
- media,
15278
- ownerId,
15279
- collectionName
15280
- );
15274
+ const processedUrl = await this.processMedia(media, ownerId, collectionName);
15281
15275
  if (processedUrl) {
15282
15276
  result.push(processedUrl);
15283
15277
  }
@@ -15293,10 +15287,7 @@ var ProcedureService = class extends BaseService {
15293
15287
  async transformProductsMetadata(productsMetadata, technologyId) {
15294
15288
  const transformedProducts = [];
15295
15289
  for (const productData of productsMetadata) {
15296
- const product = await this.productService.getById(
15297
- technologyId,
15298
- productData.productId
15299
- );
15290
+ const product = await this.productService.getById(technologyId, productData.productId);
15300
15291
  if (!product) {
15301
15292
  throw new Error(
15302
15293
  `Product with ID ${productData.productId} not found for technology ${technologyId}`
@@ -15323,41 +15314,23 @@ var ProcedureService = class extends BaseService {
15323
15314
  const procedureId = this.generateId();
15324
15315
  const [category, subcategory, technology, product] = await Promise.all([
15325
15316
  this.categoryService.getById(validatedData.categoryId),
15326
- this.subcategoryService.getById(
15327
- validatedData.categoryId,
15328
- validatedData.subcategoryId
15329
- ),
15317
+ this.subcategoryService.getById(validatedData.categoryId, validatedData.subcategoryId),
15330
15318
  this.technologyService.getById(validatedData.technologyId),
15331
- this.productService.getById(
15332
- validatedData.technologyId,
15333
- validatedData.productId
15334
- )
15319
+ this.productService.getById(validatedData.technologyId, validatedData.productId)
15335
15320
  ]);
15336
15321
  if (!category || !subcategory || !technology || !product) {
15337
15322
  throw new Error("One or more required base entities not found");
15338
15323
  }
15339
- const clinicRef = doc30(
15340
- this.db,
15341
- CLINICS_COLLECTION,
15342
- validatedData.clinicBranchId
15343
- );
15324
+ const clinicRef = doc30(this.db, CLINICS_COLLECTION, validatedData.clinicBranchId);
15344
15325
  const clinicSnapshot = await getDoc32(clinicRef);
15345
15326
  if (!clinicSnapshot.exists()) {
15346
- throw new Error(
15347
- `Clinic with ID ${validatedData.clinicBranchId} not found`
15348
- );
15327
+ throw new Error(`Clinic with ID ${validatedData.clinicBranchId} not found`);
15349
15328
  }
15350
15329
  const clinic = clinicSnapshot.data();
15351
- const practitionerRef = doc30(
15352
- this.db,
15353
- PRACTITIONERS_COLLECTION,
15354
- validatedData.practitionerId
15355
- );
15330
+ const practitionerRef = doc30(this.db, PRACTITIONERS_COLLECTION, validatedData.practitionerId);
15356
15331
  const practitionerSnapshot = await getDoc32(practitionerRef);
15357
15332
  if (!practitionerSnapshot.exists()) {
15358
- throw new Error(
15359
- `Practitioner with ID ${validatedData.practitionerId} not found`
15360
- );
15333
+ throw new Error(`Practitioner with ID ${validatedData.practitionerId} not found`);
15361
15334
  }
15362
15335
  const practitioner = practitionerSnapshot.data();
15363
15336
  let processedPhotos = [];
@@ -15389,9 +15362,10 @@ var ProcedureService = class extends BaseService {
15389
15362
  rating: ((_a = practitioner.reviewInfo) == null ? void 0 : _a.averageRating) || 0,
15390
15363
  services: practitioner.procedures || []
15391
15364
  };
15365
+ const { productsMetadata: _, ...validatedDataWithoutProductsMetadata } = validatedData;
15392
15366
  const newProcedure = {
15393
15367
  id: procedureId,
15394
- ...validatedData,
15368
+ ...validatedDataWithoutProductsMetadata,
15395
15369
  // Ensure nameLower is always set even if omitted by client
15396
15370
  nameLower: validatedData.nameLower || validatedData.name.toLowerCase(),
15397
15371
  photos: processedPhotos,
@@ -15401,6 +15375,7 @@ var ProcedureService = class extends BaseService {
15401
15375
  technology,
15402
15376
  product,
15403
15377
  productsMetadata: transformedProductsMetadata,
15378
+ // Use transformed data, not original
15404
15379
  blockingConditions: technology.blockingConditions,
15405
15380
  contraindications: technology.contraindications || [],
15406
15381
  contraindicationIds: ((_b = technology.contraindications) == null ? void 0 : _b.map((c) => c.id)) || [],
@@ -15454,24 +15429,16 @@ var ProcedureService = class extends BaseService {
15454
15429
  const validatedData = createProcedureSchema.parse(validationData);
15455
15430
  const [category, subcategory, technology, product, clinicSnapshot] = await Promise.all([
15456
15431
  this.categoryService.getById(validatedData.categoryId),
15457
- this.subcategoryService.getById(
15458
- validatedData.categoryId,
15459
- validatedData.subcategoryId
15460
- ),
15432
+ this.subcategoryService.getById(validatedData.categoryId, validatedData.subcategoryId),
15461
15433
  this.technologyService.getById(validatedData.technologyId),
15462
- this.productService.getById(
15463
- validatedData.technologyId,
15464
- validatedData.productId
15465
- ),
15434
+ this.productService.getById(validatedData.technologyId, validatedData.productId),
15466
15435
  getDoc32(doc30(this.db, CLINICS_COLLECTION, validatedData.clinicBranchId))
15467
15436
  ]);
15468
15437
  if (!category || !subcategory || !technology || !product) {
15469
15438
  throw new Error("One or more required base entities not found");
15470
15439
  }
15471
15440
  if (!clinicSnapshot.exists()) {
15472
- throw new Error(
15473
- `Clinic with ID ${validatedData.clinicBranchId} not found`
15474
- );
15441
+ throw new Error(`Clinic with ID ${validatedData.clinicBranchId} not found`);
15475
15442
  }
15476
15443
  const clinic = clinicSnapshot.data();
15477
15444
  let processedPhotos = [];
@@ -15501,12 +15468,8 @@ var ProcedureService = class extends BaseService {
15501
15468
  }
15502
15469
  if (practitionersMap.size !== practitionerIds.length) {
15503
15470
  const foundIds = Array.from(practitionersMap.keys());
15504
- const notFoundIds = practitionerIds.filter(
15505
- (id) => !foundIds.includes(id)
15506
- );
15507
- throw new Error(
15508
- `The following practitioners were not found: ${notFoundIds.join(", ")}`
15509
- );
15471
+ const notFoundIds = practitionerIds.filter((id) => !foundIds.includes(id));
15472
+ throw new Error(`The following practitioners were not found: ${notFoundIds.join(", ")}`);
15510
15473
  }
15511
15474
  const batch = writeBatch6(this.db);
15512
15475
  const createdProcedureIds = [];
@@ -15531,9 +15494,10 @@ var ProcedureService = class extends BaseService {
15531
15494
  const procedureId = this.generateId();
15532
15495
  createdProcedureIds.push(procedureId);
15533
15496
  const procedureRef = doc30(this.db, PROCEDURES_COLLECTION, procedureId);
15497
+ const { productsMetadata: _, ...validatedDataWithoutProductsMetadata } = validatedData;
15534
15498
  const newProcedure = {
15535
15499
  id: procedureId,
15536
- ...validatedData,
15500
+ ...validatedDataWithoutProductsMetadata,
15537
15501
  nameLower: validatedData.nameLower || validatedData.name.toLowerCase(),
15538
15502
  practitionerId,
15539
15503
  // Override practitionerId with the correct one
@@ -15543,6 +15507,7 @@ var ProcedureService = class extends BaseService {
15543
15507
  technology,
15544
15508
  product,
15545
15509
  productsMetadata: transformedProductsMetadata,
15510
+ // Use transformed data, not original
15546
15511
  blockingConditions: technology.blockingConditions,
15547
15512
  contraindications: technology.contraindications || [],
15548
15513
  contraindicationIds: ((_b = technology.contraindications) == null ? void 0 : _b.map((c) => c.id)) || [],
@@ -15577,10 +15542,7 @@ var ProcedureService = class extends BaseService {
15577
15542
  const fetchedProcedures = [];
15578
15543
  for (let i = 0; i < createdProcedureIds.length; i += 30) {
15579
15544
  const chunk = createdProcedureIds.slice(i, i + 30);
15580
- const q = query29(
15581
- collection29(this.db, PROCEDURES_COLLECTION),
15582
- where29(documentId2(), "in", chunk)
15583
- );
15545
+ const q = query29(collection29(this.db, PROCEDURES_COLLECTION), where29(documentId2(), "in", chunk));
15584
15546
  const snapshot = await getDocs29(q);
15585
15547
  snapshot.forEach((doc38) => {
15586
15548
  fetchedProcedures.push(doc38.data());
@@ -15659,12 +15621,10 @@ var ProcedureService = class extends BaseService {
15659
15621
  }
15660
15622
  const existingProcedure = procedureSnapshot.data();
15661
15623
  let updatedProcedureData = {};
15662
- if (validatedData.name !== void 0)
15663
- updatedProcedureData.name = validatedData.name;
15624
+ if (validatedData.name !== void 0) updatedProcedureData.name = validatedData.name;
15664
15625
  if (validatedData.description !== void 0)
15665
15626
  updatedProcedureData.description = validatedData.description;
15666
- if (validatedData.price !== void 0)
15667
- updatedProcedureData.price = validatedData.price;
15627
+ if (validatedData.price !== void 0) updatedProcedureData.price = validatedData.price;
15668
15628
  if (validatedData.currency !== void 0)
15669
15629
  updatedProcedureData.currency = validatedData.currency;
15670
15630
  if (validatedData.pricingMeasure !== void 0)
@@ -15689,9 +15649,7 @@ var ProcedureService = class extends BaseService {
15689
15649
  if (validatedData.productsMetadata !== void 0) {
15690
15650
  const technologyId = (_a = validatedData.technologyId) != null ? _a : existingProcedure.technology.id;
15691
15651
  if (!technologyId) {
15692
- throw new Error(
15693
- "Technology ID is required for updating products metadata"
15694
- );
15652
+ throw new Error("Technology ID is required for updating products metadata");
15695
15653
  }
15696
15654
  updatedProcedureData.productsMetadata = await this.transformProductsMetadata(
15697
15655
  validatedData.productsMetadata,
@@ -15707,9 +15665,7 @@ var ProcedureService = class extends BaseService {
15707
15665
  );
15708
15666
  const newPractitionerSnap = await getDoc32(newPractitionerRef);
15709
15667
  if (!newPractitionerSnap.exists())
15710
- throw new Error(
15711
- `New Practitioner ${validatedData.practitionerId} not found`
15712
- );
15668
+ throw new Error(`New Practitioner ${validatedData.practitionerId} not found`);
15713
15669
  newPractitioner = newPractitionerSnap.data();
15714
15670
  updatedProcedureData.doctorInfo = {
15715
15671
  id: newPractitioner.id,
@@ -15723,11 +15679,7 @@ var ProcedureService = class extends BaseService {
15723
15679
  }
15724
15680
  if (validatedData.clinicBranchId && validatedData.clinicBranchId !== oldClinicId) {
15725
15681
  clinicChanged = true;
15726
- const newClinicRef = doc30(
15727
- this.db,
15728
- CLINICS_COLLECTION,
15729
- validatedData.clinicBranchId
15730
- );
15682
+ const newClinicRef = doc30(this.db, CLINICS_COLLECTION, validatedData.clinicBranchId);
15731
15683
  const newClinicSnap = await getDoc32(newClinicRef);
15732
15684
  if (!newClinicSnap.exists())
15733
15685
  throw new Error(`New Clinic ${validatedData.clinicBranchId} not found`);
@@ -15746,11 +15698,8 @@ var ProcedureService = class extends BaseService {
15746
15698
  updatedProcedureData.nameLower = validatedData.name.toLowerCase();
15747
15699
  }
15748
15700
  if (validatedData.categoryId) {
15749
- const category = await this.categoryService.getById(
15750
- validatedData.categoryId
15751
- );
15752
- if (!category)
15753
- throw new Error(`Category ${validatedData.categoryId} not found`);
15701
+ const category = await this.categoryService.getById(validatedData.categoryId);
15702
+ if (!category) throw new Error(`Category ${validatedData.categoryId} not found`);
15754
15703
  updatedProcedureData.category = category;
15755
15704
  finalCategoryId = category.id;
15756
15705
  }
@@ -15765,17 +15714,12 @@ var ProcedureService = class extends BaseService {
15765
15714
  );
15766
15715
  updatedProcedureData.subcategory = subcategory;
15767
15716
  } else if (validatedData.subcategoryId) {
15768
- console.warn(
15769
- "Attempted to update subcategory without a valid categoryId"
15770
- );
15717
+ console.warn("Attempted to update subcategory without a valid categoryId");
15771
15718
  }
15772
15719
  let finalTechnologyId = existingProcedure.technology.id;
15773
15720
  if (validatedData.technologyId) {
15774
- const technology = await this.technologyService.getById(
15775
- validatedData.technologyId
15776
- );
15777
- if (!technology)
15778
- throw new Error(`Technology ${validatedData.technologyId} not found`);
15721
+ const technology = await this.technologyService.getById(validatedData.technologyId);
15722
+ if (!technology) throw new Error(`Technology ${validatedData.technologyId} not found`);
15779
15723
  updatedProcedureData.technology = technology;
15780
15724
  finalTechnologyId = technology.id;
15781
15725
  updatedProcedureData.blockingConditions = technology.blockingConditions;
@@ -15789,10 +15733,7 @@ var ProcedureService = class extends BaseService {
15789
15733
  updatedProcedureData.documentationTemplates = technology.documentationTemplates || [];
15790
15734
  }
15791
15735
  if (validatedData.productId && finalTechnologyId) {
15792
- const product = await this.productService.getById(
15793
- finalTechnologyId,
15794
- validatedData.productId
15795
- );
15736
+ const product = await this.productService.getById(finalTechnologyId, validatedData.productId);
15796
15737
  if (!product)
15797
15738
  throw new Error(
15798
15739
  `Product ${validatedData.productId} not found for technology ${finalTechnologyId}`
@@ -15874,11 +15815,7 @@ var ProcedureService = class extends BaseService {
15874
15815
  limit21(pagination)
15875
15816
  );
15876
15817
  } else {
15877
- proceduresQuery = query29(
15878
- proceduresCollection,
15879
- orderBy17("name"),
15880
- limit21(pagination)
15881
- );
15818
+ proceduresQuery = query29(proceduresCollection, orderBy17("name"), limit21(pagination));
15882
15819
  }
15883
15820
  } else {
15884
15821
  proceduresQuery = query29(proceduresCollection, orderBy17("name"));
@@ -15927,9 +15864,7 @@ var ProcedureService = class extends BaseService {
15927
15864
  */
15928
15865
  async getProceduresByFilters(filters) {
15929
15866
  try {
15930
- console.log(
15931
- "[PROCEDURE_SERVICE] Starting procedure filtering with multiple strategies"
15932
- );
15867
+ console.log("[PROCEDURE_SERVICE] Starting procedure filtering with multiple strategies");
15933
15868
  if (filters.location && filters.radiusInKm) {
15934
15869
  console.log("[PROCEDURE_SERVICE] Executing geo query:", {
15935
15870
  location: filters.location,
@@ -15937,10 +15872,7 @@ var ProcedureService = class extends BaseService {
15937
15872
  serviceName: "ProcedureService"
15938
15873
  });
15939
15874
  if (!filters.location.latitude || !filters.location.longitude) {
15940
- console.warn(
15941
- "[PROCEDURE_SERVICE] Invalid location data:",
15942
- filters.location
15943
- );
15875
+ console.warn("[PROCEDURE_SERVICE] Invalid location data:", filters.location);
15944
15876
  filters.location = void 0;
15945
15877
  filters.radiusInKm = void 0;
15946
15878
  }
@@ -15960,19 +15892,13 @@ var ProcedureService = class extends BaseService {
15960
15892
  constraints.push(where29("family", "==", filters.procedureFamily));
15961
15893
  }
15962
15894
  if (filters.procedureCategory) {
15963
- constraints.push(
15964
- where29("category.id", "==", filters.procedureCategory)
15965
- );
15895
+ constraints.push(where29("category.id", "==", filters.procedureCategory));
15966
15896
  }
15967
15897
  if (filters.procedureSubcategory) {
15968
- constraints.push(
15969
- where29("subcategory.id", "==", filters.procedureSubcategory)
15970
- );
15898
+ constraints.push(where29("subcategory.id", "==", filters.procedureSubcategory));
15971
15899
  }
15972
15900
  if (filters.procedureTechnology) {
15973
- constraints.push(
15974
- where29("technology.id", "==", filters.procedureTechnology)
15975
- );
15901
+ constraints.push(where29("technology.id", "==", filters.procedureTechnology));
15976
15902
  }
15977
15903
  if (filters.minPrice !== void 0) {
15978
15904
  constraints.push(where29("price", ">=", filters.minPrice));
@@ -15981,32 +15907,20 @@ var ProcedureService = class extends BaseService {
15981
15907
  constraints.push(where29("price", "<=", filters.maxPrice));
15982
15908
  }
15983
15909
  if (filters.minRating !== void 0) {
15984
- constraints.push(
15985
- where29("reviewInfo.averageRating", ">=", filters.minRating)
15986
- );
15910
+ constraints.push(where29("reviewInfo.averageRating", ">=", filters.minRating));
15987
15911
  }
15988
15912
  if (filters.maxRating !== void 0) {
15989
- constraints.push(
15990
- where29("reviewInfo.averageRating", "<=", filters.maxRating)
15991
- );
15913
+ constraints.push(where29("reviewInfo.averageRating", "<=", filters.maxRating));
15992
15914
  }
15993
15915
  if (filters.treatmentBenefits && filters.treatmentBenefits.length > 0) {
15994
15916
  const benefitIdsToMatch = filters.treatmentBenefits;
15995
- constraints.push(
15996
- where29(
15997
- "treatmentBenefitIds",
15998
- "array-contains-any",
15999
- benefitIdsToMatch
16000
- )
16001
- );
15917
+ constraints.push(where29("treatmentBenefitIds", "array-contains-any", benefitIdsToMatch));
16002
15918
  }
16003
15919
  return constraints;
16004
15920
  };
16005
15921
  if (filters.nameSearch && filters.nameSearch.trim()) {
16006
15922
  try {
16007
- console.log(
16008
- "[PROCEDURE_SERVICE] Strategy 1: Trying nameLower search"
16009
- );
15923
+ console.log("[PROCEDURE_SERVICE] Strategy 1: Trying nameLower search");
16010
15924
  const searchTerm = filters.nameSearch.trim().toLowerCase();
16011
15925
  const constraints = getBaseConstraints();
16012
15926
  constraints.push(where29("nameLower", ">=", searchTerm));
@@ -16022,18 +15936,13 @@ var ProcedureService = class extends BaseService {
16022
15936
  }
16023
15937
  }
16024
15938
  constraints.push(limit15(filters.pagination || 10));
16025
- const q = query29(
16026
- collection29(this.db, PROCEDURES_COLLECTION),
16027
- ...constraints
16028
- );
15939
+ const q = query29(collection29(this.db, PROCEDURES_COLLECTION), ...constraints);
16029
15940
  const querySnapshot = await getDocs29(q);
16030
15941
  const procedures = querySnapshot.docs.map(
16031
15942
  (doc38) => ({ ...doc38.data(), id: doc38.id })
16032
15943
  );
16033
15944
  const lastDoc = querySnapshot.docs.length > 0 ? querySnapshot.docs[querySnapshot.docs.length - 1] : null;
16034
- console.log(
16035
- `[PROCEDURE_SERVICE] Strategy 1 success: ${procedures.length} procedures`
16036
- );
15945
+ console.log(`[PROCEDURE_SERVICE] Strategy 1 success: ${procedures.length} procedures`);
16037
15946
  if (procedures.length < (filters.pagination || 10)) {
16038
15947
  return { procedures, lastDoc: null };
16039
15948
  }
@@ -16044,9 +15953,7 @@ var ProcedureService = class extends BaseService {
16044
15953
  }
16045
15954
  if (filters.nameSearch && filters.nameSearch.trim()) {
16046
15955
  try {
16047
- console.log(
16048
- "[PROCEDURE_SERVICE] Strategy 2: Trying name field search"
16049
- );
15956
+ console.log("[PROCEDURE_SERVICE] Strategy 2: Trying name field search");
16050
15957
  const searchTerm = filters.nameSearch.trim().toLowerCase();
16051
15958
  const constraints = getBaseConstraints();
16052
15959
  constraints.push(where29("name", ">=", searchTerm));
@@ -16062,18 +15969,13 @@ var ProcedureService = class extends BaseService {
16062
15969
  }
16063
15970
  }
16064
15971
  constraints.push(limit15(filters.pagination || 10));
16065
- const q = query29(
16066
- collection29(this.db, PROCEDURES_COLLECTION),
16067
- ...constraints
16068
- );
15972
+ const q = query29(collection29(this.db, PROCEDURES_COLLECTION), ...constraints);
16069
15973
  const querySnapshot = await getDocs29(q);
16070
15974
  const procedures = querySnapshot.docs.map(
16071
15975
  (doc38) => ({ ...doc38.data(), id: doc38.id })
16072
15976
  );
16073
15977
  const lastDoc = querySnapshot.docs.length > 0 ? querySnapshot.docs[querySnapshot.docs.length - 1] : null;
16074
- console.log(
16075
- `[PROCEDURE_SERVICE] Strategy 2 success: ${procedures.length} procedures`
16076
- );
15978
+ console.log(`[PROCEDURE_SERVICE] Strategy 2 success: ${procedures.length} procedures`);
16077
15979
  if (procedures.length < (filters.pagination || 10)) {
16078
15980
  return { procedures, lastDoc: null };
16079
15981
  }
@@ -16098,19 +16000,14 @@ var ProcedureService = class extends BaseService {
16098
16000
  }
16099
16001
  }
16100
16002
  constraints.push(limit15(filters.pagination || 10));
16101
- const q = query29(
16102
- collection29(this.db, PROCEDURES_COLLECTION),
16103
- ...constraints
16104
- );
16003
+ const q = query29(collection29(this.db, PROCEDURES_COLLECTION), ...constraints);
16105
16004
  const querySnapshot = await getDocs29(q);
16106
16005
  let procedures = querySnapshot.docs.map(
16107
16006
  (doc38) => ({ ...doc38.data(), id: doc38.id })
16108
16007
  );
16109
16008
  procedures = this.applyInMemoryFilters(procedures, filters);
16110
16009
  const lastDoc = querySnapshot.docs.length > 0 ? querySnapshot.docs[querySnapshot.docs.length - 1] : null;
16111
- console.log(
16112
- `[PROCEDURE_SERVICE] Strategy 3 success: ${procedures.length} procedures`
16113
- );
16010
+ console.log(`[PROCEDURE_SERVICE] Strategy 3 success: ${procedures.length} procedures`);
16114
16011
  if (procedures.length < (filters.pagination || 10)) {
16115
16012
  return { procedures, lastDoc: null };
16116
16013
  }
@@ -16125,19 +16022,14 @@ var ProcedureService = class extends BaseService {
16125
16022
  orderBy17("createdAt", "desc"),
16126
16023
  limit15(filters.pagination || 10)
16127
16024
  ];
16128
- const q = query29(
16129
- collection29(this.db, PROCEDURES_COLLECTION),
16130
- ...constraints
16131
- );
16025
+ const q = query29(collection29(this.db, PROCEDURES_COLLECTION), ...constraints);
16132
16026
  const querySnapshot = await getDocs29(q);
16133
16027
  let procedures = querySnapshot.docs.map(
16134
16028
  (doc38) => ({ ...doc38.data(), id: doc38.id })
16135
16029
  );
16136
16030
  procedures = this.applyInMemoryFilters(procedures, filters);
16137
16031
  const lastDoc = querySnapshot.docs.length > 0 ? querySnapshot.docs[querySnapshot.docs.length - 1] : null;
16138
- console.log(
16139
- `[PROCEDURE_SERVICE] Strategy 4 success: ${procedures.length} procedures`
16140
- );
16032
+ console.log(`[PROCEDURE_SERVICE] Strategy 4 success: ${procedures.length} procedures`);
16141
16033
  if (procedures.length < (filters.pagination || 10)) {
16142
16034
  return { procedures, lastDoc: null };
16143
16035
  }
@@ -16145,9 +16037,7 @@ var ProcedureService = class extends BaseService {
16145
16037
  } catch (error) {
16146
16038
  console.log("[PROCEDURE_SERVICE] Strategy 4 failed:", error);
16147
16039
  }
16148
- console.log(
16149
- "[PROCEDURE_SERVICE] All strategies failed, returning empty result"
16150
- );
16040
+ console.log("[PROCEDURE_SERVICE] All strategies failed, returning empty result");
16151
16041
  return { procedures: [], lastDoc: null };
16152
16042
  } catch (error) {
16153
16043
  console.error("[PROCEDURE_SERVICE] Error filtering procedures:", error);
@@ -16167,17 +16057,13 @@ var ProcedureService = class extends BaseService {
16167
16057
  const nameLower = procedure.nameLower || "";
16168
16058
  return name.includes(searchTerm) || nameLower.includes(searchTerm);
16169
16059
  });
16170
- console.log(
16171
- `[PROCEDURE_SERVICE] Applied name filter, results: ${filteredProcedures.length}`
16172
- );
16060
+ console.log(`[PROCEDURE_SERVICE] Applied name filter, results: ${filteredProcedures.length}`);
16173
16061
  }
16174
16062
  if (filters.minPrice !== void 0 || filters.maxPrice !== void 0) {
16175
16063
  filteredProcedures = filteredProcedures.filter((procedure) => {
16176
16064
  const price = procedure.price || 0;
16177
- if (filters.minPrice !== void 0 && price < filters.minPrice)
16178
- return false;
16179
- if (filters.maxPrice !== void 0 && price > filters.maxPrice)
16180
- return false;
16065
+ if (filters.minPrice !== void 0 && price < filters.minPrice) return false;
16066
+ if (filters.maxPrice !== void 0 && price > filters.maxPrice) return false;
16181
16067
  return true;
16182
16068
  });
16183
16069
  console.log(
@@ -16188,10 +16074,8 @@ var ProcedureService = class extends BaseService {
16188
16074
  filteredProcedures = filteredProcedures.filter((procedure) => {
16189
16075
  var _a;
16190
16076
  const rating = ((_a = procedure.reviewInfo) == null ? void 0 : _a.averageRating) || 0;
16191
- if (filters.minRating !== void 0 && rating < filters.minRating)
16192
- return false;
16193
- if (filters.maxRating !== void 0 && rating > filters.maxRating)
16194
- return false;
16077
+ if (filters.minRating !== void 0 && rating < filters.minRating) return false;
16078
+ if (filters.maxRating !== void 0 && rating > filters.maxRating) return false;
16195
16079
  return true;
16196
16080
  });
16197
16081
  console.log(
@@ -16267,12 +16151,8 @@ var ProcedureService = class extends BaseService {
16267
16151
  procedure.distance = distance;
16268
16152
  return distance <= radiusInKm;
16269
16153
  });
16270
- console.log(
16271
- `[PROCEDURE_SERVICE] Applied geo filter, results: ${filteredProcedures.length}`
16272
- );
16273
- filteredProcedures.sort(
16274
- (a, b) => (a.distance || 0) - (b.distance || 0)
16275
- );
16154
+ console.log(`[PROCEDURE_SERVICE] Applied geo filter, results: ${filteredProcedures.length}`);
16155
+ filteredProcedures.sort((a, b) => (a.distance || 0) - (b.distance || 0));
16276
16156
  }
16277
16157
  return filteredProcedures;
16278
16158
  }
@@ -16284,30 +16164,19 @@ var ProcedureService = class extends BaseService {
16284
16164
  if (!location || !radiusInKm) {
16285
16165
  return Promise.resolve({ procedures: [], lastDoc: null });
16286
16166
  }
16287
- const bounds = geohashQueryBounds5(
16288
- [location.latitude, location.longitude],
16289
- radiusInKm * 1e3
16290
- );
16167
+ const bounds = geohashQueryBounds5([location.latitude, location.longitude], radiusInKm * 1e3);
16291
16168
  const fetches = bounds.map((b) => {
16292
16169
  const constraints = [
16293
16170
  where29("clinicInfo.location.geohash", ">=", b[0]),
16294
16171
  where29("clinicInfo.location.geohash", "<=", b[1]),
16295
- where29(
16296
- "isActive",
16297
- "==",
16298
- filters.isActive !== void 0 ? filters.isActive : true
16299
- )
16172
+ where29("isActive", "==", filters.isActive !== void 0 ? filters.isActive : true)
16300
16173
  ];
16301
- return getDocs29(
16302
- query29(collection29(this.db, PROCEDURES_COLLECTION), ...constraints)
16303
- );
16174
+ return getDocs29(query29(collection29(this.db, PROCEDURES_COLLECTION), ...constraints));
16304
16175
  });
16305
16176
  return Promise.all(fetches).then((snaps) => {
16306
16177
  const collected = [];
16307
16178
  snaps.forEach((snap) => {
16308
- snap.docs.forEach(
16309
- (d) => collected.push({ ...d.data(), id: d.id })
16310
- );
16179
+ snap.docs.forEach((d) => collected.push({ ...d.data(), id: d.id }));
16311
16180
  });
16312
16181
  const uniqueMap = /* @__PURE__ */ new Map();
16313
16182
  for (const p of collected) {
@@ -16318,9 +16187,7 @@ var ProcedureService = class extends BaseService {
16318
16187
  const pageSize = filters.pagination || 10;
16319
16188
  let startIndex = 0;
16320
16189
  if (filters.lastDoc && typeof filters.lastDoc === "object" && filters.lastDoc.id) {
16321
- const idx = procedures.findIndex(
16322
- (p) => p.id === filters.lastDoc.id
16323
- );
16190
+ const idx = procedures.findIndex((p) => p.id === filters.lastDoc.id);
16324
16191
  if (idx >= 0) startIndex = idx + 1;
16325
16192
  }
16326
16193
  const page = procedures.slice(startIndex, startIndex + pageSize);
@@ -16361,11 +16228,7 @@ var ProcedureService = class extends BaseService {
16361
16228
  throw new Error(`Clinic with ID ${data.clinicBranchId} not found`);
16362
16229
  }
16363
16230
  const clinic = clinicSnapshot.data();
16364
- const practitionerRef = doc30(
16365
- this.db,
16366
- PRACTITIONERS_COLLECTION,
16367
- data.practitionerId
16368
- );
16231
+ const practitionerRef = doc30(this.db, PRACTITIONERS_COLLECTION, data.practitionerId);
16369
16232
  const practitionerSnapshot = await getDoc32(practitionerRef);
16370
16233
  if (!practitionerSnapshot.exists()) {
16371
16234
  throw new Error(`Practitioner with ID ${data.practitionerId} not found`);
@@ -16373,11 +16236,7 @@ var ProcedureService = class extends BaseService {
16373
16236
  const practitioner = practitionerSnapshot.data();
16374
16237
  let processedPhotos = [];
16375
16238
  if (data.photos && data.photos.length > 0) {
16376
- processedPhotos = await this.processMediaArray(
16377
- data.photos,
16378
- procedureId,
16379
- "procedure-photos"
16380
- );
16239
+ processedPhotos = await this.processMediaArray(data.photos, procedureId, "procedure-photos");
16381
16240
  }
16382
16241
  const transformedProductsMetadata = await this.transformProductsMetadata(
16383
16242
  data.productsMetadata,
@@ -16413,9 +16272,10 @@ var ProcedureService = class extends BaseService {
16413
16272
  createdAt: /* @__PURE__ */ new Date(),
16414
16273
  updatedAt: /* @__PURE__ */ new Date()
16415
16274
  };
16275
+ const { productsMetadata: _, ...dataWithoutProductsMetadata } = data;
16416
16276
  const newProcedure = {
16417
16277
  id: procedureId,
16418
- ...data,
16278
+ ...dataWithoutProductsMetadata,
16419
16279
  nameLower: data.nameLower || data.name.toLowerCase(),
16420
16280
  photos: processedPhotos,
16421
16281
  category,
@@ -16424,6 +16284,7 @@ var ProcedureService = class extends BaseService {
16424
16284
  product: consultationProduct,
16425
16285
  // Use placeholder product
16426
16286
  productsMetadata: transformedProductsMetadata,
16287
+ // Use transformed data, not original
16427
16288
  blockingConditions: technology.blockingConditions,
16428
16289
  contraindications: technology.contraindications || [],
16429
16290
  contraindicationIds: ((_b = technology.contraindications) == null ? void 0 : _b.map((c) => c.id)) || [],
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@blackcode_sa/metaestetics-api",
3
3
  "private": false,
4
- "version": "1.12.1",
4
+ "version": "1.12.2",
5
5
  "description": "Firebase authentication service with anonymous upgrade support",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.mjs",