rez_core 4.0.111 → 4.0.113
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/.idea/250218_nodejs_core.iml +11 -8
- package/.idea/codeStyles/Project.xml +58 -58
- package/.idea/codeStyles/codeStyleConfig.xml +4 -4
- package/.idea/inspectionProfiles/Project_Default.xml +1 -1
- package/.idea/modules.xml +7 -7
- package/.idea/prettier.xml +5 -5
- package/.idea/vcs.xml +5 -5
- package/.prettierrc +3 -3
- package/README.md +99 -99
- package/dist/module/auth/guards/role.guard.js +3 -3
- package/dist/module/auth/services/auth.service.js +2 -2
- package/dist/module/filter/repository/saved-filter.repository.js +4 -4
- package/dist/module/filter/service/filter-evaluator.service.js +2 -2
- package/dist/module/filter/service/filter.service.js +22 -22
- package/dist/module/integration/examples/usage.example.js +9 -9
- package/dist/module/integration/service/integration.service.js +1 -1
- package/dist/module/integration/service/wrapper.service.js +25 -25
- package/dist/module/listmaster/service/list-master-item.service.js +2 -2
- package/dist/module/mapper/service/field-mapper.service.js +4 -4
- package/dist/module/mapper/service/mapper.service.js +2 -2
- package/dist/module/meta/service/entity-dynamic.service.js +9 -9
- package/dist/module/meta/service/entity-list.service.js +3 -3
- package/dist/module/meta/service/entity-master.service.js +3 -3
- package/dist/module/meta/service/entity-relation.service.js +11 -11
- package/dist/module/meta/service/entity-service-impl.service.js +3 -3
- package/dist/module/meta/service/resolver.service.js +3 -3
- package/dist/module/module/repository/menu.repository.js +12 -12
- package/dist/module/notification/service/notification.service.js +9 -9
- package/dist/module/user/controller/login.controller.js +18 -18
- package/dist/module/user/service/role.service.js +4 -4
- package/dist/module/user/service/user-session.service.js +2 -2
- package/dist/module/workflow/repository/action.repository.js +20 -20
- package/dist/module/workflow/repository/comm-template.repository.js +6 -6
- package/dist/module/workflow/repository/form-master.repository.js +2 -2
- package/dist/module/workflow/repository/stage-group.repository.js +23 -23
- package/dist/module/workflow/repository/stage-movement.repository.js +15 -15
- package/dist/module/workflow/repository/stage.repository.js +8 -8
- package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
- package/dist/module/workflow/service/action.service.js +7 -7
- package/dist/module/workflow/service/entity-modification.service.js +6 -6
- package/dist/module/workflow/service/stage-group.service.js +2 -2
- package/dist/module/workflow/service/stage.service.js +2 -2
- package/dist/module/workflow/service/task.service.js +28 -28
- package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
- package/dist/module/workflow/service/workflow-meta.service.js +35 -35
- package/dist/module/workflow/service/workflow.service.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/service/reflection-helper.service.js +2 -2
- package/docs/modules/event-driven-integration-design.md +91 -91
- package/docs/modules/integration.md +250 -250
- package/eslint.config.mjs +34 -34
- package/nest-cli.json +14 -14
- package/package.json +119 -119
- package/src/app.controller.ts +12 -12
- package/src/app.module.ts +52 -52
- package/src/app.service.ts +8 -8
- package/src/config/config.module.ts +18 -18
- package/src/config/database.config.ts +23 -23
- package/src/constant/global.constant.ts +67 -67
- package/src/core.module.ts +81 -81
- package/src/decorators/roles.decorator.ts +7 -7
- package/src/dtos/response.dto.ts +6 -6
- package/src/dtos/response.ts +5 -5
- package/src/index.ts +1 -1
- package/src/module/auth/auth.module.ts +49 -49
- package/src/module/auth/controller/auth.controller.ts +28 -28
- package/src/module/auth/guards/google-auth.guard.ts +9 -9
- package/src/module/auth/guards/jwt.guard.ts +22 -22
- package/src/module/auth/guards/role.guard.ts +68 -68
- package/src/module/auth/services/auth.service.ts +50 -50
- package/src/module/auth/services/jwt.service.ts +11 -11
- package/src/module/auth/strategies/google.strategy.ts +54 -54
- package/src/module/auth/strategies/jwt.strategy.ts +58 -58
- package/src/module/auth/strategies/local.strategy.ts +13 -13
- package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
- package/src/module/dashboard/dashboard.module.ts +21 -21
- package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
- package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
- package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
- package/src/module/dashboard/service/dashboard.service.ts +73 -73
- package/src/module/dev/dev.module.ts +12 -12
- package/src/module/dev/service/dev.service.ts +7 -7
- package/src/module/enterprise/controller/organization.controller.ts +36 -36
- package/src/module/enterprise/enterprise.module.ts +30 -30
- package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
- package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
- package/src/module/enterprise/entity/organization.entity.ts +92 -92
- package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
- package/src/module/enterprise/repository/organization.repository.ts +26 -26
- package/src/module/enterprise/repository/school.repository.ts +278 -278
- package/src/module/enterprise/service/brand.service.ts +5 -5
- package/src/module/enterprise/service/enterprise.service.ts +16 -16
- package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
- package/src/module/enterprise/service/organization.service.ts +145 -145
- package/src/module/filter/controller/filter.controller.ts +84 -84
- package/src/module/filter/dto/filter-request.dto.ts +38 -38
- package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
- package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
- package/src/module/filter/filter.module.ts +31 -31
- package/src/module/filter/repository/saved-filter.repository.ts +168 -168
- package/src/module/filter/service/filter-evaluator.service.ts +86 -86
- package/src/module/filter/service/filter.service.ts +1004 -1004
- package/src/module/filter/service/saved-filter.service.ts +170 -170
- package/src/module/ics/controller/ics.controller.ts +21 -21
- package/src/module/ics/dto/ics.dto.ts +55 -55
- package/src/module/ics/ics.module.ts +13 -13
- package/src/module/ics/service/ics.service.ts +57 -57
- package/src/module/integration/controller/calender-event.controller.ts +31 -31
- package/src/module/integration/controller/integration.controller.ts +662 -662
- package/src/module/integration/controller/wrapper.controller.ts +37 -37
- package/src/module/integration/dto/create-config.dto.ts +526 -526
- package/src/module/integration/entity/integration-config.entity.ts +112 -112
- package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
- package/src/module/integration/entity/integration-source.entity.ts +17 -17
- package/src/module/integration/entity/user-integration.entity.ts +71 -71
- package/src/module/integration/examples/usage.example.ts +338 -338
- package/src/module/integration/factories/base.factory.ts +7 -7
- package/src/module/integration/factories/email.factory.ts +49 -49
- package/src/module/integration/factories/integration.factory.ts +121 -121
- package/src/module/integration/factories/sms.factory.ts +51 -51
- package/src/module/integration/factories/telephone.factory.ts +41 -41
- package/src/module/integration/factories/whatsapp.factory.ts +56 -56
- package/src/module/integration/integration.module.ts +110 -110
- package/src/module/integration/service/calendar-event.service.ts +118 -118
- package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
- package/src/module/integration/service/integration-queue.service.ts +229 -229
- package/src/module/integration/service/integration.service.ts +2633 -2633
- package/src/module/integration/service/oauth.service.ts +224 -224
- package/src/module/integration/service/wrapper.service.ts +493 -493
- package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
- package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
- package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
- package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
- package/src/module/integration/strategies/integration.strategy.ts +97 -97
- package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
- package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
- package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
- package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
- package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
- package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
- package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
- package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
- package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
- package/src/module/layout/controller/layout.controller.ts +47 -47
- package/src/module/layout/entity/header-items.entity.ts +28 -28
- package/src/module/layout/entity/header-section.entity.ts +19 -19
- package/src/module/layout/layout.module.ts +21 -21
- package/src/module/layout/repository/header-items.repository.ts +18 -18
- package/src/module/layout/repository/header-section.repository.ts +22 -22
- package/src/module/layout/service/header-section.service.ts +25 -25
- package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
- package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
- package/src/module/layout_preference/layout_preference.module.ts +22 -22
- package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
- package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
- package/src/module/lead/controller/lead.controller.ts +30 -30
- package/src/module/lead/lead.module.ts +14 -14
- package/src/module/lead/repository/lead.repository.ts +41 -41
- package/src/module/lead/service/lead.service.ts +54 -54
- package/src/module/listmaster/controller/list-master.controller.ts +230 -230
- package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
- package/src/module/listmaster/entity/list-master.entity.ts +33 -33
- package/src/module/listmaster/listmaster.module.ts +46 -46
- package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
- package/src/module/listmaster/repository/list-master.repository.ts +46 -46
- package/src/module/listmaster/service/list-master-engine.ts +19 -19
- package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
- package/src/module/listmaster/service/list-master-item.service.ts +292 -292
- package/src/module/listmaster/service/list-master-registry.ts +15 -15
- package/src/module/listmaster/service/list-master.service.ts +535 -535
- package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
- package/src/module/mapper/controller/mapper.controller.ts +20 -20
- package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
- package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
- package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
- package/src/module/mapper/entity/mapper.entity.ts +16 -16
- package/src/module/mapper/mapper.module.ts +34 -34
- package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
- package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
- package/src/module/mapper/repository/mapper.repository.ts +15 -15
- package/src/module/mapper/service/field-mapper.service.ts +266 -266
- package/src/module/mapper/service/mapper.service.ts +79 -79
- package/src/module/master/controller/master.controller.ts +74 -74
- package/src/module/master/service/master.service.ts +483 -483
- package/src/module/meta/controller/app-master.controller.ts +38 -38
- package/src/module/meta/controller/attribute-master.controller.ts +66 -66
- package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
- package/src/module/meta/controller/entity-master.controller.ts +28 -28
- package/src/module/meta/controller/entity-relation.controller.ts +36 -36
- package/src/module/meta/controller/entity.controller.ts +392 -392
- package/src/module/meta/controller/entity.public.controller.ts +75 -75
- package/src/module/meta/controller/media.controller.ts +107 -107
- package/src/module/meta/controller/meta.controller.ts +96 -96
- package/src/module/meta/controller/view-master.controller.ts +86 -86
- package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
- package/src/module/meta/dto/entity-tab.dto.ts +4 -4
- package/src/module/meta/dto/entity-table.dto.ts +9 -9
- package/src/module/meta/entity/app-master.entity.ts +34 -34
- package/src/module/meta/entity/attribute-master.entity.ts +89 -89
- package/src/module/meta/entity/base-entity.entity.ts +75 -75
- package/src/module/meta/entity/entity-master.entity.ts +85 -85
- package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
- package/src/module/meta/entity/entity-relation.entity.ts +23 -23
- package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
- package/src/module/meta/entity/entity-table.entity.ts +50 -50
- package/src/module/meta/entity/media-data.entity.ts +32 -32
- package/src/module/meta/entity/preference.entity.ts +62 -62
- package/src/module/meta/entity/view-master.entity.ts +41 -41
- package/src/module/meta/entity.module.ts +158 -158
- package/src/module/meta/repository/app-master.repository.ts +20 -20
- package/src/module/meta/repository/attribute-master.repository.ts +118 -118
- package/src/module/meta/repository/entity-master.repository.ts +69 -69
- package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
- package/src/module/meta/repository/entity-table.repository.ts +53 -53
- package/src/module/meta/repository/media-data.repository.ts +50 -50
- package/src/module/meta/repository/preference.repository.ts +20 -20
- package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
- package/src/module/meta/repository/view-master.repository.ts +42 -42
- package/src/module/meta/service/app-master.service.ts +37 -37
- package/src/module/meta/service/attribute-master.service.ts +126 -126
- package/src/module/meta/service/common.service.ts +9 -9
- package/src/module/meta/service/entity-dynamic.service.ts +819 -819
- package/src/module/meta/service/entity-list.service.ts +205 -205
- package/src/module/meta/service/entity-master.service.ts +169 -169
- package/src/module/meta/service/entity-realation-data.service.ts +9 -9
- package/src/module/meta/service/entity-relation.service.ts +69 -69
- package/src/module/meta/service/entity-service-impl.service.ts +525 -525
- package/src/module/meta/service/entity-table-column.service.ts +39 -39
- package/src/module/meta/service/entity-table.service.ts +150 -150
- package/src/module/meta/service/entity-validation.service.ts +187 -187
- package/src/module/meta/service/entity.service.ts +67 -67
- package/src/module/meta/service/field-group.service.ts +103 -103
- package/src/module/meta/service/media-data.service.ts +507 -507
- package/src/module/meta/service/populate-meta.service.ts +193 -193
- package/src/module/meta/service/preference.service.ts +16 -16
- package/src/module/meta/service/resolver.service.ts +267 -267
- package/src/module/meta/service/section-master.service.ts +104 -104
- package/src/module/meta/service/update-form-json.service.ts +22 -22
- package/src/module/meta/service/user-app-mapping.service.ts +17 -17
- package/src/module/meta/service/view-master.service.ts +127 -127
- package/src/module/microservice-client/microservice-clients.module.ts +13 -13
- package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
- package/src/module/microservice-client/service/microservice-clients.ts +4 -4
- package/src/module/module/controller/menu.controller.ts +15 -15
- package/src/module/module/controller/module-access.controller.ts +134 -134
- package/src/module/module/entity/menu.entity.ts +43 -43
- package/src/module/module/entity/module-access.entity.ts +25 -25
- package/src/module/module/entity/module-action.entity.ts +17 -17
- package/src/module/module/entity/module.entity.ts +52 -52
- package/src/module/module/module.module.ts +42 -42
- package/src/module/module/repository/menu.repository.ts +184 -184
- package/src/module/module/repository/module-access.repository.ts +344 -344
- package/src/module/module/service/menu.service.ts +82 -82
- package/src/module/module/service/module-access.service.ts +209 -209
- package/src/module/notification/controller/notification.controller.ts +58 -58
- package/src/module/notification/controller/otp.controller.ts +117 -117
- package/src/module/notification/entity/notification.entity.ts +26 -26
- package/src/module/notification/entity/otp.entity.ts +28 -28
- package/src/module/notification/firebase-admin.config.ts +22 -22
- package/src/module/notification/notification.module.ts +69 -69
- package/src/module/notification/repository/otp.repository.ts +27 -27
- package/src/module/notification/service/email.service.ts +127 -127
- package/src/module/notification/service/notification.service.ts +163 -163
- package/src/module/notification/service/otp.service.ts +132 -132
- package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
- package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
- package/src/module/third-party-module/service/api-registry.service.ts +13 -13
- package/src/module/third-party-module/third-party.module.ts +12 -12
- package/src/module/user/controller/login.controller.ts +197 -197
- package/src/module/user/controller/user.controller.ts +40 -40
- package/src/module/user/dto/create-user.dto.ts +62 -62
- package/src/module/user/dto/update-user.dto.ts +4 -4
- package/src/module/user/entity/role.entity.ts +33 -33
- package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
- package/src/module/user/entity/user-session.entity.ts +73 -73
- package/src/module/user/entity/user.entity.ts +59 -59
- package/src/module/user/repository/role.repository.ts +96 -96
- package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
- package/src/module/user/repository/user.repository.ts +50 -50
- package/src/module/user/repository/userSession.repository.ts +33 -33
- package/src/module/user/service/login.service.ts +290 -290
- package/src/module/user/service/role.service.ts +189 -189
- package/src/module/user/service/user-role-mapping.service.ts +98 -98
- package/src/module/user/service/user-session.service.ts +168 -168
- package/src/module/user/service/user.service.ts +365 -365
- package/src/module/user/user.module.ts +65 -65
- package/src/module/workflow/controller/action-category.controller.ts +54 -54
- package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
- package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
- package/src/module/workflow/controller/action.controller.ts +111 -111
- package/src/module/workflow/controller/activity-log.controller.ts +55 -55
- package/src/module/workflow/controller/comm-template.controller.ts +43 -43
- package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
- package/src/module/workflow/controller/form-master.controller.ts +43 -43
- package/src/module/workflow/controller/stage-group.controller.ts +48 -48
- package/src/module/workflow/controller/stage.controller.ts +50 -50
- package/src/module/workflow/controller/task.controller.ts +77 -77
- package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
- package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
- package/src/module/workflow/controller/workflow.controller.ts +67 -67
- package/src/module/workflow/entity/action-category.entity.ts +38 -38
- package/src/module/workflow/entity/action-data.entity.ts +55 -55
- package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
- package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
- package/src/module/workflow/entity/action.entity.ts +50 -50
- package/src/module/workflow/entity/activity-log.entity.ts +43 -43
- package/src/module/workflow/entity/comm-template.entity.ts +43 -43
- package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
- package/src/module/workflow/entity/form.entity.ts +25 -25
- package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
- package/src/module/workflow/entity/stage-group.entity.ts +23 -23
- package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
- package/src/module/workflow/entity/stage.entity.ts +20 -20
- package/src/module/workflow/entity/task-data.entity.ts +88 -88
- package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
- package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
- package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
- package/src/module/workflow/entity/workflow.entity.ts +20 -20
- package/src/module/workflow/repository/action-category.repository.ts +79 -79
- package/src/module/workflow/repository/action-data.repository.ts +333 -333
- package/src/module/workflow/repository/action.repository.ts +323 -323
- package/src/module/workflow/repository/activity-log.repository.ts +148 -148
- package/src/module/workflow/repository/comm-template.repository.ts +149 -149
- package/src/module/workflow/repository/form-master.repository.ts +59 -59
- package/src/module/workflow/repository/stage-group.repository.ts +176 -176
- package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
- package/src/module/workflow/repository/stage.repository.ts +172 -172
- package/src/module/workflow/repository/task.repository.ts +127 -127
- package/src/module/workflow/repository/workflow.repository.ts +42 -42
- package/src/module/workflow/service/action-category.service.ts +33 -33
- package/src/module/workflow/service/action-data.service.ts +62 -62
- package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
- package/src/module/workflow/service/action-template-mapping.service.ts +106 -106
- package/src/module/workflow/service/action.service.ts +279 -279
- package/src/module/workflow/service/activity-log.service.ts +107 -107
- package/src/module/workflow/service/comm-template.service.ts +180 -180
- package/src/module/workflow/service/entity-modification.service.ts +67 -67
- package/src/module/workflow/service/form-master.service.ts +35 -35
- package/src/module/workflow/service/populate-workflow.service.ts +303 -303
- package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
- package/src/module/workflow/service/stage-group.service.ts +319 -319
- package/src/module/workflow/service/stage.service.ts +199 -199
- package/src/module/workflow/service/task.service.ts +560 -560
- package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
- package/src/module/workflow/service/workflow-meta.service.ts +640 -640
- package/src/module/workflow/service/workflow.service.ts +205 -205
- package/src/module/workflow/workflow.module.ts +176 -176
- package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -21
- package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
- package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -35
- package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
- package/src/module/workflow-automation/interface/action.interface.ts +5 -5
- package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
- package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
- package/src/module/workflow-automation/service/workflow-automation.service.ts +347 -347
- package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
- package/src/resources/dev.properties.yaml +30 -30
- package/src/resources/local.properties.yaml +27 -27
- package/src/resources/properties.module.ts +12 -12
- package/src/resources/properties.yaml.ts +11 -11
- package/src/resources/uat.properties.yaml +31 -31
- package/src/table.config.ts +126 -126
- package/src/utils/dto/excel-data.dto.ts +14 -14
- package/src/utils/dto/excelsheet-data.dto.ts +5 -5
- package/src/utils/service/base64util.service.ts +18 -18
- package/src/utils/service/clockIDGenUtil.service.ts +21 -21
- package/src/utils/service/codeGenerator.service.ts +22 -22
- package/src/utils/service/dateUtil.service.ts +17 -17
- package/src/utils/service/encryptUtil.service.ts +97 -97
- package/src/utils/service/excel-helper.service.ts +72 -72
- package/src/utils/service/excelUtil.service.ts +15 -15
- package/src/utils/service/file-util.service.ts +11 -11
- package/src/utils/service/json-util.service.ts +23 -23
- package/src/utils/service/loggingUtil.service.ts +34 -34
- package/src/utils/service/reflection-helper.service.ts +62 -62
- package/src/utils/service/wbsCodeGen.service.ts +8 -8
- package/src/utils/utils.module.ts +25 -25
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +24 -24
- package/.claude/settings.local.json +0 -26
- package/.idea/copilot.data.migration.agent.xml +0 -6
- package/.idea/copilot.data.migration.ask.xml +0 -6
- package/.idea/copilot.data.migration.ask2agent.xml +0 -6
- package/.idea/copilot.data.migration.edit.xml +0 -6
- package/.idea/misc.xml +0 -6
- package/server.log +0 -850
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BadRequestException,
|
|
3
|
-
Inject,
|
|
4
|
-
Injectable,
|
|
5
|
-
NotFoundException,
|
|
6
|
-
} from '@nestjs/common';
|
|
7
|
-
import { InjectRepository } from '@nestjs/typeorm';
|
|
8
|
-
import { DataSource, Repository } from 'typeorm';
|
|
9
|
-
import { FormDataEntity } from '../entity/form.entity';
|
|
10
|
-
import { UserData } from 'src/module/user/entity/user.entity';
|
|
11
|
-
|
|
12
|
-
@Injectable()
|
|
13
|
-
export class FormMasterRepository {
|
|
14
|
-
constructor(
|
|
15
|
-
private readonly dataSource: DataSource,
|
|
16
|
-
// @InjectRepository(FormDataEntity)
|
|
17
|
-
// private readonly formRepo: Repository<FormDataEntity>,
|
|
18
|
-
) {}
|
|
19
|
-
|
|
20
|
-
async getForms(organization_id: number, source_entity_type: string) {
|
|
21
|
-
const forms = await this.dataSource.query(
|
|
22
|
-
`SELECT fm.id as fm_id, fm.name as fm_form_name
|
|
23
|
-
FROM frm_entity_view fm
|
|
24
|
-
WHERE fm.organization_id = ? AND fm.mapped_entity_type = ?`,
|
|
25
|
-
[organization_id, source_entity_type],
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
const formatted = forms.map((form: any) => ({
|
|
29
|
-
label: form.fm_form_name,
|
|
30
|
-
value: form.fm_id,
|
|
31
|
-
}));
|
|
32
|
-
|
|
33
|
-
return formatted;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// to_be_sent
|
|
37
|
-
// saved
|
|
38
|
-
// sent
|
|
39
|
-
// submitted
|
|
40
|
-
// resubmit_requested
|
|
41
|
-
// accepted
|
|
42
|
-
|
|
43
|
-
async submitForm(redirect_data: any, loggedInUser: UserData) {
|
|
44
|
-
// const currentForm = await this.formMasterEntity.findOneBy({
|
|
45
|
-
// mapped_entity_id: redirect_data.entity_id,
|
|
46
|
-
// mapped_entity_type: redirect_data.entity_type,
|
|
47
|
-
// view_id: redirect_data.view_id,
|
|
48
|
-
// });
|
|
49
|
-
|
|
50
|
-
// if (!currentForm) {
|
|
51
|
-
// throw new NotFoundException('Form not found');
|
|
52
|
-
// }
|
|
53
|
-
|
|
54
|
-
// currentForm.status = 'submitted';
|
|
55
|
-
|
|
56
|
-
// return this.formMasterEntity.update(currentForm.id, currentForm);
|
|
57
|
-
return 'frm_form_master is removed package. So, this function is deactivated.';
|
|
58
|
-
}
|
|
59
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
BadRequestException,
|
|
3
|
+
Inject,
|
|
4
|
+
Injectable,
|
|
5
|
+
NotFoundException,
|
|
6
|
+
} from '@nestjs/common';
|
|
7
|
+
import { InjectRepository } from '@nestjs/typeorm';
|
|
8
|
+
import { DataSource, Repository } from 'typeorm';
|
|
9
|
+
import { FormDataEntity } from '../entity/form.entity';
|
|
10
|
+
import { UserData } from 'src/module/user/entity/user.entity';
|
|
11
|
+
|
|
12
|
+
@Injectable()
|
|
13
|
+
export class FormMasterRepository {
|
|
14
|
+
constructor(
|
|
15
|
+
private readonly dataSource: DataSource,
|
|
16
|
+
// @InjectRepository(FormDataEntity)
|
|
17
|
+
// private readonly formRepo: Repository<FormDataEntity>,
|
|
18
|
+
) {}
|
|
19
|
+
|
|
20
|
+
async getForms(organization_id: number, source_entity_type: string) {
|
|
21
|
+
const forms = await this.dataSource.query(
|
|
22
|
+
`SELECT fm.id as fm_id, fm.name as fm_form_name
|
|
23
|
+
FROM frm_entity_view fm
|
|
24
|
+
WHERE fm.organization_id = ? AND fm.mapped_entity_type = ?`,
|
|
25
|
+
[organization_id, source_entity_type],
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
const formatted = forms.map((form: any) => ({
|
|
29
|
+
label: form.fm_form_name,
|
|
30
|
+
value: form.fm_id,
|
|
31
|
+
}));
|
|
32
|
+
|
|
33
|
+
return formatted;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// to_be_sent
|
|
37
|
+
// saved
|
|
38
|
+
// sent
|
|
39
|
+
// submitted
|
|
40
|
+
// resubmit_requested
|
|
41
|
+
// accepted
|
|
42
|
+
|
|
43
|
+
async submitForm(redirect_data: any, loggedInUser: UserData) {
|
|
44
|
+
// const currentForm = await this.formMasterEntity.findOneBy({
|
|
45
|
+
// mapped_entity_id: redirect_data.entity_id,
|
|
46
|
+
// mapped_entity_type: redirect_data.entity_type,
|
|
47
|
+
// view_id: redirect_data.view_id,
|
|
48
|
+
// });
|
|
49
|
+
|
|
50
|
+
// if (!currentForm) {
|
|
51
|
+
// throw new NotFoundException('Form not found');
|
|
52
|
+
// }
|
|
53
|
+
|
|
54
|
+
// currentForm.status = 'submitted';
|
|
55
|
+
|
|
56
|
+
// return this.formMasterEntity.update(currentForm.id, currentForm);
|
|
57
|
+
return 'frm_form_master is removed package. So, this function is deactivated.';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -1,176 +1,176 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BadRequestException,
|
|
3
|
-
Inject,
|
|
4
|
-
Injectable,
|
|
5
|
-
NotFoundException,
|
|
6
|
-
} from '@nestjs/common';
|
|
7
|
-
import { StageGroup } from '../entity/stage-group.entity';
|
|
8
|
-
import { InjectRepository } from '@nestjs/typeorm';
|
|
9
|
-
import { DataSource, Repository } from 'typeorm';
|
|
10
|
-
import { MediaDataService } from 'src/module/meta/service/media-data.service';
|
|
11
|
-
|
|
12
|
-
@Injectable()
|
|
13
|
-
export class StageGroupRepository {
|
|
14
|
-
constructor(
|
|
15
|
-
@InjectRepository(StageGroup)
|
|
16
|
-
private readonly stageGroupRepository: Repository<StageGroup>,
|
|
17
|
-
private readonly dataSource: DataSource,
|
|
18
|
-
private readonly mediaDataService: MediaDataService,
|
|
19
|
-
) {}
|
|
20
|
-
|
|
21
|
-
async getAllStageGroup(workflow_id: number, organization_id: number) {
|
|
22
|
-
if (!workflow_id) {
|
|
23
|
-
throw new BadRequestException('workflow_id is required');
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const result = await this.stageGroupRepository.find({
|
|
27
|
-
where: {
|
|
28
|
-
workflow_id,
|
|
29
|
-
organization_id,
|
|
30
|
-
},
|
|
31
|
-
order: {
|
|
32
|
-
sequence: 'ASC',
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
if (!result || result.length === 0) {
|
|
37
|
-
throw new NotFoundException(
|
|
38
|
-
'No stage groups found for the given workflow ID',
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
async getAllStageGroupByCondition(condition: any) {
|
|
46
|
-
const result = await this.stageGroupRepository.find({
|
|
47
|
-
where: {
|
|
48
|
-
...condition,
|
|
49
|
-
},
|
|
50
|
-
order: {
|
|
51
|
-
sequence: 'ASC',
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
if (!result || result.length === 0) {
|
|
56
|
-
throw new NotFoundException(
|
|
57
|
-
'No stage groups found for the given workflow ID',
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
async getAllStageGroupAndStageHierarchy(
|
|
65
|
-
workflow_id: number,
|
|
66
|
-
loggedInUser: any, // required for media service
|
|
67
|
-
lead_id: number,
|
|
68
|
-
) {
|
|
69
|
-
if (!workflow_id) {
|
|
70
|
-
throw new BadRequestException('workflow_id is required');
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Step 1: Get all stage groups
|
|
74
|
-
const stageGroups = await this.getAllStageGroupByCondition({
|
|
75
|
-
workflow_id,
|
|
76
|
-
organization_id: loggedInUser.organization_id,
|
|
77
|
-
// level_id: loggedInUser.level_id,
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
if (!stageGroups.length) return [];
|
|
81
|
-
|
|
82
|
-
// Step 2: Get all stages for these stage groups
|
|
83
|
-
const stageGroupIds = stageGroups.map((sg) => sg.id);
|
|
84
|
-
const stagesRaw = await this.dataSource.query(
|
|
85
|
-
`
|
|
86
|
-
SELECT
|
|
87
|
-
frm_wf_stage.*
|
|
88
|
-
FROM frm_wf_stage
|
|
89
|
-
WHERE frm_wf_stage.stage_group_id IN (${stageGroupIds.map(() => '?').join(',')})
|
|
90
|
-
AND frm_wf_stage.organization_id = ?
|
|
91
|
-
ORDER BY frm_wf_stage.sequence ASC
|
|
92
|
-
`,
|
|
93
|
-
[...stageGroupIds, loggedInUser.organization_id],
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
const stageIds = stagesRaw.map((s) => s.id);
|
|
97
|
-
|
|
98
|
-
// Task counts
|
|
99
|
-
const taskCounts = await this.dataSource.query(
|
|
100
|
-
`
|
|
101
|
-
SELECT stage_id, COUNT(*) AS task_count
|
|
102
|
-
FROM frm_wf_task_data
|
|
103
|
-
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND is_system=0 AND mapped_entity_id = ?
|
|
104
|
-
GROUP BY stage_id
|
|
105
|
-
`,
|
|
106
|
-
[...stageIds, lead_id],
|
|
107
|
-
);
|
|
108
|
-
|
|
109
|
-
// Meeting counts
|
|
110
|
-
const meetingCounts = await this.dataSource.query(
|
|
111
|
-
`
|
|
112
|
-
SELECT stage_id, COUNT(*) AS meeting_count
|
|
113
|
-
FROM crm_lead_meeting
|
|
114
|
-
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
|
|
115
|
-
GROUP BY stage_id
|
|
116
|
-
`,
|
|
117
|
-
[...stageIds, lead_id],
|
|
118
|
-
);
|
|
119
|
-
|
|
120
|
-
// Send communication counts
|
|
121
|
-
const sendCommCounts = await this.dataSource.query(
|
|
122
|
-
`
|
|
123
|
-
SELECT stage_id, COUNT(*) AS send_comm_count
|
|
124
|
-
FROM crm_lead_communication
|
|
125
|
-
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
|
|
126
|
-
AND type IN ('SEND', 'LOG')
|
|
127
|
-
GROUP BY stage_id
|
|
128
|
-
`,
|
|
129
|
-
[...stageIds, lead_id],
|
|
130
|
-
);
|
|
131
|
-
|
|
132
|
-
// Convert to maps for quick lookup
|
|
133
|
-
const taskCountMap = new Map(
|
|
134
|
-
taskCounts.map((row) => [Number(row.stage_id), Number(row.task_count)]),
|
|
135
|
-
);
|
|
136
|
-
const meetingCountMap = new Map(
|
|
137
|
-
meetingCounts.map((row) => [
|
|
138
|
-
Number(row.stage_id),
|
|
139
|
-
Number(row.meeting_count),
|
|
140
|
-
]),
|
|
141
|
-
);
|
|
142
|
-
const sendCommCountMap = new Map(
|
|
143
|
-
sendCommCounts.map((row) => [
|
|
144
|
-
Number(row.stage_id),
|
|
145
|
-
Number(row.send_comm_count),
|
|
146
|
-
]),
|
|
147
|
-
);
|
|
148
|
-
|
|
149
|
-
// Step 4: Add counts & profile to each stage
|
|
150
|
-
|
|
151
|
-
// Step 5: Group stages by stage_group_id
|
|
152
|
-
const stageMap = new Map<number, any[]>();
|
|
153
|
-
for (const stage of stagesRaw) {
|
|
154
|
-
const stageId = Number(stage.id); // ensure number
|
|
155
|
-
|
|
156
|
-
stage.task_count = taskCountMap.get(stageId) || 0;
|
|
157
|
-
stage.meeting_count = meetingCountMap.get(stageId) || 0;
|
|
158
|
-
stage.send_comm_count = sendCommCountMap.get(stageId) || 0;
|
|
159
|
-
|
|
160
|
-
if (!stageMap.has(stage.stage_group_id)) {
|
|
161
|
-
stageMap.set(stage.stage_group_id, []);
|
|
162
|
-
}
|
|
163
|
-
stageMap.get(stage.stage_group_id)?.push(stage);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Step 5: Attach stages with counts to stage groups
|
|
167
|
-
const result = stageGroups.map((stageGroup) => {
|
|
168
|
-
return {
|
|
169
|
-
...stageGroup,
|
|
170
|
-
stages: stageMap.get(Number(stageGroup.id)) || [],
|
|
171
|
-
};
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
return result;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
BadRequestException,
|
|
3
|
+
Inject,
|
|
4
|
+
Injectable,
|
|
5
|
+
NotFoundException,
|
|
6
|
+
} from '@nestjs/common';
|
|
7
|
+
import { StageGroup } from '../entity/stage-group.entity';
|
|
8
|
+
import { InjectRepository } from '@nestjs/typeorm';
|
|
9
|
+
import { DataSource, Repository } from 'typeorm';
|
|
10
|
+
import { MediaDataService } from 'src/module/meta/service/media-data.service';
|
|
11
|
+
|
|
12
|
+
@Injectable()
|
|
13
|
+
export class StageGroupRepository {
|
|
14
|
+
constructor(
|
|
15
|
+
@InjectRepository(StageGroup)
|
|
16
|
+
private readonly stageGroupRepository: Repository<StageGroup>,
|
|
17
|
+
private readonly dataSource: DataSource,
|
|
18
|
+
private readonly mediaDataService: MediaDataService,
|
|
19
|
+
) {}
|
|
20
|
+
|
|
21
|
+
async getAllStageGroup(workflow_id: number, organization_id: number) {
|
|
22
|
+
if (!workflow_id) {
|
|
23
|
+
throw new BadRequestException('workflow_id is required');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const result = await this.stageGroupRepository.find({
|
|
27
|
+
where: {
|
|
28
|
+
workflow_id,
|
|
29
|
+
organization_id,
|
|
30
|
+
},
|
|
31
|
+
order: {
|
|
32
|
+
sequence: 'ASC',
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
if (!result || result.length === 0) {
|
|
37
|
+
throw new NotFoundException(
|
|
38
|
+
'No stage groups found for the given workflow ID',
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async getAllStageGroupByCondition(condition: any) {
|
|
46
|
+
const result = await this.stageGroupRepository.find({
|
|
47
|
+
where: {
|
|
48
|
+
...condition,
|
|
49
|
+
},
|
|
50
|
+
order: {
|
|
51
|
+
sequence: 'ASC',
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
if (!result || result.length === 0) {
|
|
56
|
+
throw new NotFoundException(
|
|
57
|
+
'No stage groups found for the given workflow ID',
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async getAllStageGroupAndStageHierarchy(
|
|
65
|
+
workflow_id: number,
|
|
66
|
+
loggedInUser: any, // required for media service
|
|
67
|
+
lead_id: number,
|
|
68
|
+
) {
|
|
69
|
+
if (!workflow_id) {
|
|
70
|
+
throw new BadRequestException('workflow_id is required');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Step 1: Get all stage groups
|
|
74
|
+
const stageGroups = await this.getAllStageGroupByCondition({
|
|
75
|
+
workflow_id,
|
|
76
|
+
organization_id: loggedInUser.organization_id,
|
|
77
|
+
// level_id: loggedInUser.level_id,
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
if (!stageGroups.length) return [];
|
|
81
|
+
|
|
82
|
+
// Step 2: Get all stages for these stage groups
|
|
83
|
+
const stageGroupIds = stageGroups.map((sg) => sg.id);
|
|
84
|
+
const stagesRaw = await this.dataSource.query(
|
|
85
|
+
`
|
|
86
|
+
SELECT
|
|
87
|
+
frm_wf_stage.*
|
|
88
|
+
FROM frm_wf_stage
|
|
89
|
+
WHERE frm_wf_stage.stage_group_id IN (${stageGroupIds.map(() => '?').join(',')})
|
|
90
|
+
AND frm_wf_stage.organization_id = ?
|
|
91
|
+
ORDER BY frm_wf_stage.sequence ASC
|
|
92
|
+
`,
|
|
93
|
+
[...stageGroupIds, loggedInUser.organization_id],
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
const stageIds = stagesRaw.map((s) => s.id);
|
|
97
|
+
|
|
98
|
+
// Task counts
|
|
99
|
+
const taskCounts = await this.dataSource.query(
|
|
100
|
+
`
|
|
101
|
+
SELECT stage_id, COUNT(*) AS task_count
|
|
102
|
+
FROM frm_wf_task_data
|
|
103
|
+
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND is_system=0 AND mapped_entity_id = ?
|
|
104
|
+
GROUP BY stage_id
|
|
105
|
+
`,
|
|
106
|
+
[...stageIds, lead_id],
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
// Meeting counts
|
|
110
|
+
const meetingCounts = await this.dataSource.query(
|
|
111
|
+
`
|
|
112
|
+
SELECT stage_id, COUNT(*) AS meeting_count
|
|
113
|
+
FROM crm_lead_meeting
|
|
114
|
+
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
|
|
115
|
+
GROUP BY stage_id
|
|
116
|
+
`,
|
|
117
|
+
[...stageIds, lead_id],
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
// Send communication counts
|
|
121
|
+
const sendCommCounts = await this.dataSource.query(
|
|
122
|
+
`
|
|
123
|
+
SELECT stage_id, COUNT(*) AS send_comm_count
|
|
124
|
+
FROM crm_lead_communication
|
|
125
|
+
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
|
|
126
|
+
AND type IN ('SEND', 'LOG')
|
|
127
|
+
GROUP BY stage_id
|
|
128
|
+
`,
|
|
129
|
+
[...stageIds, lead_id],
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
// Convert to maps for quick lookup
|
|
133
|
+
const taskCountMap = new Map(
|
|
134
|
+
taskCounts.map((row) => [Number(row.stage_id), Number(row.task_count)]),
|
|
135
|
+
);
|
|
136
|
+
const meetingCountMap = new Map(
|
|
137
|
+
meetingCounts.map((row) => [
|
|
138
|
+
Number(row.stage_id),
|
|
139
|
+
Number(row.meeting_count),
|
|
140
|
+
]),
|
|
141
|
+
);
|
|
142
|
+
const sendCommCountMap = new Map(
|
|
143
|
+
sendCommCounts.map((row) => [
|
|
144
|
+
Number(row.stage_id),
|
|
145
|
+
Number(row.send_comm_count),
|
|
146
|
+
]),
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
// Step 4: Add counts & profile to each stage
|
|
150
|
+
|
|
151
|
+
// Step 5: Group stages by stage_group_id
|
|
152
|
+
const stageMap = new Map<number, any[]>();
|
|
153
|
+
for (const stage of stagesRaw) {
|
|
154
|
+
const stageId = Number(stage.id); // ensure number
|
|
155
|
+
|
|
156
|
+
stage.task_count = taskCountMap.get(stageId) || 0;
|
|
157
|
+
stage.meeting_count = meetingCountMap.get(stageId) || 0;
|
|
158
|
+
stage.send_comm_count = sendCommCountMap.get(stageId) || 0;
|
|
159
|
+
|
|
160
|
+
if (!stageMap.has(stage.stage_group_id)) {
|
|
161
|
+
stageMap.set(stage.stage_group_id, []);
|
|
162
|
+
}
|
|
163
|
+
stageMap.get(stage.stage_group_id)?.push(stage);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Step 5: Attach stages with counts to stage groups
|
|
167
|
+
const result = stageGroups.map((stageGroup) => {
|
|
168
|
+
return {
|
|
169
|
+
...stageGroup,
|
|
170
|
+
stages: stageMap.get(Number(stageGroup.id)) || [],
|
|
171
|
+
};
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
}
|