rez_core 5.0.38 → 5.0.39
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/.claude/settings.local.json +26 -0
- package/.idea/250218_nodejs_core.iml +8 -11
- package/.idea/codeStyles/Project.xml +58 -58
- package/.idea/codeStyles/codeStyleConfig.xml +4 -4
- package/.idea/copilot.data.migration.agent.xml +6 -0
- package/.idea/copilot.data.migration.ask.xml +6 -0
- package/.idea/copilot.data.migration.ask2agent.xml +6 -0
- package/.idea/copilot.data.migration.edit.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +1 -1
- package/.idea/misc.xml +6 -0
- 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/config/database.config.js +1 -1
- package/dist/config/database.config.js.map +1 -1
- 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 +26 -26
- 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/meta/repository/entity-attribute-update.repository.js +3 -3
- package/dist/module/meta/repository/entity-master.repository.js +6 -6
- package/dist/module/meta/service/entity-dynamic.service.js +44 -44
- package/dist/module/meta/service/entity-list.service.js +3 -3
- package/dist/module/meta/service/entity-relation.service.js +9 -9
- 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 +10 -10
- 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 +20 -20
- package/dist/module/workflow/repository/stage-movement.repository.js +17 -17
- package/dist/module/workflow/repository/stage.repository.js +8 -8
- package/dist/module/workflow/service/action-template-mapping.service.js +13 -13
- package/dist/module/workflow/service/action.service.js +7 -7
- package/dist/module/workflow/service/entity-modification.service.js +2 -2
- 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 +35 -35
- package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
- package/dist/module/workflow/service/workflow-meta.service.js +26 -26
- package/dist/module/workflow/service/workflow.service.js +2 -2
- package/dist/module/workflow-automation/service/schedule-handler.service.js +9 -9
- package/dist/module/workflow-schedule/processors/schedule.processor.js +4 -4
- package/dist/module/workflow-schedule/service/workflow-schedule.service.js +9 -9
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/service/reflection-helper.service.d.ts +1 -1
- package/dist/utils/service/reflection-helper.service.js +4 -4
- package/dist/utils/service/reflection-helper.service.js.map +1 -1
- 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 +124 -124
- package/server.log +850 -0
- package/src/app.controller.ts +12 -12
- package/src/app.module.ts +66 -66
- package/src/app.service.ts +8 -8
- package/src/config/bull.config.ts +69 -69
- package/src/config/config.module.ts +17 -17
- package/src/config/database.config.ts +48 -48
- package/src/constant/global.constant.ts +67 -67
- package/src/core.module.ts +91 -91
- 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/entity_json/controller/entity_json.controller.ts +47 -47
- package/src/module/entity_json/entity/entityJson.entity.ts +39 -39
- package/src/module/entity_json/entity_json.module.ts +18 -18
- package/src/module/entity_json/service/entityJson.repository.ts +37 -37
- package/src/module/entity_json/service/entity_json.service.ts +234 -234
- 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 +1144 -1144
- 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 +701 -701
- 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/linked_attributes/controller/linked_attributes.controller.ts +37 -37
- package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -51
- package/src/module/linked_attributes/linked_attributes.module.ts +16 -16
- package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
- package/src/module/linked_attributes/service/linked_attributes.service.ts +75 -75
- 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 +173 -173
- 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 +544 -544
- 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 +35 -35
- 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 +32 -32
- package/src/module/mapper/service/field-mapper.service.ts +271 -271
- package/src/module/mapper/service/mapper.service.ts +81 -81
- 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 +84 -84
- package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
- package/src/module/meta/controller/entity-master.controller.ts +41 -41
- 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 +92 -92
- 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 +166 -166
- package/src/module/meta/repository/app-master.repository.ts +20 -20
- package/src/module/meta/repository/attribute-master.repository.ts +138 -138
- package/src/module/meta/repository/entity-attribute-update.repository.ts +44 -44
- package/src/module/meta/repository/entity-master.repository.ts +111 -111
- 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 +130 -130
- package/src/module/meta/service/common.service.ts +9 -9
- package/src/module/meta/service/entity-attribute-update.service.ts +28 -28
- package/src/module/meta/service/entity-dynamic.service.ts +809 -809
- package/src/module/meta/service/entity-list.service.ts +205 -205
- package/src/module/meta/service/entity-master.service.ts +171 -171
- package/src/module/meta/service/entity-realation-data.service.ts +9 -9
- package/src/module/meta/service/entity-relation.service.ts +87 -87
- 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 +271 -271
- 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 +194 -194
- 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 +160 -160
- package/src/module/notification/service/otp.service.ts +133 -133
- 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 +198 -198
- 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 +326 -326
- 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 +368 -368
- 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 +53 -53
- 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 +334 -334
- package/src/module/workflow/repository/action.repository.ts +324 -324
- 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 +197 -197
- package/src/module/workflow/repository/stage-movement.repository.ts +246 -246
- package/src/module/workflow/repository/stage.repository.ts +172 -172
- package/src/module/workflow/repository/task.repository.ts +134 -134
- 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 +131 -131
- 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 +61 -61
- 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 +342 -342
- package/src/module/workflow/service/stage.service.ts +199 -199
- package/src/module/workflow/service/task.service.ts +558 -558
- package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
- package/src/module/workflow/service/workflow-meta.service.ts +654 -654
- package/src/module/workflow/service/workflow.service.ts +205 -205
- package/src/module/workflow/workflow.module.ts +180 -180
- package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
- package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
- package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
- package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -40
- 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/schedule-handler.service.ts +168 -168
- package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +224 -224
- package/src/module/workflow-automation/service/workflow-automation.service.ts +515 -515
- package/src/module/workflow-automation/workflow-automation.module.ts +54 -54
- package/src/module/workflow-schedule/INSTALLATION.md +244 -244
- package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
- package/src/module/workflow-schedule/README.md +422 -422
- package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
- package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +255 -255
- package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
- package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
- package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
- package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
- package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
- package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
- package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
- package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
- package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -53
- package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
- package/src/module/workflow-schedule/processors/schedule.processor.ts +584 -584
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +600 -600
- package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
- package/src/resources/dev.properties.yaml +31 -31
- 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 +133 -133
- 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 +88 -88
- 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 +27 -27
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +24 -24
|
@@ -24,10 +24,10 @@ let ActionRepository = class ActionRepository {
|
|
|
24
24
|
}
|
|
25
25
|
async getReasonCode(loggedInUser) {
|
|
26
26
|
const { organization_id } = loggedInUser;
|
|
27
|
-
const result = await this.dataSource.query(`
|
|
28
|
-
SELECT name, type
|
|
29
|
-
FROM frm_list_master
|
|
30
|
-
WHERE organization_id = $1 AND source = 'master'
|
|
27
|
+
const result = await this.dataSource.query(`
|
|
28
|
+
SELECT name, type
|
|
29
|
+
FROM frm_list_master
|
|
30
|
+
WHERE organization_id = $1 AND source = 'master'
|
|
31
31
|
`, [organization_id]);
|
|
32
32
|
const formatted = result.map((item) => ({
|
|
33
33
|
label: item.name,
|
|
@@ -40,10 +40,10 @@ let ActionRepository = class ActionRepository {
|
|
|
40
40
|
if (!list_type) {
|
|
41
41
|
throw new common_1.BadRequestException('list_type is required');
|
|
42
42
|
}
|
|
43
|
-
const result = await this.dataSource.query(`
|
|
44
|
-
SELECT name, id
|
|
45
|
-
FROM frm_list_master_items
|
|
46
|
-
WHERE listtype = $1 AND organization_id = $2
|
|
43
|
+
const result = await this.dataSource.query(`
|
|
44
|
+
SELECT name, id
|
|
45
|
+
FROM frm_list_master_items
|
|
46
|
+
WHERE listtype = $1 AND organization_id = $2
|
|
47
47
|
`, [list_type, organization_id]);
|
|
48
48
|
return result.map((row) => ({
|
|
49
49
|
label: row.name,
|
|
@@ -52,19 +52,19 @@ let ActionRepository = class ActionRepository {
|
|
|
52
52
|
}
|
|
53
53
|
async getActions(loggedInUser, stage_id) {
|
|
54
54
|
const { organization_id } = loggedInUser;
|
|
55
|
-
const stageActions = await this.dataSource.query(`
|
|
56
|
-
SELECT id, action_id
|
|
57
|
-
FROM frm_wf_stage_action_mapping
|
|
58
|
-
WHERE stage_id = $1
|
|
55
|
+
const stageActions = await this.dataSource.query(`
|
|
56
|
+
SELECT id, action_id
|
|
57
|
+
FROM frm_wf_stage_action_mapping
|
|
58
|
+
WHERE stage_id = $1
|
|
59
59
|
`, [stage_id]);
|
|
60
60
|
if (!stageActions?.length)
|
|
61
61
|
return [];
|
|
62
62
|
const actionIds = stageActions.map((sa) => sa.action_id);
|
|
63
63
|
const mappingIds = stageActions.map((sa) => sa.id);
|
|
64
|
-
const templateMappings = await this.dataSource.query(`
|
|
65
|
-
SELECT stg_act_mapping_id, template_code
|
|
66
|
-
FROM frm_wf_action_template_mapping
|
|
67
|
-
WHERE stg_act_mapping_id IN (${mappingIds.map(() => '?').join(',')})
|
|
64
|
+
const templateMappings = await this.dataSource.query(`
|
|
65
|
+
SELECT stg_act_mapping_id, template_code
|
|
66
|
+
FROM frm_wf_action_template_mapping
|
|
67
|
+
WHERE stg_act_mapping_id IN (${mappingIds.map(() => '?').join(',')})
|
|
68
68
|
`, mappingIds);
|
|
69
69
|
const templateCodes = templateMappings.map((tm) => tm.template_code);
|
|
70
70
|
const templateCodeToName = {};
|
|
@@ -128,10 +128,10 @@ let ActionRepository = class ActionRepository {
|
|
|
128
128
|
return enrichedResult;
|
|
129
129
|
}
|
|
130
130
|
async getDependentActions(loggedInUser, stage_id, action_id) {
|
|
131
|
-
const stageActions = await this.dataSource.query(`
|
|
132
|
-
SELECT action_id
|
|
133
|
-
FROM frm_wf_stage_action_mapping
|
|
134
|
-
WHERE stage_id = $1
|
|
131
|
+
const stageActions = await this.dataSource.query(`
|
|
132
|
+
SELECT action_id
|
|
133
|
+
FROM frm_wf_stage_action_mapping
|
|
134
|
+
WHERE stage_id = $1
|
|
135
135
|
`, [stage_id]);
|
|
136
136
|
if (!stageActions?.length)
|
|
137
137
|
return [];
|
|
@@ -30,17 +30,17 @@ let CommTemplateRepository = class CommTemplateRepository {
|
|
|
30
30
|
const { organization_id, level_id, level_type } = loggedInUser;
|
|
31
31
|
let is_template;
|
|
32
32
|
if (action_id) {
|
|
33
|
-
const [actionResult] = await this.dataSource.query(`SELECT is_template
|
|
34
|
-
FROM frm_wf_action
|
|
35
|
-
WHERE id = $1 AND organization_id = $2
|
|
33
|
+
const [actionResult] = await this.dataSource.query(`SELECT is_template
|
|
34
|
+
FROM frm_wf_action
|
|
35
|
+
WHERE id = $1 AND organization_id = $2
|
|
36
36
|
LIMIT 1`, [action_id, organization_id]);
|
|
37
37
|
if (!actionResult) {
|
|
38
38
|
throw new Error('Invalid action_id');
|
|
39
39
|
}
|
|
40
40
|
is_template = actionResult.is_template;
|
|
41
|
-
await this.dataSource.query(`UPDATE frm_wf_comm_template
|
|
42
|
-
SET is_template = $1
|
|
43
|
-
WHERE mapped_entity_type = $2
|
|
41
|
+
await this.dataSource.query(`UPDATE frm_wf_comm_template
|
|
42
|
+
SET is_template = $1
|
|
43
|
+
WHERE mapped_entity_type = $2
|
|
44
44
|
AND organization_id = $3 AND level_id = $4 AND level_type=$5`, [is_template, entity_type, organization_id, level_id, level_type]);
|
|
45
45
|
}
|
|
46
46
|
const whereCondition = {
|
|
@@ -17,8 +17,8 @@ let FormMasterRepository = class FormMasterRepository {
|
|
|
17
17
|
this.dataSource = dataSource;
|
|
18
18
|
}
|
|
19
19
|
async getForms(organization_id, source_entity_type) {
|
|
20
|
-
const forms = await this.dataSource.query(`SELECT fm.id as fm_id, fm.name as fm_form_name
|
|
21
|
-
FROM frm_entity_view fm
|
|
20
|
+
const forms = await this.dataSource.query(`SELECT fm.id as fm_id, fm.name as fm_form_name
|
|
21
|
+
FROM frm_entity_view fm
|
|
22
22
|
WHERE fm.organization_id = $1 AND fm.mapped_entity_type = $2`, [organization_id, source_entity_type]);
|
|
23
23
|
const formatted = forms.map((form) => ({
|
|
24
24
|
label: form.fm_form_name,
|
|
@@ -88,28 +88,28 @@ let StageGroupRepository = class StageGroupRepository {
|
|
|
88
88
|
.map((_, idx) => `$${idx + 1}`)
|
|
89
89
|
.join(", ");
|
|
90
90
|
const params_task = [...stageIds];
|
|
91
|
-
const taskCounts = await this.dataSource.query(`
|
|
92
|
-
SELECT stage_id, COUNT(*) AS task_count
|
|
93
|
-
FROM frm_wf_task_data
|
|
94
|
-
WHERE stage_id IN (${stagePlaceholders})
|
|
95
|
-
AND is_system = FALSE
|
|
96
|
-
AND mapped_entity_id = ${lead_id}
|
|
97
|
-
GROUP BY stage_id
|
|
91
|
+
const taskCounts = await this.dataSource.query(`
|
|
92
|
+
SELECT stage_id, COUNT(*) AS task_count
|
|
93
|
+
FROM frm_wf_task_data
|
|
94
|
+
WHERE stage_id IN (${stagePlaceholders})
|
|
95
|
+
AND is_system = FALSE
|
|
96
|
+
AND mapped_entity_id = ${lead_id}
|
|
97
|
+
GROUP BY stage_id
|
|
98
98
|
`, params_task);
|
|
99
|
-
const meetingCounts = await this.dataSource.query(`
|
|
100
|
-
SELECT stage_id, COUNT(*) AS meeting_count
|
|
101
|
-
FROM crm_lead_meeting
|
|
102
|
-
WHERE stage_id IN (${stagePlaceholders})
|
|
103
|
-
AND mapped_entity_id = ${lead_id}
|
|
104
|
-
GROUP BY stage_id
|
|
99
|
+
const meetingCounts = await this.dataSource.query(`
|
|
100
|
+
SELECT stage_id, COUNT(*) AS meeting_count
|
|
101
|
+
FROM crm_lead_meeting
|
|
102
|
+
WHERE stage_id IN (${stagePlaceholders})
|
|
103
|
+
AND mapped_entity_id = ${lead_id}
|
|
104
|
+
GROUP BY stage_id
|
|
105
105
|
`, params_task);
|
|
106
|
-
const sendCommCounts = await this.dataSource.query(`
|
|
107
|
-
SELECT stage_id, COUNT(*) AS send_comm_count
|
|
108
|
-
FROM crm_lead_communication
|
|
109
|
-
WHERE stage_id IN (${stagePlaceholders})
|
|
110
|
-
AND mapped_entity_id = ${lead_id}
|
|
111
|
-
AND type IN ('SEND','LOG')
|
|
112
|
-
GROUP BY stage_id
|
|
106
|
+
const sendCommCounts = await this.dataSource.query(`
|
|
107
|
+
SELECT stage_id, COUNT(*) AS send_comm_count
|
|
108
|
+
FROM crm_lead_communication
|
|
109
|
+
WHERE stage_id IN (${stagePlaceholders})
|
|
110
|
+
AND mapped_entity_id = ${lead_id}
|
|
111
|
+
AND type IN ('SEND','LOG')
|
|
112
|
+
GROUP BY stage_id
|
|
113
113
|
`, params_task);
|
|
114
114
|
const taskCountMap = new Map(taskCounts.map((r) => [Number(r.stage_id), Number(r.task_count)]));
|
|
115
115
|
const meetingCountMap = new Map(meetingCounts.map((r) => [Number(r.stage_id), Number(r.meeting_count)]));
|
|
@@ -107,26 +107,26 @@ let StageMovementRepository = class StageMovementRepository {
|
|
|
107
107
|
return nextStageGroupFirstStage || null;
|
|
108
108
|
}
|
|
109
109
|
async getAllActionByStageId(stageId) {
|
|
110
|
-
const result = await this.dataSource.query(`
|
|
111
|
-
SELECT
|
|
112
|
-
a.*,
|
|
113
|
-
m.id AS mapping_id,
|
|
114
|
-
m.stage_id,
|
|
115
|
-
ac.code AS action_category_code
|
|
116
|
-
FROM frm_wf_action a
|
|
117
|
-
LEFT JOIN frm_wf_stage_action_mapping m
|
|
118
|
-
ON a.id = m.action_id::bigint
|
|
119
|
-
LEFT JOIN frm_wf_action_category ac
|
|
120
|
-
ON a.action_category::bigint = ac.id
|
|
121
|
-
WHERE m.stage_id::bigint = $1
|
|
110
|
+
const result = await this.dataSource.query(`
|
|
111
|
+
SELECT
|
|
112
|
+
a.*,
|
|
113
|
+
m.id AS mapping_id,
|
|
114
|
+
m.stage_id,
|
|
115
|
+
ac.code AS action_category_code
|
|
116
|
+
FROM frm_wf_action a
|
|
117
|
+
LEFT JOIN frm_wf_stage_action_mapping m
|
|
118
|
+
ON a.id = m.action_id::bigint
|
|
119
|
+
LEFT JOIN frm_wf_action_category ac
|
|
120
|
+
ON a.action_category::bigint = ac.id
|
|
121
|
+
WHERE m.stage_id::bigint = $1
|
|
122
122
|
`, [Number(stageId)]);
|
|
123
123
|
for (const item of result) {
|
|
124
124
|
if (item.action_category_code === 'SDFM') {
|
|
125
|
-
const actionData = await this.dataSource.query(`
|
|
126
|
-
SELECT arm.form_id
|
|
127
|
-
FROM frm_wf_action_resources_mapping arm
|
|
128
|
-
WHERE arm.stg_act_mapping_id = $1 and form_id IS NOT NULL
|
|
129
|
-
LIMIT 1
|
|
125
|
+
const actionData = await this.dataSource.query(`
|
|
126
|
+
SELECT arm.form_id
|
|
127
|
+
FROM frm_wf_action_resources_mapping arm
|
|
128
|
+
WHERE arm.stg_act_mapping_id = $1 and form_id IS NOT NULL
|
|
129
|
+
LIMIT 1
|
|
130
130
|
`, [item.mapping_id]);
|
|
131
131
|
item.form_id = actionData[0]?.form_id || null;
|
|
132
132
|
}
|
|
@@ -62,14 +62,14 @@ let StageRepository = class StageRepository {
|
|
|
62
62
|
if (!stageGroup) {
|
|
63
63
|
return [];
|
|
64
64
|
}
|
|
65
|
-
const rows = await this.dataSource.query(`
|
|
66
|
-
SELECT
|
|
67
|
-
g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
|
|
68
|
-
s.*
|
|
69
|
-
FROM frm_wf_stage_group g
|
|
70
|
-
INNER JOIN frm_wf_stage s ON s.stage_group_id = g.id
|
|
71
|
-
WHERE g.workflow_id = $1 AND g.organization_id = $2 AND g.id = $3
|
|
72
|
-
ORDER BY g.id, s.id
|
|
65
|
+
const rows = await this.dataSource.query(`
|
|
66
|
+
SELECT
|
|
67
|
+
g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
|
|
68
|
+
s.*
|
|
69
|
+
FROM frm_wf_stage_group g
|
|
70
|
+
INNER JOIN frm_wf_stage s ON s.stage_group_id = g.id
|
|
71
|
+
WHERE g.workflow_id = $1 AND g.organization_id = $2 AND g.id = $3
|
|
72
|
+
ORDER BY g.id, s.id
|
|
73
73
|
`, [stageGroup.workflow_id, organization_id, stage_group_id]);
|
|
74
74
|
if (!rows || rows.length === 0) {
|
|
75
75
|
return [];
|
|
@@ -29,9 +29,9 @@ let ActionTemplateMappingService = class ActionTemplateMappingService extends en
|
|
|
29
29
|
async getTemplateByMode(stage_id, action_id, loggedInUser, mode) {
|
|
30
30
|
let stageAction = [];
|
|
31
31
|
if (action_id != 0) {
|
|
32
|
-
stageAction = await this.dataSource.query(`
|
|
33
|
-
SELECT id FROM frm_wf_stage_action_mapping
|
|
34
|
-
WHERE action_id = $1
|
|
32
|
+
stageAction = await this.dataSource.query(`
|
|
33
|
+
SELECT id FROM frm_wf_stage_action_mapping
|
|
34
|
+
WHERE action_id = $1
|
|
35
35
|
`, [action_id]);
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
@@ -82,23 +82,23 @@ let ActionTemplateMappingService = class ActionTemplateMappingService extends en
|
|
|
82
82
|
return [];
|
|
83
83
|
const stgActMappingId = stageAction[0].id;
|
|
84
84
|
if (!mode) {
|
|
85
|
-
const getModeFromAction = await this.dataSource.query(`
|
|
86
|
-
SELECT mode FROM frm_wf_action
|
|
87
|
-
WHERE id = $1
|
|
85
|
+
const getModeFromAction = await this.dataSource.query(`
|
|
86
|
+
SELECT mode FROM frm_wf_action
|
|
87
|
+
WHERE id = $1
|
|
88
88
|
`, [action_id]);
|
|
89
89
|
mode = getModeFromAction[0]?.mode;
|
|
90
90
|
}
|
|
91
|
-
const templates = await this.dataSource.query(`
|
|
92
|
-
SELECT template_code FROM frm_wf_action_resources_mapping
|
|
93
|
-
WHERE stg_act_mapping_id = $1
|
|
91
|
+
const templates = await this.dataSource.query(`
|
|
92
|
+
SELECT template_code FROM frm_wf_action_resources_mapping
|
|
93
|
+
WHERE stg_act_mapping_id = $1
|
|
94
94
|
`, [stgActMappingId]);
|
|
95
95
|
const templateCodes = templates.map((t) => t.template_code);
|
|
96
96
|
if (!templateCodes.length)
|
|
97
97
|
return [];
|
|
98
|
-
const commTemplates = await this.dataSource.query(`
|
|
99
|
-
SELECT code as value, name as label , id
|
|
100
|
-
FROM frm_wf_comm_template
|
|
101
|
-
WHERE code IN ($1) AND mode = $2 AND organization_id = $3 AND level_type = $4 AND level_id = $5 AND status IN (SELECT id FROM frm_list_master_items WHERE code = 'STATUS_ACTIVE' AND organization_id = $6)
|
|
98
|
+
const commTemplates = await this.dataSource.query(`
|
|
99
|
+
SELECT code as value, name as label , id
|
|
100
|
+
FROM frm_wf_comm_template
|
|
101
|
+
WHERE code IN ($1) AND mode = $2 AND organization_id = $3 AND level_type = $4 AND level_id = $5 AND status IN (SELECT id FROM frm_list_master_items WHERE code = 'STATUS_ACTIVE' AND organization_id = $6)
|
|
102
102
|
`, [
|
|
103
103
|
templateCodes,
|
|
104
104
|
mode,
|
|
@@ -25,12 +25,12 @@ let ActionService = class ActionService extends entity_service_impl_service_1.En
|
|
|
25
25
|
if (!actionData) {
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
28
|
-
const result = await this.dataSource.query(`SELECT template_code, form_id
|
|
29
|
-
FROM frm_wf_action_resources_mapping
|
|
30
|
-
WHERE stg_act_mapping_id IN (
|
|
31
|
-
SELECT id
|
|
32
|
-
FROM frm_wf_stage_action_mapping
|
|
33
|
-
WHERE action_id = $1 AND entity_type = 'WFSA'
|
|
28
|
+
const result = await this.dataSource.query(`SELECT template_code, form_id
|
|
29
|
+
FROM frm_wf_action_resources_mapping
|
|
30
|
+
WHERE stg_act_mapping_id IN (
|
|
31
|
+
SELECT id
|
|
32
|
+
FROM frm_wf_stage_action_mapping
|
|
33
|
+
WHERE action_id = $1 AND entity_type = 'WFSA'
|
|
34
34
|
)`, [actionData.id]);
|
|
35
35
|
const templates = result
|
|
36
36
|
.filter((t) => t.template_code !== null)
|
|
@@ -136,7 +136,7 @@ let ActionService = class ActionService extends entity_service_impl_service_1.En
|
|
|
136
136
|
return action;
|
|
137
137
|
}
|
|
138
138
|
async deleteEntity(entityType, id, loggedInUser) {
|
|
139
|
-
await this.dataSource.query(`DELETE FROM frm_wf_action_template_mapping WHERE stg_act_mapping_id IN (SELECT
|
|
139
|
+
await this.dataSource.query(`DELETE FROM frm_wf_action_template_mapping WHERE stg_act_mapping_id IN (SELECT
|
|
140
140
|
id FROM frm_wf_stage_action_mapping WHERE action_id = $1 AND entity_type = 'WFSA')`, [id]);
|
|
141
141
|
await this.dataSource.query(`DELETE FROM frm_wf_stage_action_mapping WHERE action_id = $1 AND entity_type ='WFSA'`, [id]);
|
|
142
142
|
const deleteAction = await super.deleteEntity(entityType, id, loggedInUser);
|
|
@@ -29,8 +29,8 @@ let EntityModificationService = class EntityModificationService extends entity_s
|
|
|
29
29
|
throw new common_1.NotFoundException('Entity metadata not found in frm_entity_master');
|
|
30
30
|
}
|
|
31
31
|
const tableName = entityMeta.db_table_name;
|
|
32
|
-
const [entityRow] = await this.dataSource.query(`
|
|
33
|
-
SELECT * FROM ${tableName} WHERE id = $1
|
|
32
|
+
const [entityRow] = await this.dataSource.query(`
|
|
33
|
+
SELECT * FROM ${tableName} WHERE id = $1
|
|
34
34
|
`, [mapped_entity_id]);
|
|
35
35
|
if (!entityRow) {
|
|
36
36
|
throw new common_1.NotFoundException(`No record found in ${tableName} with ID ${mapped_entity_id}`);
|
|
@@ -42,8 +42,8 @@ let StageGroupService = class StageGroupService extends entity_service_impl_serv
|
|
|
42
42
|
}
|
|
43
43
|
async getAllStageGroup(workflow_id, organization_id) {
|
|
44
44
|
const allStageGroup = await this.stageGroupRepository.getAllStageGroup(workflow_id, organization_id);
|
|
45
|
-
const statusListMaster = await this.dataSource.query(`SELECT id, name
|
|
46
|
-
FROM frm_list_master_items
|
|
45
|
+
const statusListMaster = await this.dataSource.query(`SELECT id, name
|
|
46
|
+
FROM frm_list_master_items
|
|
47
47
|
WHERE listtype = 'STS' AND organization_id = $1`, [organization_id]);
|
|
48
48
|
const statusMap = new Map(statusListMaster.map((s) => [String(s.id), s.name]));
|
|
49
49
|
for (const stage of allStageGroup) {
|
|
@@ -35,8 +35,8 @@ let StageService = StageService_1 = class StageService extends entity_service_im
|
|
|
35
35
|
async getAllStage(payload, organization_id, show_previous) {
|
|
36
36
|
if (!show_previous) {
|
|
37
37
|
const allStages = await this.stageRepository.getAllStage(payload.stage_group_id, organization_id);
|
|
38
|
-
const statusListMaster = await this.dataSource.query(`SELECT id, name
|
|
39
|
-
FROM frm_list_master_items
|
|
38
|
+
const statusListMaster = await this.dataSource.query(`SELECT id, name
|
|
39
|
+
FROM frm_list_master_items
|
|
40
40
|
WHERE listtype = 'STS' AND organization_id = $1`, [organization_id]);
|
|
41
41
|
const statusMap = new Map(statusListMaster.map((s) => [String(s.id), s.name]));
|
|
42
42
|
for (const stage of allStages) {
|
|
@@ -101,24 +101,24 @@ let TaskService = class TaskService extends entity_service_impl_service_1.Entity
|
|
|
101
101
|
return createdEntity;
|
|
102
102
|
}
|
|
103
103
|
async updateEntity(entityData, loggedInUser, appcode) {
|
|
104
|
-
const taskStatusQuery = `
|
|
105
|
-
SELECT name
|
|
106
|
-
FROM frm_list_master_items
|
|
107
|
-
WHERE id = $1
|
|
108
|
-
AND organization_id = $2
|
|
109
|
-
AND listtype = 'TKST'
|
|
110
|
-
LIMIT 1;
|
|
104
|
+
const taskStatusQuery = `
|
|
105
|
+
SELECT name
|
|
106
|
+
FROM frm_list_master_items
|
|
107
|
+
WHERE id = $1
|
|
108
|
+
AND organization_id = $2
|
|
109
|
+
AND listtype = 'TKST'
|
|
110
|
+
LIMIT 1;
|
|
111
111
|
`;
|
|
112
112
|
const statusRows = await this.dataSource.query(taskStatusQuery, [
|
|
113
113
|
entityData.status,
|
|
114
114
|
loggedInUser.organization_id,
|
|
115
115
|
]);
|
|
116
|
-
const oldStatusQuery = `
|
|
117
|
-
SELECT *
|
|
118
|
-
FROM frm_wf_task_data
|
|
119
|
-
WHERE id = $1
|
|
120
|
-
AND organization_id = $2
|
|
121
|
-
LIMIT 1;
|
|
116
|
+
const oldStatusQuery = `
|
|
117
|
+
SELECT *
|
|
118
|
+
FROM frm_wf_task_data
|
|
119
|
+
WHERE id = $1
|
|
120
|
+
AND organization_id = $2
|
|
121
|
+
LIMIT 1;
|
|
122
122
|
`;
|
|
123
123
|
const [oldRow] = await this.dataSource.query(oldStatusQuery, [
|
|
124
124
|
entityData.id,
|
|
@@ -216,27 +216,27 @@ let TaskService = class TaskService extends entity_service_impl_service_1.Entity
|
|
|
216
216
|
params.push(mandatory ? "1" : "0");
|
|
217
217
|
}
|
|
218
218
|
if (overdue) {
|
|
219
|
-
whereClauses.push(`
|
|
220
|
-
(
|
|
221
|
-
t.due_date < CURRENT_DATE
|
|
222
|
-
OR (t.due_date = CURRENT_DATE AND t.due_time < CURRENT_TIME)
|
|
223
|
-
)
|
|
219
|
+
whereClauses.push(`
|
|
220
|
+
(
|
|
221
|
+
t.due_date < CURRENT_DATE
|
|
222
|
+
OR (t.due_date = CURRENT_DATE AND t.due_time < CURRENT_TIME)
|
|
223
|
+
)
|
|
224
224
|
`);
|
|
225
225
|
whereClauses.push(`t.is_done::text = $${idx++}`);
|
|
226
226
|
params.push("0");
|
|
227
227
|
}
|
|
228
|
-
const sql = `
|
|
229
|
-
SELECT
|
|
230
|
-
t.*,
|
|
231
|
-
sg.name AS stage_group_name,
|
|
232
|
-
s.name AS stage_name,
|
|
233
|
-
a.name AS action_name
|
|
234
|
-
FROM frm_wf_task_data t
|
|
235
|
-
LEFT JOIN frm_wf_stage s ON t.stage_id::text = s.id::text
|
|
236
|
-
LEFT JOIN frm_wf_stage_group sg ON s.stage_group_id = sg.id
|
|
237
|
-
LEFT JOIN frm_wf_action a ON t.action_id::text = a.id::text
|
|
238
|
-
WHERE ${whereClauses.join(" AND ")}
|
|
239
|
-
ORDER BY t.created_date DESC
|
|
228
|
+
const sql = `
|
|
229
|
+
SELECT
|
|
230
|
+
t.*,
|
|
231
|
+
sg.name AS stage_group_name,
|
|
232
|
+
s.name AS stage_name,
|
|
233
|
+
a.name AS action_name
|
|
234
|
+
FROM frm_wf_task_data t
|
|
235
|
+
LEFT JOIN frm_wf_stage s ON t.stage_id::text = s.id::text
|
|
236
|
+
LEFT JOIN frm_wf_stage_group sg ON s.stage_group_id = sg.id
|
|
237
|
+
LEFT JOIN frm_wf_action a ON t.action_id::text = a.id::text
|
|
238
|
+
WHERE ${whereClauses.join(" AND ")}
|
|
239
|
+
ORDER BY t.created_date DESC
|
|
240
240
|
`;
|
|
241
241
|
const taskData = await this.dataSource.query(sql, params);
|
|
242
242
|
if (taskData?.length) {
|
|
@@ -258,11 +258,11 @@ let TaskService = class TaskService extends entity_service_impl_service_1.Entity
|
|
|
258
258
|
}
|
|
259
259
|
if (!taskData.length)
|
|
260
260
|
return [];
|
|
261
|
-
const statusSql = `
|
|
262
|
-
SELECT id, name
|
|
263
|
-
FROM frm_list_master_items
|
|
264
|
-
WHERE organization_id = $1
|
|
265
|
-
AND listtype = 'TKST'
|
|
261
|
+
const statusSql = `
|
|
262
|
+
SELECT id, name
|
|
263
|
+
FROM frm_list_master_items
|
|
264
|
+
WHERE organization_id = $1
|
|
265
|
+
AND listtype = 'TKST'
|
|
266
266
|
`;
|
|
267
267
|
const allStatuses = await this.dataSource.query(statusSql, [
|
|
268
268
|
loggedInUser.organization_id,
|
|
@@ -19,16 +19,16 @@ let WorkflowListMasterService = class WorkflowListMasterService extends entity_s
|
|
|
19
19
|
this.dataSource = dataSource;
|
|
20
20
|
}
|
|
21
21
|
async getActionCategoryListByStageId(stageId) {
|
|
22
|
-
const results = await this.dataSource.query(`
|
|
23
|
-
SELECT
|
|
24
|
-
ac.name AS name,
|
|
25
|
-
ac.logo AS logo,
|
|
26
|
-
ac.modalName AS modalName,
|
|
27
|
-
a.action_requirement AS actionRequirement
|
|
28
|
-
FROM frm_wf_stage_action_mapping sam
|
|
29
|
-
JOIN frm_wf_action a ON sam.action_id = a.id
|
|
30
|
-
JOIN frm_wf_action_category ac ON a.action_category = ac.id
|
|
31
|
-
WHERE sam.stage_id = $1
|
|
22
|
+
const results = await this.dataSource.query(`
|
|
23
|
+
SELECT
|
|
24
|
+
ac.name AS name,
|
|
25
|
+
ac.logo AS logo,
|
|
26
|
+
ac.modalName AS modalName,
|
|
27
|
+
a.action_requirement AS actionRequirement
|
|
28
|
+
FROM frm_wf_stage_action_mapping sam
|
|
29
|
+
JOIN frm_wf_action a ON sam.action_id = a.id
|
|
30
|
+
JOIN frm_wf_action_category ac ON a.action_category = ac.id
|
|
31
|
+
WHERE sam.stage_id = $1
|
|
32
32
|
`, [stageId]);
|
|
33
33
|
return results.map((item) => ({
|
|
34
34
|
name: item.name,
|
|
@@ -44,11 +44,11 @@ let WorkflowListMasterService = class WorkflowListMasterService extends entity_s
|
|
|
44
44
|
}
|
|
45
45
|
async getModes(loggedInUser) {
|
|
46
46
|
const { organization_id } = loggedInUser;
|
|
47
|
-
const modes = await this.dataSource.query(`
|
|
48
|
-
SELECT id, name
|
|
49
|
-
FROM frm_list_master_items
|
|
50
|
-
WHERE listtype = 'MOD'
|
|
51
|
-
AND organization_id = $1
|
|
47
|
+
const modes = await this.dataSource.query(`
|
|
48
|
+
SELECT id, name
|
|
49
|
+
FROM frm_list_master_items
|
|
50
|
+
WHERE listtype = 'MOD'
|
|
51
|
+
AND organization_id = $1
|
|
52
52
|
`, [organization_id]);
|
|
53
53
|
return modes;
|
|
54
54
|
}
|
|
@@ -223,9 +223,9 @@ let WorkflowMetaService = class WorkflowMetaService extends entity_service_impl_
|
|
|
223
223
|
action_id: entityData.action_id,
|
|
224
224
|
}, loggedInUser);
|
|
225
225
|
const leadData = await this.getEntityData('LEAD', lead_id, loggedInUser);
|
|
226
|
-
const unassignedListMasterItemData = await this.dataSource.query(`SELECT name, id
|
|
227
|
-
FROM frm_list_master_items
|
|
228
|
-
WHERE listtype = "LEST" AND organization_id = $1
|
|
226
|
+
const unassignedListMasterItemData = await this.dataSource.query(`SELECT name, id
|
|
227
|
+
FROM frm_list_master_items
|
|
228
|
+
WHERE listtype = "LEST" AND organization_id = $1
|
|
229
229
|
AND value IN ($2, $3)`, [loggedInUser.organization_id, 'unassigned', 'active']);
|
|
230
230
|
const unassignedId = unassignedListMasterItemData.find((item) => item.name.toLowerCase() === 'unassigned')?.id;
|
|
231
231
|
const activeId = unassignedListMasterItemData.find((item) => item.name.toLowerCase() === 'active')?.id;
|
|
@@ -237,24 +237,24 @@ let WorkflowMetaService = class WorkflowMetaService extends entity_service_impl_
|
|
|
237
237
|
status: leadData?.lead_status,
|
|
238
238
|
lead_status: leadData?.lead_status,
|
|
239
239
|
}, loggedInUser);
|
|
240
|
-
await this.dataSource.query(`UPDATE frm_wf_action_data SET user_id =$1
|
|
241
|
-
WHERE mapped_entity_id=$2
|
|
242
|
-
AND mapped_entity_type = $3
|
|
243
|
-
AND stage_id = $4
|
|
244
|
-
AND (is_current = 'Y' OR is_current IS NULL)
|
|
240
|
+
await this.dataSource.query(`UPDATE frm_wf_action_data SET user_id =$1
|
|
241
|
+
WHERE mapped_entity_id=$2
|
|
242
|
+
AND mapped_entity_type = $3
|
|
243
|
+
AND stage_id = $4
|
|
244
|
+
AND (is_current = 'Y' OR is_current IS NULL)
|
|
245
245
|
`, [lead_owner, lead_id, entity_type, stage_id]);
|
|
246
|
-
await this.dataSource.query(`UPDATE crm_lead_meeting SET user_id=$1
|
|
247
|
-
WHERE stage_id = $2
|
|
248
|
-
AND mapped_entity_id = $3
|
|
249
|
-
AND mapped_entity_type = "LEAD"
|
|
250
|
-
AND (status='scheduled' OR status='rescheduled')
|
|
246
|
+
await this.dataSource.query(`UPDATE crm_lead_meeting SET user_id=$1
|
|
247
|
+
WHERE stage_id = $2
|
|
248
|
+
AND mapped_entity_id = $3
|
|
249
|
+
AND mapped_entity_type = "LEAD"
|
|
250
|
+
AND (status='scheduled' OR status='rescheduled')
|
|
251
251
|
`, [lead_owner, stage_id, lead_id]);
|
|
252
|
-
const taskRows = await this.dataSource.query(`SELECT id,status FROM frm_wf_task_data
|
|
253
|
-
WHERE mapped_entity_id = $1
|
|
254
|
-
AND mapped_entity_type = $2
|
|
252
|
+
const taskRows = await this.dataSource.query(`SELECT id,status FROM frm_wf_task_data
|
|
253
|
+
WHERE mapped_entity_id = $1
|
|
254
|
+
AND mapped_entity_type = $2
|
|
255
255
|
AND stage_id = $3`, [lead_id, entity_type, stage_id]);
|
|
256
256
|
for (const task of taskRows) {
|
|
257
|
-
const statusRows = await this.dataSource.query(`SELECT value FROM frm_list_master_items
|
|
257
|
+
const statusRows = await this.dataSource.query(`SELECT value FROM frm_list_master_items
|
|
258
258
|
WHERE id = $1 AND organization_id = $2`, [task.status, loggedInUser.organization_id]);
|
|
259
259
|
const statusName = statusRows[0]?.value?.toLowerCase() || '';
|
|
260
260
|
if (['todo', 'in_progress'].includes(statusName) ||
|
|
@@ -314,15 +314,15 @@ let WorkflowMetaService = class WorkflowMetaService extends entity_service_impl_
|
|
|
314
314
|
console.log('No eligible owners found for lead assignment.');
|
|
315
315
|
const userIds = owners?.map((o) => Number(o.id));
|
|
316
316
|
const placeholders = userIds.map(() => '?').join(',');
|
|
317
|
-
const lastRow = await this.dataSource.query(`
|
|
318
|
-
SELECT lead_owner
|
|
319
|
-
FROM crm_lead
|
|
320
|
-
WHERE organization_id = $1
|
|
321
|
-
AND level_id = $2
|
|
322
|
-
AND level_type = $3
|
|
323
|
-
AND lead_owner IN (${placeholders})
|
|
324
|
-
ORDER BY created_date DESC
|
|
325
|
-
LIMIT 1
|
|
317
|
+
const lastRow = await this.dataSource.query(`
|
|
318
|
+
SELECT lead_owner
|
|
319
|
+
FROM crm_lead
|
|
320
|
+
WHERE organization_id = $1
|
|
321
|
+
AND level_id = $2
|
|
322
|
+
AND level_type = $3
|
|
323
|
+
AND lead_owner IN (${placeholders})
|
|
324
|
+
ORDER BY created_date DESC
|
|
325
|
+
LIMIT 1
|
|
326
326
|
`, [organization_id, Number(level_id), level_type, ...userIds]);
|
|
327
327
|
const lastAssigned = lastRow.length ? Number(lastRow[0].lead_owner) : null;
|
|
328
328
|
const lastIdx = lastAssigned != null ? userIds.indexOf(lastAssigned) : -1;
|
|
@@ -72,8 +72,8 @@ let WorkflowService = class WorkflowService extends entity_service_impl_service_
|
|
|
72
72
|
currentId: workflowId,
|
|
73
73
|
})
|
|
74
74
|
.execute();
|
|
75
|
-
await this.dataSource.query(`UPDATE frm_wf_level_mapping
|
|
76
|
-
SET workflow_id = $1
|
|
75
|
+
await this.dataSource.query(`UPDATE frm_wf_level_mapping
|
|
76
|
+
SET workflow_id = $1
|
|
77
77
|
WHERE mapped_level_id = $2 AND mapped_level_type = $3`, [workflowId, level_id, level_type]);
|
|
78
78
|
}
|
|
79
79
|
return super.updateEntity(entityData, loggedInUser);
|
|
@@ -67,21 +67,21 @@ let ScheduleHandlerService = ScheduleHandlerService_1 = class ScheduleHandlerSer
|
|
|
67
67
|
const fixedTime = scheduleJson.fixedTime;
|
|
68
68
|
let comparisonDateCondition = '';
|
|
69
69
|
if (executionDateName.includes('after')) {
|
|
70
|
-
comparisonDateCondition = `
|
|
71
|
-
${executionDataOrTime} >= CURDATE() + INTERVAL ${executionUnits} DAY
|
|
72
|
-
AND ${executionDataOrTime} < CURDATE() + INTERVAL ${executionUnits + 1} DAY
|
|
70
|
+
comparisonDateCondition = `
|
|
71
|
+
${executionDataOrTime} >= CURDATE() + INTERVAL ${executionUnits} DAY
|
|
72
|
+
AND ${executionDataOrTime} < CURDATE() + INTERVAL ${executionUnits + 1} DAY
|
|
73
73
|
`;
|
|
74
74
|
}
|
|
75
75
|
else if (executionDateName.includes('before')) {
|
|
76
|
-
comparisonDateCondition = `
|
|
77
|
-
${executionDataOrTime} >= CURDATE() - INTERVAL ${executionUnits + 1} DAY
|
|
78
|
-
AND ${executionDataOrTime} < CURDATE() - INTERVAL ${executionUnits} DAY
|
|
76
|
+
comparisonDateCondition = `
|
|
77
|
+
${executionDataOrTime} >= CURDATE() - INTERVAL ${executionUnits + 1} DAY
|
|
78
|
+
AND ${executionDataOrTime} < CURDATE() - INTERVAL ${executionUnits} DAY
|
|
79
79
|
`;
|
|
80
80
|
}
|
|
81
81
|
else if (executionDateName.includes('same')) {
|
|
82
|
-
comparisonDateCondition = `
|
|
83
|
-
${executionDataOrTime} >= CURDATE()
|
|
84
|
-
AND ${executionDataOrTime} < CURDATE() + INTERVAL 1 DAY
|
|
82
|
+
comparisonDateCondition = `
|
|
83
|
+
${executionDataOrTime} >= CURDATE()
|
|
84
|
+
AND ${executionDataOrTime} < CURDATE() + INTERVAL 1 DAY
|
|
85
85
|
`;
|
|
86
86
|
}
|
|
87
87
|
const qb = this.dataSource
|
|
@@ -257,8 +257,8 @@ let ScheduleProcessor = ScheduleProcessor_1 = class ScheduleProcessor {
|
|
|
257
257
|
for (const batch of batches) {
|
|
258
258
|
for (const record of batch) {
|
|
259
259
|
try {
|
|
260
|
-
await this.dataSource.query(`INSERT INTO cr_wf_task (name, description, status, mapped_entity_id, mapped_entity_type,
|
|
261
|
-
organization_id, enterprise_id, created_by, created_date, entity_type)
|
|
260
|
+
await this.dataSource.query(`INSERT INTO cr_wf_task (name, description, status, mapped_entity_id, mapped_entity_type,
|
|
261
|
+
organization_id, enterprise_id, created_by, created_date, entity_type)
|
|
262
262
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW(), 'WFTK')`, [
|
|
263
263
|
action.actionConfig.taskName || 'Scheduled Task',
|
|
264
264
|
action.actionConfig.taskDescription || '',
|
|
@@ -303,8 +303,8 @@ let ScheduleProcessor = ScheduleProcessor_1 = class ScheduleProcessor {
|
|
|
303
303
|
for (const batch of batches) {
|
|
304
304
|
for (const record of batch) {
|
|
305
305
|
try {
|
|
306
|
-
await this.dataSource.query(`INSERT INTO cr_notification (user_id, event_type, message, mapped_entity_id,
|
|
307
|
-
mapped_entity_type, is_read, organization_id, created_date, entity_type, status)
|
|
306
|
+
await this.dataSource.query(`INSERT INTO cr_notification (user_id, event_type, message, mapped_entity_id,
|
|
307
|
+
mapped_entity_type, is_read, organization_id, created_date, entity_type, status)
|
|
308
308
|
VALUES (?, ?, ?, ?, ?, 0, ?, NOW(), 'NOTF', 'ACTIVE')`, [
|
|
309
309
|
record.user_id || jobData.createdBy,
|
|
310
310
|
action.actionConfig.eventType || 'WORKFLOW_SCHEDULED',
|