@blackcode_sa/metaestetics-api 1.12.62 → 1.12.63
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 +4 -2
- package/dist/admin/index.d.ts +4 -2
- package/dist/admin/index.js +4 -45
- package/dist/admin/index.mjs +4 -45
- package/dist/backoffice/index.d.mts +9 -0
- package/dist/backoffice/index.d.ts +9 -0
- package/dist/backoffice/index.js +11 -0
- package/dist/backoffice/index.mjs +11 -0
- package/dist/index.d.mts +99 -3
- package/dist/index.d.ts +99 -3
- package/dist/index.js +545 -281
- package/dist/index.mjs +867 -603
- package/package.json +119 -119
- package/src/__mocks__/firstore.ts +10 -10
- package/src/admin/aggregation/README.md +79 -79
- package/src/admin/aggregation/appointment/README.md +128 -128
- package/src/admin/aggregation/appointment/appointment.aggregation.service.ts +1844 -1844
- package/src/admin/aggregation/appointment/index.ts +1 -1
- package/src/admin/aggregation/clinic/README.md +52 -52
- package/src/admin/aggregation/clinic/clinic.aggregation.service.ts +703 -703
- package/src/admin/aggregation/clinic/index.ts +1 -1
- package/src/admin/aggregation/forms/README.md +13 -13
- package/src/admin/aggregation/forms/filled-forms.aggregation.service.ts +322 -322
- package/src/admin/aggregation/forms/index.ts +1 -1
- package/src/admin/aggregation/index.ts +8 -8
- package/src/admin/aggregation/patient/README.md +27 -27
- package/src/admin/aggregation/patient/index.ts +1 -1
- package/src/admin/aggregation/patient/patient.aggregation.service.ts +141 -141
- package/src/admin/aggregation/practitioner/README.md +42 -42
- package/src/admin/aggregation/practitioner/index.ts +1 -1
- package/src/admin/aggregation/practitioner/practitioner.aggregation.service.ts +433 -433
- package/src/admin/aggregation/practitioner-invite/index.ts +1 -1
- package/src/admin/aggregation/practitioner-invite/practitioner-invite.aggregation.service.ts +961 -961
- package/src/admin/aggregation/procedure/README.md +43 -43
- package/src/admin/aggregation/procedure/index.ts +1 -1
- package/src/admin/aggregation/procedure/procedure.aggregation.service.ts +702 -702
- package/src/admin/aggregation/reviews/index.ts +1 -1
- package/src/admin/aggregation/reviews/reviews.aggregation.service.ts +641 -689
- package/src/admin/booking/README.md +125 -125
- package/src/admin/booking/booking.admin.ts +1037 -1037
- package/src/admin/booking/booking.calculator.ts +712 -712
- package/src/admin/booking/booking.types.ts +59 -59
- package/src/admin/booking/index.ts +3 -3
- package/src/admin/booking/timezones-problem.md +185 -185
- package/src/admin/calendar/README.md +7 -7
- package/src/admin/calendar/calendar.admin.service.ts +345 -345
- package/src/admin/calendar/index.ts +1 -1
- package/src/admin/documentation-templates/document-manager.admin.ts +260 -260
- package/src/admin/documentation-templates/index.ts +1 -1
- package/src/admin/free-consultation/free-consultation-utils.admin.ts +148 -148
- package/src/admin/free-consultation/index.ts +1 -1
- package/src/admin/index.ts +75 -75
- package/src/admin/logger/index.ts +78 -78
- package/src/admin/mailing/README.md +95 -95
- package/src/admin/mailing/appointment/appointment.mailing.service.ts +732 -732
- package/src/admin/mailing/appointment/index.ts +1 -1
- package/src/admin/mailing/appointment/templates/patient/appointment-confirmed.html +40 -40
- package/src/admin/mailing/base.mailing.service.ts +208 -208
- package/src/admin/mailing/index.ts +3 -3
- package/src/admin/mailing/practitionerInvite/existing-practitioner-invite.mailing.ts +611 -611
- package/src/admin/mailing/practitionerInvite/index.ts +2 -2
- package/src/admin/mailing/practitionerInvite/practitionerInvite.mailing.ts +395 -395
- package/src/admin/mailing/practitionerInvite/templates/existing-practitioner-invitation.template.ts +155 -155
- package/src/admin/mailing/practitionerInvite/templates/invitation.template.ts +101 -101
- package/src/admin/mailing/practitionerInvite/templates/invite-accepted-notification.template.ts +228 -228
- package/src/admin/mailing/practitionerInvite/templates/invite-rejected-notification.template.ts +242 -242
- package/src/admin/notifications/index.ts +1 -1
- package/src/admin/notifications/notifications.admin.ts +710 -710
- package/src/admin/requirements/README.md +128 -128
- package/src/admin/requirements/index.ts +1 -1
- package/src/admin/requirements/patient-requirements.admin.service.ts +475 -475
- package/src/admin/users/index.ts +1 -1
- package/src/admin/users/user-profile.admin.ts +405 -405
- package/src/backoffice/constants/certification.constants.ts +13 -13
- package/src/backoffice/constants/index.ts +1 -1
- package/src/backoffice/errors/backoffice.errors.ts +181 -181
- package/src/backoffice/errors/index.ts +1 -1
- package/src/backoffice/expo-safe/README.md +26 -26
- package/src/backoffice/expo-safe/index.ts +41 -41
- package/src/backoffice/index.ts +5 -5
- package/src/backoffice/services/FIXES_README.md +102 -102
- package/src/backoffice/services/README.md +40 -40
- package/src/backoffice/services/brand.service.ts +256 -256
- package/src/backoffice/services/category.service.ts +318 -318
- package/src/backoffice/services/constants.service.ts +385 -385
- package/src/backoffice/services/documentation-template.service.ts +202 -202
- package/src/backoffice/services/index.ts +8 -8
- package/src/backoffice/services/migrate-products.ts +116 -116
- package/src/backoffice/services/product.service.ts +553 -553
- package/src/backoffice/services/requirement.service.ts +235 -235
- package/src/backoffice/services/subcategory.service.ts +395 -395
- package/src/backoffice/services/technology.service.ts +1083 -1070
- package/src/backoffice/types/README.md +12 -12
- package/src/backoffice/types/admin-constants.types.ts +69 -69
- package/src/backoffice/types/brand.types.ts +29 -29
- package/src/backoffice/types/category.types.ts +62 -62
- package/src/backoffice/types/documentation-templates.types.ts +28 -28
- package/src/backoffice/types/index.ts +10 -10
- package/src/backoffice/types/procedure-product.types.ts +38 -38
- package/src/backoffice/types/product.types.ts +240 -240
- package/src/backoffice/types/requirement.types.ts +63 -63
- package/src/backoffice/types/static/README.md +18 -18
- package/src/backoffice/types/static/blocking-condition.types.ts +21 -21
- package/src/backoffice/types/static/certification.types.ts +37 -37
- package/src/backoffice/types/static/contraindication.types.ts +19 -19
- package/src/backoffice/types/static/index.ts +6 -6
- package/src/backoffice/types/static/pricing.types.ts +16 -16
- package/src/backoffice/types/static/procedure-family.types.ts +14 -14
- package/src/backoffice/types/static/treatment-benefit.types.ts +22 -22
- package/src/backoffice/types/subcategory.types.ts +34 -34
- package/src/backoffice/types/technology.types.ts +163 -161
- package/src/backoffice/validations/index.ts +1 -1
- package/src/backoffice/validations/schemas.ts +164 -163
- package/src/config/__mocks__/firebase.ts +99 -99
- package/src/config/firebase.ts +78 -78
- package/src/config/index.ts +9 -9
- package/src/errors/auth.error.ts +6 -6
- package/src/errors/auth.errors.ts +200 -200
- package/src/errors/clinic.errors.ts +32 -32
- package/src/errors/firebase.errors.ts +47 -47
- package/src/errors/user.errors.ts +99 -99
- package/src/index.backup.ts +407 -407
- package/src/index.ts +6 -6
- package/src/locales/en.ts +31 -31
- package/src/recommender/admin/index.ts +1 -1
- package/src/recommender/admin/services/recommender.service.admin.ts +5 -5
- package/src/recommender/front/index.ts +1 -1
- package/src/recommender/front/services/onboarding.service.ts +5 -5
- package/src/recommender/front/services/recommender.service.ts +3 -3
- package/src/recommender/index.ts +1 -1
- package/src/services/PATIENTAUTH.MD +197 -197
- package/src/services/README.md +106 -106
- package/src/services/__tests__/auth/auth.mock.test.ts +17 -17
- package/src/services/__tests__/auth/auth.setup.ts +293 -293
- package/src/services/__tests__/auth.service.test.ts +346 -346
- package/src/services/__tests__/base.service.test.ts +77 -77
- package/src/services/__tests__/user.service.test.ts +528 -528
- package/src/services/appointment/README.md +17 -17
- package/src/services/appointment/appointment.service.ts +2505 -2082
- package/src/services/appointment/index.ts +1 -1
- package/src/services/appointment/utils/appointment.utils.ts +552 -552
- package/src/services/appointment/utils/extended-procedure.utils.ts +314 -314
- package/src/services/appointment/utils/form-initialization.utils.ts +225 -225
- package/src/services/appointment/utils/recommended-procedure.utils.ts +195 -195
- package/src/services/appointment/utils/zone-management.utils.ts +353 -353
- package/src/services/appointment/utils/zone-photo.utils.ts +152 -152
- package/src/services/auth/auth.service.ts +989 -989
- package/src/services/auth/auth.v2.service.ts +961 -961
- package/src/services/auth/index.ts +7 -7
- package/src/services/auth/utils/error.utils.ts +90 -90
- package/src/services/auth/utils/firebase.utils.ts +49 -49
- package/src/services/auth/utils/index.ts +21 -21
- package/src/services/auth/utils/practitioner.utils.ts +125 -125
- package/src/services/base.service.ts +41 -41
- package/src/services/calendar/calendar.service.ts +1077 -1077
- package/src/services/calendar/calendar.v2.service.ts +1683 -1683
- package/src/services/calendar/calendar.v3.service.ts +313 -313
- package/src/services/calendar/externalCalendar.service.ts +178 -178
- package/src/services/calendar/index.ts +5 -5
- package/src/services/calendar/synced-calendars.service.ts +743 -743
- package/src/services/calendar/utils/appointment.utils.ts +265 -265
- package/src/services/calendar/utils/calendar-event.utils.ts +646 -646
- package/src/services/calendar/utils/clinic.utils.ts +237 -237
- package/src/services/calendar/utils/docs.utils.ts +157 -157
- package/src/services/calendar/utils/google-calendar.utils.ts +697 -697
- package/src/services/calendar/utils/index.ts +8 -8
- package/src/services/calendar/utils/patient.utils.ts +198 -198
- package/src/services/calendar/utils/practitioner.utils.ts +221 -221
- package/src/services/calendar/utils/synced-calendar.utils.ts +472 -472
- package/src/services/clinic/README.md +204 -204
- package/src/services/clinic/__tests__/clinic-admin.service.test.ts +287 -287
- package/src/services/clinic/__tests__/clinic-group.service.test.ts +352 -352
- package/src/services/clinic/__tests__/clinic.service.test.ts +354 -354
- package/src/services/clinic/billing-transactions.service.ts +217 -217
- package/src/services/clinic/clinic-admin.service.ts +202 -202
- package/src/services/clinic/clinic-group.service.ts +310 -310
- package/src/services/clinic/clinic.service.ts +708 -708
- package/src/services/clinic/index.ts +5 -5
- package/src/services/clinic/practitioner-invite.service.ts +519 -519
- package/src/services/clinic/utils/admin.utils.ts +551 -551
- package/src/services/clinic/utils/clinic-group.utils.ts +646 -646
- package/src/services/clinic/utils/clinic.utils.ts +949 -949
- package/src/services/clinic/utils/filter.utils.d.ts +23 -23
- package/src/services/clinic/utils/filter.utils.ts +446 -446
- package/src/services/clinic/utils/index.ts +11 -11
- package/src/services/clinic/utils/photos.utils.ts +188 -188
- package/src/services/clinic/utils/search.utils.ts +84 -84
- package/src/services/clinic/utils/tag.utils.ts +124 -124
- package/src/services/documentation-templates/documentation-template.service.ts +537 -537
- package/src/services/documentation-templates/filled-document.service.ts +587 -587
- package/src/services/documentation-templates/index.ts +2 -2
- package/src/services/index.ts +13 -13
- package/src/services/media/index.ts +1 -1
- package/src/services/media/media.service.ts +418 -418
- package/src/services/notifications/__tests__/notification.service.test.ts +242 -242
- package/src/services/notifications/index.ts +1 -1
- package/src/services/notifications/notification.service.ts +215 -215
- package/src/services/patient/README.md +48 -48
- package/src/services/patient/To-Do.md +43 -43
- package/src/services/patient/__tests__/patient.service.test.ts +294 -294
- package/src/services/patient/index.ts +2 -2
- package/src/services/patient/patient.service.ts +883 -883
- package/src/services/patient/patientRequirements.service.ts +285 -285
- package/src/services/patient/utils/aesthetic-analysis.utils.ts +176 -176
- package/src/services/patient/utils/clinic.utils.ts +80 -80
- package/src/services/patient/utils/docs.utils.ts +142 -142
- package/src/services/patient/utils/index.ts +9 -9
- package/src/services/patient/utils/location.utils.ts +126 -126
- package/src/services/patient/utils/medical-stuff.utils.ts +143 -143
- package/src/services/patient/utils/medical.utils.ts +458 -458
- package/src/services/patient/utils/practitioner.utils.ts +260 -260
- package/src/services/patient/utils/profile.utils.ts +510 -510
- package/src/services/patient/utils/sensitive.utils.ts +260 -260
- package/src/services/patient/utils/token.utils.ts +211 -211
- package/src/services/practitioner/README.md +145 -145
- package/src/services/practitioner/index.ts +1 -1
- package/src/services/practitioner/practitioner.service.ts +1742 -1742
- package/src/services/procedure/README.md +163 -163
- package/src/services/procedure/index.ts +1 -1
- package/src/services/procedure/procedure.service.ts +1682 -1682
- package/src/services/reviews/index.ts +1 -1
- package/src/services/reviews/reviews.service.ts +636 -683
- package/src/services/user/index.ts +1 -1
- package/src/services/user/user.service.ts +489 -489
- package/src/services/user/user.v2.service.ts +466 -466
- package/src/types/appointment/index.ts +481 -453
- package/src/types/calendar/index.ts +258 -258
- package/src/types/calendar/synced-calendar.types.ts +66 -66
- package/src/types/clinic/index.ts +489 -489
- package/src/types/clinic/practitioner-invite.types.ts +91 -91
- package/src/types/clinic/preferences.types.ts +159 -159
- package/src/types/clinic/to-do +3 -3
- package/src/types/documentation-templates/index.ts +308 -308
- package/src/types/index.ts +44 -44
- package/src/types/notifications/README.md +77 -77
- package/src/types/notifications/index.ts +265 -265
- package/src/types/patient/aesthetic-analysis.types.ts +66 -66
- package/src/types/patient/allergies.ts +58 -58
- package/src/types/patient/index.ts +275 -273
- package/src/types/patient/medical-info.types.ts +152 -152
- package/src/types/patient/patient-requirements.ts +92 -92
- package/src/types/patient/token.types.ts +61 -61
- package/src/types/practitioner/index.ts +206 -206
- package/src/types/procedure/index.ts +181 -181
- package/src/types/profile/index.ts +39 -39
- package/src/types/reviews/index.ts +130 -132
- package/src/types/tz-lookup.d.ts +4 -4
- package/src/types/user/index.ts +38 -38
- package/src/utils/TIMESTAMPS.md +176 -176
- package/src/utils/TimestampUtils.ts +241 -241
- package/src/utils/index.ts +1 -1
- package/src/validations/appointment.schema.ts +574 -574
- package/src/validations/calendar.schema.ts +225 -225
- package/src/validations/clinic.schema.ts +493 -493
- package/src/validations/common.schema.ts +25 -25
- package/src/validations/documentation-templates/index.ts +1 -1
- package/src/validations/documentation-templates/template.schema.ts +220 -220
- package/src/validations/documentation-templates.schema.ts +10 -10
- package/src/validations/index.ts +20 -20
- package/src/validations/media.schema.ts +10 -10
- package/src/validations/notification.schema.ts +90 -90
- package/src/validations/patient/aesthetic-analysis.schema.ts +55 -55
- package/src/validations/patient/medical-info.schema.ts +125 -125
- package/src/validations/patient/patient-requirements.schema.ts +84 -84
- package/src/validations/patient/token.schema.ts +29 -29
- package/src/validations/patient.schema.ts +217 -216
- package/src/validations/practitioner.schema.ts +222 -222
- package/src/validations/procedure-product.schema.ts +41 -41
- package/src/validations/procedure.schema.ts +124 -124
- package/src/validations/profile-info.schema.ts +41 -41
- package/src/validations/reviews.schema.ts +189 -195
- package/src/validations/schemas.ts +104 -104
- package/src/validations/shared.schema.ts +78 -78
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
# Service Method Fixes for Procedure Creation
|
|
2
|
-
|
|
3
|
-
## Problem
|
|
4
|
-
The procedure creation components (`CreateProcedureBulk.tsx`, `CreateProcedure.tsx`, `UpdateProcedure.tsx`) were not loading categories and subcategories because the service methods were returning paginated objects instead of arrays.
|
|
5
|
-
|
|
6
|
-
## Root Cause
|
|
7
|
-
The procedure service was calling paginated methods that return objects like `{ categories, lastVisible }` instead of filter methods that return arrays like `Category[]`.
|
|
8
|
-
|
|
9
|
-
## Changes Made
|
|
10
|
-
|
|
11
|
-
### 1. Added Missing Methods
|
|
12
|
-
|
|
13
|
-
#### CategoryService
|
|
14
|
-
- **Added**: `getAllForFilterByFamily(family: ProcedureFamily): Promise<Category[]>`
|
|
15
|
-
- **Added**: Interface `ICategoryService` in `category.types.ts`
|
|
16
|
-
- **Modified**: `CategoryService` now implements `ICategoryService`
|
|
17
|
-
|
|
18
|
-
#### TechnologyService
|
|
19
|
-
- **Added**: `getAllForFilterBySubcategory(subcategoryId: string): Promise<Technology[]>`
|
|
20
|
-
- **Modified**: Added method to `ITechnologyService` interface
|
|
21
|
-
- **Modified**: `TechnologyService` implements `ITechnologyService`
|
|
22
|
-
|
|
23
|
-
#### ProductService
|
|
24
|
-
- **Added**: `getAllByTechnology(technologyId: string): Promise<Product[]>`
|
|
25
|
-
- **Modified**: Added method to `IProductService` interface
|
|
26
|
-
|
|
27
|
-
### 2. Updated Procedure Service Calls
|
|
28
|
-
|
|
29
|
-
Changed from paginated methods to filter methods:
|
|
30
|
-
|
|
31
|
-
```typescript
|
|
32
|
-
// Before (returned { categories, lastVisible })
|
|
33
|
-
await getCategoryService().getAllByFamily(family)
|
|
34
|
-
|
|
35
|
-
// After (returns Category[])
|
|
36
|
-
await getCategoryService().getAllForFilterByFamily(family)
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
// Before (returned { subcategories, lastVisible })
|
|
41
|
-
await getSubcategoryService().getAllByCategoryId(id)
|
|
42
|
-
|
|
43
|
-
// After (returns Subcategory[])
|
|
44
|
-
await getSubcategoryService().getAllForFilterByCategoryId(id)
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
```typescript
|
|
48
|
-
// Before (returned { technologies, lastVisible })
|
|
49
|
-
await getTechnologyService().getAllBySubcategoryId(id)
|
|
50
|
-
|
|
51
|
-
// After (returns Technology[])
|
|
52
|
-
await getTechnologyService().getAllForFilterBySubcategory(id)
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
56
|
-
// Before (method didn't exist)
|
|
57
|
-
await getProductService().getAllByTechnology(technologyId)
|
|
58
|
-
|
|
59
|
-
// After (returns Product[])
|
|
60
|
-
await getProductService().getAllByTechnology(technologyId)
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 3. Service Method Patterns
|
|
64
|
-
|
|
65
|
-
#### Paginated Methods (for admin UI with pagination)
|
|
66
|
-
- Return: `{ items: T[], lastVisible: DocumentData }`
|
|
67
|
-
- Example: `getAllByFamily()`, `getAllByCategoryId()`, `getAllBySubcategoryId()`
|
|
68
|
-
|
|
69
|
-
#### Filter Methods (for dropdowns/filters)
|
|
70
|
-
- Return: `T[]`
|
|
71
|
-
- Example: `getAllForFilter()`, `getAllForFilterByFamily()`, `getAllForFilterByCategoryId()`
|
|
72
|
-
|
|
73
|
-
## Files Modified
|
|
74
|
-
|
|
75
|
-
### API (Backend)
|
|
76
|
-
- `Api/src/backoffice/services/category.service.ts`
|
|
77
|
-
- `Api/src/backoffice/services/technology.service.ts`
|
|
78
|
-
- `Api/src/backoffice/services/product.service.ts`
|
|
79
|
-
- `Api/src/backoffice/types/category.types.ts`
|
|
80
|
-
- `Api/src/backoffice/types/technology.types.ts`
|
|
81
|
-
- `Api/src/backoffice/types/product.types.ts`
|
|
82
|
-
|
|
83
|
-
### Client App
|
|
84
|
-
- `ClinicApp/src/store/procedure/procedure.service.ts`
|
|
85
|
-
|
|
86
|
-
## Expected Result
|
|
87
|
-
Categories, subcategories, technologies, and products should now load correctly in:
|
|
88
|
-
- Create Procedure Bulk form
|
|
89
|
-
- Create Procedure form
|
|
90
|
-
- Update Procedure form
|
|
91
|
-
|
|
92
|
-
The dropdowns should populate with the correct options when selecting families, categories, subcategories, and technologies.
|
|
93
|
-
|
|
94
|
-
## Testing
|
|
95
|
-
1. Navigate to Create Procedure Bulk
|
|
96
|
-
2. Select a family (Aesthetics/Surgery) - categories should load
|
|
97
|
-
3. Select a category - subcategories should load
|
|
98
|
-
4. Select a subcategory - technologies should load
|
|
99
|
-
5. Select a technology - products should load and qualified practitioners should appear
|
|
100
|
-
|
|
101
|
-
## Note
|
|
102
|
-
If TypeScript errors persist about missing methods, the API package may need to be rebuilt (`npm run build` in the Api directory) for the type definitions to be updated in the consuming client application.
|
|
1
|
+
# Service Method Fixes for Procedure Creation
|
|
2
|
+
|
|
3
|
+
## Problem
|
|
4
|
+
The procedure creation components (`CreateProcedureBulk.tsx`, `CreateProcedure.tsx`, `UpdateProcedure.tsx`) were not loading categories and subcategories because the service methods were returning paginated objects instead of arrays.
|
|
5
|
+
|
|
6
|
+
## Root Cause
|
|
7
|
+
The procedure service was calling paginated methods that return objects like `{ categories, lastVisible }` instead of filter methods that return arrays like `Category[]`.
|
|
8
|
+
|
|
9
|
+
## Changes Made
|
|
10
|
+
|
|
11
|
+
### 1. Added Missing Methods
|
|
12
|
+
|
|
13
|
+
#### CategoryService
|
|
14
|
+
- **Added**: `getAllForFilterByFamily(family: ProcedureFamily): Promise<Category[]>`
|
|
15
|
+
- **Added**: Interface `ICategoryService` in `category.types.ts`
|
|
16
|
+
- **Modified**: `CategoryService` now implements `ICategoryService`
|
|
17
|
+
|
|
18
|
+
#### TechnologyService
|
|
19
|
+
- **Added**: `getAllForFilterBySubcategory(subcategoryId: string): Promise<Technology[]>`
|
|
20
|
+
- **Modified**: Added method to `ITechnologyService` interface
|
|
21
|
+
- **Modified**: `TechnologyService` implements `ITechnologyService`
|
|
22
|
+
|
|
23
|
+
#### ProductService
|
|
24
|
+
- **Added**: `getAllByTechnology(technologyId: string): Promise<Product[]>`
|
|
25
|
+
- **Modified**: Added method to `IProductService` interface
|
|
26
|
+
|
|
27
|
+
### 2. Updated Procedure Service Calls
|
|
28
|
+
|
|
29
|
+
Changed from paginated methods to filter methods:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
// Before (returned { categories, lastVisible })
|
|
33
|
+
await getCategoryService().getAllByFamily(family)
|
|
34
|
+
|
|
35
|
+
// After (returns Category[])
|
|
36
|
+
await getCategoryService().getAllForFilterByFamily(family)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// Before (returned { subcategories, lastVisible })
|
|
41
|
+
await getSubcategoryService().getAllByCategoryId(id)
|
|
42
|
+
|
|
43
|
+
// After (returns Subcategory[])
|
|
44
|
+
await getSubcategoryService().getAllForFilterByCategoryId(id)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
// Before (returned { technologies, lastVisible })
|
|
49
|
+
await getTechnologyService().getAllBySubcategoryId(id)
|
|
50
|
+
|
|
51
|
+
// After (returns Technology[])
|
|
52
|
+
await getTechnologyService().getAllForFilterBySubcategory(id)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
// Before (method didn't exist)
|
|
57
|
+
await getProductService().getAllByTechnology(technologyId)
|
|
58
|
+
|
|
59
|
+
// After (returns Product[])
|
|
60
|
+
await getProductService().getAllByTechnology(technologyId)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 3. Service Method Patterns
|
|
64
|
+
|
|
65
|
+
#### Paginated Methods (for admin UI with pagination)
|
|
66
|
+
- Return: `{ items: T[], lastVisible: DocumentData }`
|
|
67
|
+
- Example: `getAllByFamily()`, `getAllByCategoryId()`, `getAllBySubcategoryId()`
|
|
68
|
+
|
|
69
|
+
#### Filter Methods (for dropdowns/filters)
|
|
70
|
+
- Return: `T[]`
|
|
71
|
+
- Example: `getAllForFilter()`, `getAllForFilterByFamily()`, `getAllForFilterByCategoryId()`
|
|
72
|
+
|
|
73
|
+
## Files Modified
|
|
74
|
+
|
|
75
|
+
### API (Backend)
|
|
76
|
+
- `Api/src/backoffice/services/category.service.ts`
|
|
77
|
+
- `Api/src/backoffice/services/technology.service.ts`
|
|
78
|
+
- `Api/src/backoffice/services/product.service.ts`
|
|
79
|
+
- `Api/src/backoffice/types/category.types.ts`
|
|
80
|
+
- `Api/src/backoffice/types/technology.types.ts`
|
|
81
|
+
- `Api/src/backoffice/types/product.types.ts`
|
|
82
|
+
|
|
83
|
+
### Client App
|
|
84
|
+
- `ClinicApp/src/store/procedure/procedure.service.ts`
|
|
85
|
+
|
|
86
|
+
## Expected Result
|
|
87
|
+
Categories, subcategories, technologies, and products should now load correctly in:
|
|
88
|
+
- Create Procedure Bulk form
|
|
89
|
+
- Create Procedure form
|
|
90
|
+
- Update Procedure form
|
|
91
|
+
|
|
92
|
+
The dropdowns should populate with the correct options when selecting families, categories, subcategories, and technologies.
|
|
93
|
+
|
|
94
|
+
## Testing
|
|
95
|
+
1. Navigate to Create Procedure Bulk
|
|
96
|
+
2. Select a family (Aesthetics/Surgery) - categories should load
|
|
97
|
+
3. Select a category - subcategories should load
|
|
98
|
+
4. Select a subcategory - technologies should load
|
|
99
|
+
5. Select a technology - products should load and qualified practitioners should appear
|
|
100
|
+
|
|
101
|
+
## Note
|
|
102
|
+
If TypeScript errors persist about missing methods, the API package may need to be rebuilt (`npm run build` in the Api directory) for the type definitions to be updated in the consuming client application.
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
# Backoffice Services
|
|
2
|
-
|
|
3
|
-
This directory contains services used by the backoffice application.
|
|
4
|
-
|
|
5
|
-
## Services
|
|
6
|
-
|
|
7
|
-
### `CategoryService`
|
|
8
|
-
|
|
9
|
-
Manages procedure categories. Categories are the first level of organization after procedure family (aesthetics/surgery).
|
|
10
|
-
|
|
11
|
-
- **`create(category)`**: Creates a new category.
|
|
12
|
-
- **`getAll()`**: Retrieves all active categories.
|
|
13
|
-
- **`getAllByFamily(family)`**: Retrieves all active categories for a specific procedure family.
|
|
14
|
-
- **`update(id, category)`**: Updates an existing category.
|
|
15
|
-
- **`delete(id)`**: Soft deletes a category.
|
|
16
|
-
- **`getById(id)`**: Retrieves a category by its ID.
|
|
17
|
-
|
|
18
|
-
### `ProductService`
|
|
19
|
-
|
|
20
|
-
Manages products, which are sub-items of a `Technology`.
|
|
21
|
-
|
|
22
|
-
- **`create(technologyId, brandId, product)`**: Creates a new product under a technology.
|
|
23
|
-
- **`getAllByTechnology(technologyId)`**: Retrieves all products for a technology.
|
|
24
|
-
- **`getAllByBrand(brandId)`**: Retrieves all products for a brand.
|
|
25
|
-
- **`update(technologyId, productId, product)`**: Updates a product.
|
|
26
|
-
- **`delete(technologyId, productId)`**: Soft deletes a product.
|
|
27
|
-
- **`getById(technologyId, productId)`**: Retrieves a product by its ID.
|
|
28
|
-
|
|
29
|
-
### `ConstantsService`
|
|
30
|
-
|
|
31
|
-
Manages administrative constants like treatment benefits and contraindications.
|
|
32
|
-
|
|
33
|
-
- **`getTreatmentBenefits()`**: Retrieves all treatment benefits.
|
|
34
|
-
- **`addTreatmentBenefit(benefit)`**: Adds a new treatment benefit.
|
|
35
|
-
- **`updateTreatmentBenefit(benefit)`**: Updates an existing treatment benefit.
|
|
36
|
-
- **`deleteTreatmentBenefit(benefitId)`**: Deletes a treatment benefit.
|
|
37
|
-
- **`getContraindications()`**: Retrieves all contraindications.
|
|
38
|
-
- **`addContraindication(contraindication)`**: Adds a new contraindication.
|
|
39
|
-
- **`updateContraindication(contraindication)`**: Updates an existing contraindication.
|
|
40
|
-
- **`deleteContraindication(contraindicationId)`**: Deletes a contraindication.
|
|
1
|
+
# Backoffice Services
|
|
2
|
+
|
|
3
|
+
This directory contains services used by the backoffice application.
|
|
4
|
+
|
|
5
|
+
## Services
|
|
6
|
+
|
|
7
|
+
### `CategoryService`
|
|
8
|
+
|
|
9
|
+
Manages procedure categories. Categories are the first level of organization after procedure family (aesthetics/surgery).
|
|
10
|
+
|
|
11
|
+
- **`create(category)`**: Creates a new category.
|
|
12
|
+
- **`getAll()`**: Retrieves all active categories.
|
|
13
|
+
- **`getAllByFamily(family)`**: Retrieves all active categories for a specific procedure family.
|
|
14
|
+
- **`update(id, category)`**: Updates an existing category.
|
|
15
|
+
- **`delete(id)`**: Soft deletes a category.
|
|
16
|
+
- **`getById(id)`**: Retrieves a category by its ID.
|
|
17
|
+
|
|
18
|
+
### `ProductService`
|
|
19
|
+
|
|
20
|
+
Manages products, which are sub-items of a `Technology`.
|
|
21
|
+
|
|
22
|
+
- **`create(technologyId, brandId, product)`**: Creates a new product under a technology.
|
|
23
|
+
- **`getAllByTechnology(technologyId)`**: Retrieves all products for a technology.
|
|
24
|
+
- **`getAllByBrand(brandId)`**: Retrieves all products for a brand.
|
|
25
|
+
- **`update(technologyId, productId, product)`**: Updates a product.
|
|
26
|
+
- **`delete(technologyId, productId)`**: Soft deletes a product.
|
|
27
|
+
- **`getById(technologyId, productId)`**: Retrieves a product by its ID.
|
|
28
|
+
|
|
29
|
+
### `ConstantsService`
|
|
30
|
+
|
|
31
|
+
Manages administrative constants like treatment benefits and contraindications.
|
|
32
|
+
|
|
33
|
+
- **`getTreatmentBenefits()`**: Retrieves all treatment benefits.
|
|
34
|
+
- **`addTreatmentBenefit(benefit)`**: Adds a new treatment benefit.
|
|
35
|
+
- **`updateTreatmentBenefit(benefit)`**: Updates an existing treatment benefit.
|
|
36
|
+
- **`deleteTreatmentBenefit(benefitId)`**: Deletes a treatment benefit.
|
|
37
|
+
- **`getContraindications()`**: Retrieves all contraindications.
|
|
38
|
+
- **`addContraindication(contraindication)`**: Adds a new contraindication.
|
|
39
|
+
- **`updateContraindication(contraindication)`**: Updates an existing contraindication.
|
|
40
|
+
- **`deleteContraindication(contraindicationId)`**: Deletes a contraindication.
|