rez_core 5.0.182 → 6.5.1
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 +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +7 -7
- package/.idea/prettier.xml +6 -0
- 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/enterprise/controller/enterprise.controller.d.ts +12 -0
- package/dist/module/enterprise/controller/enterprise.controller.js +57 -0
- package/dist/module/enterprise/controller/enterprise.controller.js.map +1 -0
- package/dist/module/enterprise/controller/organization.controller.d.ts +11 -1
- package/dist/module/enterprise/controller/organization.controller.js +62 -2
- package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
- package/dist/module/enterprise/enterprise.module.js +2 -1
- package/dist/module/enterprise/enterprise.module.js.map +1 -1
- package/dist/module/enterprise/entity/enterprise.entity.d.ts +1 -3
- package/dist/module/enterprise/entity/enterprise.entity.js +4 -12
- package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +4 -2
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js +12 -7
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization.entity.d.ts +1 -17
- package/dist/module/enterprise/entity/organization.entity.js +4 -72
- package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
- package/dist/module/enterprise/repository/enterprise.repository.d.ts +2 -2
- package/dist/module/enterprise/repository/enterprise.repository.js +9 -4
- package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
- package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
- package/dist/module/enterprise/service/enterprise.service.js +4 -4
- package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
- package/dist/module/enterprise/service/organization.service.d.ts +2 -2
- package/dist/module/enterprise/service/organization.service.js +97 -20
- package/dist/module/enterprise/service/organization.service.js.map +1 -1
- package/dist/module/filter/service/filter.service.js +19 -19
- package/dist/module/integration/examples/usage.example.js +9 -9
- package/dist/module/meta/repository/attribute-master.repository.js +8 -8
- package/dist/module/meta/service/entity-dynamic.service.js +16 -16
- package/dist/module/meta/service/media-data.service.js +6 -6
- package/dist/module/meta/service/resolver.service.js +11 -11
- package/dist/module/module/repository/menu.repository.js +4 -4
- package/dist/module/notification/service/notification.service.js +6 -6
- package/dist/module/user/controller/login.controller.js +18 -18
- package/dist/module/workflow/repository/action.repository.js +2 -2
- package/dist/module/workflow/repository/stage.repository.js +8 -8
- package/dist/module/workflow/service/action-template-mapping.service.js +2 -2
- package/dist/module/workflow/service/action.service.js +5 -5
- package/dist/module/workflow/service/entity-modification.service.js +2 -2
- package/dist/module/workflow/service/task.service.js +8 -8
- package/dist/module/workflow-automation/service/schedule-handler.service.js +9 -9
- package/dist/table.config.d.ts +1 -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 +125 -125
- package/server.log +850 -0
- package/src/app.controller.ts +12 -12
- package/src/app.module.ts +68 -68
- 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 +94 -94
- 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 +56 -56
- 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 +38 -38
- 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 +49 -49
- package/src/module/dashboard/service/dashboard.service.ts +72 -72
- package/src/module/enterprise/controller/enterprise.controller.ts +40 -0
- package/src/module/enterprise/controller/organization.controller.ts +93 -36
- package/src/module/enterprise/enterprise.module.ts +46 -45
- package/src/module/enterprise/entity/enterprise.entity.ts +31 -37
- package/src/module/enterprise/entity/organization-app-mapping.entity.ts +18 -13
- package/src/module/enterprise/entity/organization.entity.ts +40 -92
- package/src/module/enterprise/repository/enterprise.repository.ts +39 -31
- package/src/module/enterprise/repository/organization.repository.ts +26 -26
- package/src/module/enterprise/repository/school.repository.ts +272 -272
- package/src/module/enterprise/service/brand.service.ts +5 -5
- package/src/module/enterprise/service/enterprise.service.ts +22 -16
- package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
- package/src/module/enterprise/service/organization.service.ts +262 -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 +241 -241
- package/src/module/export/controller/export.controller.ts +83 -83
- package/src/module/export/export.module.ts +14 -14
- package/src/module/export/service/export.service.ts +105 -105
- package/src/module/filter/controller/filter.controller.ts +87 -87
- package/src/module/filter/dto/filter-request.dto.ts +39 -39
- package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
- package/src/module/filter/entity/saved-filter-master.entity.ts +35 -35
- package/src/module/filter/filter.module.ts +33 -33
- package/src/module/filter/repository/saved-filter.repository.ts +247 -247
- package/src/module/filter/repository/saved.filter-detail.repository.ts +19 -19
- package/src/module/filter/service/filter-evaluator.service.ts +82 -82
- package/src/module/filter/service/filter.service.ts +1316 -1316
- package/src/module/filter/service/saved-filter.service.ts +164 -164
- 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 +2634 -2634
- package/src/module/integration/service/oauth.service.ts +224 -224
- package/src/module/integration/service/wrapper.service.ts +753 -753
- 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 +76 -76
- 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 +73 -73
- 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 +56 -56
- 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 +280 -280
- package/src/module/listmaster/service/list-master-registry.ts +15 -15
- package/src/module/listmaster/service/list-master.service.ts +527 -527
- 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 +269 -269
- package/src/module/mapper/service/mapper.service.ts +80 -80
- package/src/module/master/controller/master.controller.ts +74 -74
- package/src/module/master/service/master.service.ts +484 -484
- 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 +308 -308
- package/src/module/meta/controller/entity.public.controller.ts +75 -75
- package/src/module/meta/controller/media.controller.ts +135 -135
- package/src/module/meta/controller/meta.controller.ts +101 -101
- package/src/module/meta/controller/view-master.controller.ts +79 -79
- 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 +12 -12
- package/src/module/meta/entity/app-master.entity.ts +37 -37
- 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 +165 -165
- package/src/module/meta/repository/app-master.repository.ts +20 -20
- package/src/module/meta/repository/attribute-master.repository.ts +164 -164
- package/src/module/meta/repository/entity-attribute-update.repository.ts +48 -48
- package/src/module/meta/repository/entity-master.repository.ts +120 -120
- package/src/module/meta/repository/entity-relation.repository.ts +22 -22
- 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 +132 -132
- package/src/module/meta/service/common.service.ts +9 -9
- package/src/module/meta/service/entity-attribute-update.service.ts +26 -26
- package/src/module/meta/service/entity-dynamic.service.ts +824 -824
- 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 +74 -74
- package/src/module/meta/service/entity-service-impl.service.ts +388 -388
- package/src/module/meta/service/entity-table-column.service.ts +26 -26
- package/src/module/meta/service/entity-table.service.ts +157 -157
- package/src/module/meta/service/entity-validation.service.ts +188 -188
- package/src/module/meta/service/entity.service.ts +49 -49
- package/src/module/meta/service/field-group.service.ts +103 -103
- package/src/module/meta/service/media-data.service.ts +591 -591
- package/src/module/meta/service/populate-meta.service.ts +222 -222
- package/src/module/meta/service/preference.service.ts +16 -16
- package/src/module/meta/service/resolver.service.ts +280 -280
- 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 +133 -133
- 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 +186 -186
- 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 +189 -189
- 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 +164 -164
- 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 +62 -62
- 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 +197 -197
- package/src/module/user/service/user-role-mapping.service.ts +98 -98
- package/src/module/user/service/user-session.service.ts +200 -200
- 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 +49 -49
- package/src/module/workflow/controller/stage.controller.ts +51 -51
- 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 +347 -347
- package/src/module/workflow/repository/action.repository.ts +339 -339
- package/src/module/workflow/repository/activity-log.repository.ts +148 -148
- package/src/module/workflow/repository/comm-template.repository.ts +157 -157
- package/src/module/workflow/repository/form-master.repository.ts +50 -50
- package/src/module/workflow/repository/stage-group.repository.ts +186 -186
- package/src/module/workflow/repository/stage-movement.repository.ts +217 -217
- package/src/module/workflow/repository/stage.repository.ts +160 -160
- package/src/module/workflow/repository/task.repository.ts +154 -154
- 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 +137 -137
- package/src/module/workflow/service/action.service.ts +302 -302
- package/src/module/workflow/service/activity-log.service.ts +107 -107
- package/src/module/workflow/service/comm-template.service.ts +181 -181
- 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 +320 -320
- package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
- package/src/module/workflow/service/stage-group.service.ts +325 -325
- package/src/module/workflow/service/stage.service.ts +197 -197
- package/src/module/workflow/service/task.service.ts +551 -551
- package/src/module/workflow/service/workflow-list-master.service.ts +68 -68
- package/src/module/workflow/service/workflow-meta.service.ts +640 -640
- package/src/module/workflow/service/workflow.service.ts +213 -213
- 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 +219 -219
- package/src/module/workflow-automation/service/workflow-automation.service.ts +476 -476
- 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 +253 -253
- 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 +620 -620
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +597 -597
- 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
|
@@ -1,510 +1,510 @@
|
|
|
1
|
-
# 🤖 Using Claude Code to Implement Workflow Schedule Module
|
|
2
|
-
|
|
3
|
-
## What is Claude Code?
|
|
4
|
-
|
|
5
|
-
Claude Code is a command-line tool that lets Claude work directly in your codebase, making changes, creating files, and implementing features autonomously.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 🚀 Quick Setup
|
|
10
|
-
|
|
11
|
-
### Step 1: Install Claude Code
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
# Install Claude Code CLI
|
|
15
|
-
npm install -g @anthropic-ai/claude-code
|
|
16
|
-
|
|
17
|
-
# Or using brew (macOS)
|
|
18
|
-
brew install claude-code
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### Step 2: Authenticate
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
claude-code auth
|
|
25
|
-
# Follow the prompts to authenticate with your Anthropic account
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## 📋 Implementation with Claude Code
|
|
31
|
-
|
|
32
|
-
### Option 1: Automated Full Implementation
|
|
33
|
-
|
|
34
|
-
Navigate to your project and run:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
cd /Users/debrajdas/WORKSPACE/001_RZ/PROJECTS/ETHER/250218_nodejs_core
|
|
38
|
-
|
|
39
|
-
# Start Claude Code session
|
|
40
|
-
claude-code
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Then give Claude this prompt:
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
I need you to implement a complete workflow schedule module in my NestJS project.
|
|
47
|
-
|
|
48
|
-
Project path: /Users/debrajdas/WORKSPACE/001_RZ/PROJECTS/ETHER/250218_nodejs_core
|
|
49
|
-
|
|
50
|
-
Requirements:
|
|
51
|
-
1. Create a workflow-schedule module at: src/module/workflow-schedule/
|
|
52
|
-
2. Implement scheduled workflows using NestJS + Bull + Redis
|
|
53
|
-
3. Create the following structure:
|
|
54
|
-
- workflow-schedule.module.ts (main module)
|
|
55
|
-
- workflow-schedule.service.ts (9 methods for schedule management)
|
|
56
|
-
- workflow-schedule.controller.ts (9 REST endpoints)
|
|
57
|
-
- entities/ (ScheduledWorkflow, WorkflowExecutionLog)
|
|
58
|
-
- dto/ (CreateScheduleDto, UpdateScheduleDto, GetExecutionLogsDto)
|
|
59
|
-
- processors/schedule.processor.ts (Bull processor)
|
|
60
|
-
- constants/schedule.constants.ts
|
|
61
|
-
- interfaces/schedule-job-data.interface.ts
|
|
62
|
-
|
|
63
|
-
4. Create TypeORM migrations:
|
|
64
|
-
- Add workflow_type column to workflows table
|
|
65
|
-
- Create scheduled_workflows table
|
|
66
|
-
- Create workflow_execution_logs table
|
|
67
|
-
|
|
68
|
-
5. Create config/bull.config.ts for Bull/Redis configuration
|
|
69
|
-
|
|
70
|
-
6. Update app.module.ts to import BullModule and WorkflowScheduleModule
|
|
71
|
-
|
|
72
|
-
Features needed:
|
|
73
|
-
- Schedule workflows with cron expressions
|
|
74
|
-
- Timezone support
|
|
75
|
-
- Pause/resume schedules
|
|
76
|
-
- Manual trigger execution
|
|
77
|
-
- Execution logging
|
|
78
|
-
- Retry with exponential backoff
|
|
79
|
-
- Batch processing (100 records/batch)
|
|
80
|
-
- Actions: send email, update records, create tasks, send notifications
|
|
81
|
-
|
|
82
|
-
Please implement all files with complete code, proper TypeScript types, validation, error handling, and documentation.
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Option 2: Step-by-Step Implementation
|
|
88
|
-
|
|
89
|
-
If you prefer more control, use Claude Code for specific tasks:
|
|
90
|
-
|
|
91
|
-
### Task 1: Create Module Structure
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
claude-code
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Prompt:
|
|
98
|
-
```
|
|
99
|
-
Create the workflow-schedule module structure in src/module/workflow-schedule/ with these subdirectories:
|
|
100
|
-
- constants/
|
|
101
|
-
- dto/
|
|
102
|
-
- entities/
|
|
103
|
-
- interfaces/
|
|
104
|
-
- processors/
|
|
105
|
-
- tests/
|
|
106
|
-
|
|
107
|
-
Create empty index files in each subdirectory.
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Task 2: Create Entities
|
|
111
|
-
|
|
112
|
-
Prompt:
|
|
113
|
-
```
|
|
114
|
-
Create TypeORM entities in src/module/workflow-schedule/entities/:
|
|
115
|
-
|
|
116
|
-
1. scheduled-workflow.entity.ts with fields:
|
|
117
|
-
- id, workflow_id, schedule_expression, timezone, is_active
|
|
118
|
-
- last_executed_at, next_execution_at, execution_count
|
|
119
|
-
- start_date, end_date, created_at, updated_at
|
|
120
|
-
- Relation: ManyToOne with Workflow
|
|
121
|
-
- Indexes: next_execution_at, workflow_id
|
|
122
|
-
|
|
123
|
-
2. workflow-execution-log.entity.ts with fields:
|
|
124
|
-
- id, workflow_id, execution_type, status
|
|
125
|
-
- started_at, completed_at, records_processed, records_failed
|
|
126
|
-
- error_message, job_id, execution_data
|
|
127
|
-
- Relation: ManyToOne with Workflow
|
|
128
|
-
- Computed properties: durationMs, successRate
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Task 3: Create DTOs
|
|
132
|
-
|
|
133
|
-
Prompt:
|
|
134
|
-
```
|
|
135
|
-
Create validation DTOs in src/module/workflow-schedule/dto/:
|
|
136
|
-
|
|
137
|
-
1. create-schedule.dto.ts
|
|
138
|
-
- workflowId (required, number)
|
|
139
|
-
- scheduleExpression (required, string, cron format)
|
|
140
|
-
- timezone (optional, string, IANA format, default: UTC)
|
|
141
|
-
- startDate, endDate (optional, ISO date strings)
|
|
142
|
-
- isActive (optional, boolean, default: true)
|
|
143
|
-
|
|
144
|
-
2. update-schedule.dto.ts
|
|
145
|
-
- All fields optional from CreateScheduleDto
|
|
146
|
-
|
|
147
|
-
3. get-execution-logs.dto.ts
|
|
148
|
-
- status (optional, enum filter)
|
|
149
|
-
- executionType (optional, enum filter)
|
|
150
|
-
- limit (optional, number, default: 50, max: 500)
|
|
151
|
-
- offset (optional, number, default: 0)
|
|
152
|
-
|
|
153
|
-
Use class-validator decorators for all validation.
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### Task 4: Create Service
|
|
157
|
-
|
|
158
|
-
Prompt:
|
|
159
|
-
```
|
|
160
|
-
Create workflow-schedule.service.ts in src/module/workflow-schedule/ with these methods:
|
|
161
|
-
|
|
162
|
-
1. scheduleWorkflow(createDto) - Create new schedule
|
|
163
|
-
2. updateSchedule(id, updateDto) - Update existing schedule
|
|
164
|
-
3. deleteSchedule(id) - Delete schedule
|
|
165
|
-
4. pauseSchedule(id) - Pause schedule
|
|
166
|
-
5. resumeSchedule(id) - Resume schedule
|
|
167
|
-
6. triggerSchedule(id) - Manually trigger execution
|
|
168
|
-
7. getExecutionLogs(scheduleId, query) - Get logs with filtering
|
|
169
|
-
8. getScheduledJobs() - Get all active schedules
|
|
170
|
-
9. getScheduleById(id) - Get schedule by ID
|
|
171
|
-
|
|
172
|
-
Include:
|
|
173
|
-
- Cron expression validation using cron-parser
|
|
174
|
-
- Timezone validation using moment-timezone
|
|
175
|
-
- Next execution calculation
|
|
176
|
-
- Bull queue management
|
|
177
|
-
- Error handling with proper exceptions
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### Task 5: Create Bull Processor
|
|
181
|
-
|
|
182
|
-
Prompt:
|
|
183
|
-
```
|
|
184
|
-
Create schedule.processor.ts in src/module/workflow-schedule/processors/:
|
|
185
|
-
|
|
186
|
-
Implement a Bull processor that:
|
|
187
|
-
1. Processes scheduled workflow jobs
|
|
188
|
-
2. Queries records based on workflow criteria
|
|
189
|
-
3. Executes actions (sendEmail, updateRecord, createTask, sendNotification)
|
|
190
|
-
4. Handles batch processing (100 records per batch)
|
|
191
|
-
5. Logs execution results
|
|
192
|
-
6. Updates schedule after execution
|
|
193
|
-
7. Implements retry with exponential backoff
|
|
194
|
-
8. Handles template variable replacement ({{record.field}})
|
|
195
|
-
|
|
196
|
-
Include lifecycle hooks:
|
|
197
|
-
- @OnQueueActive()
|
|
198
|
-
- @OnQueueCompleted()
|
|
199
|
-
- @OnQueueFailed()
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
### Task 6: Create Controller
|
|
203
|
-
|
|
204
|
-
Prompt:
|
|
205
|
-
```
|
|
206
|
-
Create workflow-schedule.controller.ts with REST endpoints:
|
|
207
|
-
|
|
208
|
-
POST /workflow-schedule - Create schedule
|
|
209
|
-
GET /workflow-schedule - List all schedules
|
|
210
|
-
GET /workflow-schedule/:id - Get by ID
|
|
211
|
-
PUT /workflow-schedule/:id - Update schedule
|
|
212
|
-
DELETE /workflow-schedule/:id - Delete schedule
|
|
213
|
-
POST /workflow-schedule/:id/pause - Pause
|
|
214
|
-
POST /workflow-schedule/:id/resume - Resume
|
|
215
|
-
POST /workflow-schedule/:id/trigger - Manual trigger
|
|
216
|
-
GET /workflow-schedule/:id/logs - Get execution logs
|
|
217
|
-
|
|
218
|
-
Add Swagger decorators (@ApiOperation, @ApiResponse, @ApiTags).
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### Task 7: Create Migrations
|
|
222
|
-
|
|
223
|
-
Prompt:
|
|
224
|
-
```
|
|
225
|
-
Create TypeORM migrations in src/migrations/:
|
|
226
|
-
|
|
227
|
-
1. AddWorkflowTypeToWorkflows - Add workflow_type ENUM column to workflows table
|
|
228
|
-
2. CreateScheduledWorkflowsTable - Create scheduled_workflows table with all fields and indexes
|
|
229
|
-
3. CreateWorkflowExecutionLogsTable - Create workflow_execution_logs table with all fields and indexes
|
|
230
|
-
|
|
231
|
-
Use proper TypeORM migration format with up() and down() methods.
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### Task 8: Create Configuration
|
|
235
|
-
|
|
236
|
-
Prompt:
|
|
237
|
-
```
|
|
238
|
-
Create src/config/bull.config.ts:
|
|
239
|
-
|
|
240
|
-
Export getBullConfig function that returns BullModuleOptions with:
|
|
241
|
-
- Redis connection config from environment variables
|
|
242
|
-
- Default job options (attempts: 3, exponential backoff)
|
|
243
|
-
- Queue settings (lock duration, stalled interval)
|
|
244
|
-
- Job retention policies
|
|
245
|
-
|
|
246
|
-
Support environment variables:
|
|
247
|
-
- REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, REDIS_DB
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
### Task 9: Update App Module
|
|
251
|
-
|
|
252
|
-
Prompt:
|
|
253
|
-
```
|
|
254
|
-
Update src/app.module.ts:
|
|
255
|
-
|
|
256
|
-
1. Import BullModule from @nestjs/bull
|
|
257
|
-
2. Import WorkflowScheduleModule
|
|
258
|
-
3. Import getBullConfig from ./config/bull.config
|
|
259
|
-
|
|
260
|
-
4. Add to imports array:
|
|
261
|
-
- BullModule.forRootAsync() with getBullConfig
|
|
262
|
-
- WorkflowScheduleModule
|
|
263
|
-
|
|
264
|
-
Keep all existing imports and configuration.
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
### Task 10: Create Tests
|
|
268
|
-
|
|
269
|
-
Prompt:
|
|
270
|
-
```
|
|
271
|
-
Create unit tests in src/module/workflow-schedule/tests/workflow-schedule.service.spec.ts:
|
|
272
|
-
|
|
273
|
-
Test all service methods:
|
|
274
|
-
- scheduleWorkflow() - valid and invalid inputs
|
|
275
|
-
- updateSchedule() - success and not found cases
|
|
276
|
-
- deleteSchedule() - success and not found cases
|
|
277
|
-
- pauseSchedule() - verify isActive flag
|
|
278
|
-
- resumeSchedule() - verify queue management
|
|
279
|
-
- triggerSchedule() - verify manual execution
|
|
280
|
-
- getExecutionLogs() - verify filtering and pagination
|
|
281
|
-
|
|
282
|
-
Use Jest with mocked repositories and queue.
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## 🎯 Complete Implementation Command
|
|
288
|
-
|
|
289
|
-
For a single-command implementation, use:
|
|
290
|
-
|
|
291
|
-
```bash
|
|
292
|
-
cd /Users/debrajdas/WORKSPACE/001_RZ/PROJECTS/ETHER/250218_nodejs_core
|
|
293
|
-
|
|
294
|
-
claude-code --prompt "Implement a complete workflow schedule module based on the attached implementation plan. Create all files in src/module/workflow-schedule/ with full TypeScript implementation, including module, service, controller, entities, DTOs, processor, migrations, and tests. Follow NestJS best practices and include proper error handling, validation, and documentation." --attach Schedule_Workflow_Implementation_Plan.md
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## 📦 What Claude Code Will Create
|
|
300
|
-
|
|
301
|
-
Claude Code will create approximately 17 files:
|
|
302
|
-
|
|
303
|
-
```
|
|
304
|
-
src/
|
|
305
|
-
├── config/
|
|
306
|
-
│ └── bull.config.ts
|
|
307
|
-
├── migrations/
|
|
308
|
-
│ ├── [timestamp]-AddWorkflowTypeToWorkflows.ts
|
|
309
|
-
│ ├── [timestamp]-CreateScheduledWorkflowsTable.ts
|
|
310
|
-
│ └── [timestamp]-CreateWorkflowExecutionLogsTable.ts
|
|
311
|
-
└── module/
|
|
312
|
-
└── workflow-schedule/
|
|
313
|
-
├── workflow-schedule.module.ts
|
|
314
|
-
├── workflow-schedule.service.ts
|
|
315
|
-
├── workflow-schedule.controller.ts
|
|
316
|
-
├── constants/
|
|
317
|
-
│ └── schedule.constants.ts
|
|
318
|
-
├── dto/
|
|
319
|
-
│ ├── create-schedule.dto.ts
|
|
320
|
-
│ ├── update-schedule.dto.ts
|
|
321
|
-
│ └── get-execution-logs.dto.ts
|
|
322
|
-
├── entities/
|
|
323
|
-
│ ├── scheduled-workflow.entity.ts
|
|
324
|
-
│ └── workflow-execution-log.entity.ts
|
|
325
|
-
├── interfaces/
|
|
326
|
-
│ └── schedule-job-data.interface.ts
|
|
327
|
-
├── processors/
|
|
328
|
-
│ └── schedule.processor.ts
|
|
329
|
-
└── tests/
|
|
330
|
-
└── workflow-schedule.service.spec.ts
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## ✅ After Implementation
|
|
336
|
-
|
|
337
|
-
Once Claude Code finishes, you'll need to:
|
|
338
|
-
|
|
339
|
-
### 1. Install Dependencies
|
|
340
|
-
|
|
341
|
-
```bash
|
|
342
|
-
npm install @nestjs/bull bull ioredis cron-parser moment-timezone
|
|
343
|
-
npm install --save-dev @types/bull @types/cron
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
### 2. Setup Redis
|
|
347
|
-
|
|
348
|
-
```bash
|
|
349
|
-
docker run -d -p 6379:6379 --name redis redis:alpine
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
### 3. Update .env
|
|
353
|
-
|
|
354
|
-
```env
|
|
355
|
-
REDIS_HOST=localhost
|
|
356
|
-
REDIS_PORT=6379
|
|
357
|
-
REDIS_PASSWORD=
|
|
358
|
-
REDIS_DB=0
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
### 4. Run Migrations
|
|
362
|
-
|
|
363
|
-
```bash
|
|
364
|
-
npm run migration:run
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
### 5. Start Application
|
|
368
|
-
|
|
369
|
-
```bash
|
|
370
|
-
npm run start:dev
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
---
|
|
374
|
-
|
|
375
|
-
## 🔍 Monitoring Progress
|
|
376
|
-
|
|
377
|
-
Claude Code will show you:
|
|
378
|
-
- ✅ Files being created
|
|
379
|
-
- 📝 Code being written
|
|
380
|
-
- 🔧 Changes being made
|
|
381
|
-
- ⚠️ Any errors encountered
|
|
382
|
-
|
|
383
|
-
You can review each change before accepting it.
|
|
384
|
-
|
|
385
|
-
---
|
|
386
|
-
|
|
387
|
-
## 💡 Pro Tips
|
|
388
|
-
|
|
389
|
-
### 1. **Use Context Files**
|
|
390
|
-
|
|
391
|
-
Provide Claude Code with your implementation plan:
|
|
392
|
-
|
|
393
|
-
```bash
|
|
394
|
-
claude-code --attach /path/to/Schedule_Workflow_Implementation_Plan.md
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
### 2. **Iterative Refinement**
|
|
398
|
-
|
|
399
|
-
If something isn't perfect, ask Claude Code to refine:
|
|
400
|
-
|
|
401
|
-
```
|
|
402
|
-
"The service needs better error messages. Update all error handling to include detailed context."
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
### 3. **Add Tests as You Go**
|
|
406
|
-
|
|
407
|
-
```
|
|
408
|
-
"After creating the service, generate comprehensive unit tests for all methods."
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
### 4. **Review Changes**
|
|
412
|
-
|
|
413
|
-
Claude Code shows diffs before applying. Review carefully!
|
|
414
|
-
|
|
415
|
-
---
|
|
416
|
-
|
|
417
|
-
## 🚨 Important Notes
|
|
418
|
-
|
|
419
|
-
1. **Backup First**: Always commit your current code before using Claude Code
|
|
420
|
-
```bash
|
|
421
|
-
git add .
|
|
422
|
-
git commit -m "Before workflow-schedule implementation"
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
2. **Review Generated Code**: Claude Code is powerful but always review the changes
|
|
426
|
-
|
|
427
|
-
3. **Test Thoroughly**: Run tests after implementation
|
|
428
|
-
```bash
|
|
429
|
-
npm run test
|
|
430
|
-
npm run test:e2e
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
---
|
|
434
|
-
|
|
435
|
-
## 📚 Claude Code Commands Reference
|
|
436
|
-
|
|
437
|
-
```bash
|
|
438
|
-
# Start interactive session
|
|
439
|
-
claude-code
|
|
440
|
-
|
|
441
|
-
# Run with specific prompt
|
|
442
|
-
claude-code --prompt "Your prompt here"
|
|
443
|
-
|
|
444
|
-
# Attach context files
|
|
445
|
-
claude-code --attach file1.md --attach file2.ts
|
|
446
|
-
|
|
447
|
-
# Run in specific directory
|
|
448
|
-
claude-code --dir /path/to/project
|
|
449
|
-
|
|
450
|
-
# Show help
|
|
451
|
-
claude-code --help
|
|
452
|
-
|
|
453
|
-
# Check version
|
|
454
|
-
claude-code --version
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
---
|
|
458
|
-
|
|
459
|
-
## 🎬 Example Session
|
|
460
|
-
|
|
461
|
-
```bash
|
|
462
|
-
$ cd /Users/debrajdas/WORKSPACE/001_RZ/PROJECTS/ETHER/250218_nodejs_core
|
|
463
|
-
$ claude-code
|
|
464
|
-
|
|
465
|
-
Claude Code> Implement the workflow schedule module based on the plan in /mnt/project/Schedule_Workflow_Implementation_Plan.md
|
|
466
|
-
|
|
467
|
-
🤖 Claude: I'll implement the workflow schedule module for you. Let me start by creating the directory structure...
|
|
468
|
-
|
|
469
|
-
✅ Created: src/module/workflow-schedule/
|
|
470
|
-
✅ Created: src/module/workflow-schedule/entities/
|
|
471
|
-
✅ Created: src/module/workflow-schedule/dto/
|
|
472
|
-
...
|
|
473
|
-
[Claude creates all files]
|
|
474
|
-
...
|
|
475
|
-
✅ Implementation complete!
|
|
476
|
-
|
|
477
|
-
📋 Next steps:
|
|
478
|
-
1. Install dependencies: npm install @nestjs/bull bull ioredis cron-parser moment-timezone
|
|
479
|
-
2. Setup Redis: docker run -d -p 6379:6379 --name redis redis:alpine
|
|
480
|
-
3. Update .env with Redis configuration
|
|
481
|
-
4. Run migrations: npm run migration:run
|
|
482
|
-
5. Start application: npm run start:dev
|
|
483
|
-
|
|
484
|
-
Claude Code> exit
|
|
485
|
-
```
|
|
486
|
-
|
|
487
|
-
---
|
|
488
|
-
|
|
489
|
-
## 🎉 Benefits of Using Claude Code
|
|
490
|
-
|
|
491
|
-
✅ **Faster**: Complete implementation in minutes
|
|
492
|
-
✅ **Consistent**: Follows best practices automatically
|
|
493
|
-
✅ **Interactive**: Can ask questions and refine
|
|
494
|
-
✅ **Safe**: Shows diffs before applying changes
|
|
495
|
-
✅ **Smart**: Understands your project structure
|
|
496
|
-
|
|
497
|
-
---
|
|
498
|
-
|
|
499
|
-
## 📞 Need Help?
|
|
500
|
-
|
|
501
|
-
If you encounter issues with Claude Code:
|
|
502
|
-
|
|
503
|
-
1. Check Claude Code documentation: https://docs.claude.com/claude-code
|
|
504
|
-
2. Use `--verbose` flag for detailed logging
|
|
505
|
-
3. Start with small tasks to test
|
|
506
|
-
4. Always review changes before accepting
|
|
507
|
-
|
|
508
|
-
---
|
|
509
|
-
|
|
510
|
-
**Ready to use Claude Code? Start with the complete implementation command above!** 🚀
|
|
1
|
+
# 🤖 Using Claude Code to Implement Workflow Schedule Module
|
|
2
|
+
|
|
3
|
+
## What is Claude Code?
|
|
4
|
+
|
|
5
|
+
Claude Code is a command-line tool that lets Claude work directly in your codebase, making changes, creating files, and implementing features autonomously.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🚀 Quick Setup
|
|
10
|
+
|
|
11
|
+
### Step 1: Install Claude Code
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Install Claude Code CLI
|
|
15
|
+
npm install -g @anthropic-ai/claude-code
|
|
16
|
+
|
|
17
|
+
# Or using brew (macOS)
|
|
18
|
+
brew install claude-code
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Step 2: Authenticate
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
claude-code auth
|
|
25
|
+
# Follow the prompts to authenticate with your Anthropic account
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 📋 Implementation with Claude Code
|
|
31
|
+
|
|
32
|
+
### Option 1: Automated Full Implementation
|
|
33
|
+
|
|
34
|
+
Navigate to your project and run:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
cd /Users/debrajdas/WORKSPACE/001_RZ/PROJECTS/ETHER/250218_nodejs_core
|
|
38
|
+
|
|
39
|
+
# Start Claude Code session
|
|
40
|
+
claude-code
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Then give Claude this prompt:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
I need you to implement a complete workflow schedule module in my NestJS project.
|
|
47
|
+
|
|
48
|
+
Project path: /Users/debrajdas/WORKSPACE/001_RZ/PROJECTS/ETHER/250218_nodejs_core
|
|
49
|
+
|
|
50
|
+
Requirements:
|
|
51
|
+
1. Create a workflow-schedule module at: src/module/workflow-schedule/
|
|
52
|
+
2. Implement scheduled workflows using NestJS + Bull + Redis
|
|
53
|
+
3. Create the following structure:
|
|
54
|
+
- workflow-schedule.module.ts (main module)
|
|
55
|
+
- workflow-schedule.service.ts (9 methods for schedule management)
|
|
56
|
+
- workflow-schedule.controller.ts (9 REST endpoints)
|
|
57
|
+
- entities/ (ScheduledWorkflow, WorkflowExecutionLog)
|
|
58
|
+
- dto/ (CreateScheduleDto, UpdateScheduleDto, GetExecutionLogsDto)
|
|
59
|
+
- processors/schedule.processor.ts (Bull processor)
|
|
60
|
+
- constants/schedule.constants.ts
|
|
61
|
+
- interfaces/schedule-job-data.interface.ts
|
|
62
|
+
|
|
63
|
+
4. Create TypeORM migrations:
|
|
64
|
+
- Add workflow_type column to workflows table
|
|
65
|
+
- Create scheduled_workflows table
|
|
66
|
+
- Create workflow_execution_logs table
|
|
67
|
+
|
|
68
|
+
5. Create config/bull.config.ts for Bull/Redis configuration
|
|
69
|
+
|
|
70
|
+
6. Update app.module.ts to import BullModule and WorkflowScheduleModule
|
|
71
|
+
|
|
72
|
+
Features needed:
|
|
73
|
+
- Schedule workflows with cron expressions
|
|
74
|
+
- Timezone support
|
|
75
|
+
- Pause/resume schedules
|
|
76
|
+
- Manual trigger execution
|
|
77
|
+
- Execution logging
|
|
78
|
+
- Retry with exponential backoff
|
|
79
|
+
- Batch processing (100 records/batch)
|
|
80
|
+
- Actions: send email, update records, create tasks, send notifications
|
|
81
|
+
|
|
82
|
+
Please implement all files with complete code, proper TypeScript types, validation, error handling, and documentation.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Option 2: Step-by-Step Implementation
|
|
88
|
+
|
|
89
|
+
If you prefer more control, use Claude Code for specific tasks:
|
|
90
|
+
|
|
91
|
+
### Task 1: Create Module Structure
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
claude-code
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Prompt:
|
|
98
|
+
```
|
|
99
|
+
Create the workflow-schedule module structure in src/module/workflow-schedule/ with these subdirectories:
|
|
100
|
+
- constants/
|
|
101
|
+
- dto/
|
|
102
|
+
- entities/
|
|
103
|
+
- interfaces/
|
|
104
|
+
- processors/
|
|
105
|
+
- tests/
|
|
106
|
+
|
|
107
|
+
Create empty index files in each subdirectory.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Task 2: Create Entities
|
|
111
|
+
|
|
112
|
+
Prompt:
|
|
113
|
+
```
|
|
114
|
+
Create TypeORM entities in src/module/workflow-schedule/entities/:
|
|
115
|
+
|
|
116
|
+
1. scheduled-workflow.entity.ts with fields:
|
|
117
|
+
- id, workflow_id, schedule_expression, timezone, is_active
|
|
118
|
+
- last_executed_at, next_execution_at, execution_count
|
|
119
|
+
- start_date, end_date, created_at, updated_at
|
|
120
|
+
- Relation: ManyToOne with Workflow
|
|
121
|
+
- Indexes: next_execution_at, workflow_id
|
|
122
|
+
|
|
123
|
+
2. workflow-execution-log.entity.ts with fields:
|
|
124
|
+
- id, workflow_id, execution_type, status
|
|
125
|
+
- started_at, completed_at, records_processed, records_failed
|
|
126
|
+
- error_message, job_id, execution_data
|
|
127
|
+
- Relation: ManyToOne with Workflow
|
|
128
|
+
- Computed properties: durationMs, successRate
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Task 3: Create DTOs
|
|
132
|
+
|
|
133
|
+
Prompt:
|
|
134
|
+
```
|
|
135
|
+
Create validation DTOs in src/module/workflow-schedule/dto/:
|
|
136
|
+
|
|
137
|
+
1. create-schedule.dto.ts
|
|
138
|
+
- workflowId (required, number)
|
|
139
|
+
- scheduleExpression (required, string, cron format)
|
|
140
|
+
- timezone (optional, string, IANA format, default: UTC)
|
|
141
|
+
- startDate, endDate (optional, ISO date strings)
|
|
142
|
+
- isActive (optional, boolean, default: true)
|
|
143
|
+
|
|
144
|
+
2. update-schedule.dto.ts
|
|
145
|
+
- All fields optional from CreateScheduleDto
|
|
146
|
+
|
|
147
|
+
3. get-execution-logs.dto.ts
|
|
148
|
+
- status (optional, enum filter)
|
|
149
|
+
- executionType (optional, enum filter)
|
|
150
|
+
- limit (optional, number, default: 50, max: 500)
|
|
151
|
+
- offset (optional, number, default: 0)
|
|
152
|
+
|
|
153
|
+
Use class-validator decorators for all validation.
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Task 4: Create Service
|
|
157
|
+
|
|
158
|
+
Prompt:
|
|
159
|
+
```
|
|
160
|
+
Create workflow-schedule.service.ts in src/module/workflow-schedule/ with these methods:
|
|
161
|
+
|
|
162
|
+
1. scheduleWorkflow(createDto) - Create new schedule
|
|
163
|
+
2. updateSchedule(id, updateDto) - Update existing schedule
|
|
164
|
+
3. deleteSchedule(id) - Delete schedule
|
|
165
|
+
4. pauseSchedule(id) - Pause schedule
|
|
166
|
+
5. resumeSchedule(id) - Resume schedule
|
|
167
|
+
6. triggerSchedule(id) - Manually trigger execution
|
|
168
|
+
7. getExecutionLogs(scheduleId, query) - Get logs with filtering
|
|
169
|
+
8. getScheduledJobs() - Get all active schedules
|
|
170
|
+
9. getScheduleById(id) - Get schedule by ID
|
|
171
|
+
|
|
172
|
+
Include:
|
|
173
|
+
- Cron expression validation using cron-parser
|
|
174
|
+
- Timezone validation using moment-timezone
|
|
175
|
+
- Next execution calculation
|
|
176
|
+
- Bull queue management
|
|
177
|
+
- Error handling with proper exceptions
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Task 5: Create Bull Processor
|
|
181
|
+
|
|
182
|
+
Prompt:
|
|
183
|
+
```
|
|
184
|
+
Create schedule.processor.ts in src/module/workflow-schedule/processors/:
|
|
185
|
+
|
|
186
|
+
Implement a Bull processor that:
|
|
187
|
+
1. Processes scheduled workflow jobs
|
|
188
|
+
2. Queries records based on workflow criteria
|
|
189
|
+
3. Executes actions (sendEmail, updateRecord, createTask, sendNotification)
|
|
190
|
+
4. Handles batch processing (100 records per batch)
|
|
191
|
+
5. Logs execution results
|
|
192
|
+
6. Updates schedule after execution
|
|
193
|
+
7. Implements retry with exponential backoff
|
|
194
|
+
8. Handles template variable replacement ({{record.field}})
|
|
195
|
+
|
|
196
|
+
Include lifecycle hooks:
|
|
197
|
+
- @OnQueueActive()
|
|
198
|
+
- @OnQueueCompleted()
|
|
199
|
+
- @OnQueueFailed()
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Task 6: Create Controller
|
|
203
|
+
|
|
204
|
+
Prompt:
|
|
205
|
+
```
|
|
206
|
+
Create workflow-schedule.controller.ts with REST endpoints:
|
|
207
|
+
|
|
208
|
+
POST /workflow-schedule - Create schedule
|
|
209
|
+
GET /workflow-schedule - List all schedules
|
|
210
|
+
GET /workflow-schedule/:id - Get by ID
|
|
211
|
+
PUT /workflow-schedule/:id - Update schedule
|
|
212
|
+
DELETE /workflow-schedule/:id - Delete schedule
|
|
213
|
+
POST /workflow-schedule/:id/pause - Pause
|
|
214
|
+
POST /workflow-schedule/:id/resume - Resume
|
|
215
|
+
POST /workflow-schedule/:id/trigger - Manual trigger
|
|
216
|
+
GET /workflow-schedule/:id/logs - Get execution logs
|
|
217
|
+
|
|
218
|
+
Add Swagger decorators (@ApiOperation, @ApiResponse, @ApiTags).
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Task 7: Create Migrations
|
|
222
|
+
|
|
223
|
+
Prompt:
|
|
224
|
+
```
|
|
225
|
+
Create TypeORM migrations in src/migrations/:
|
|
226
|
+
|
|
227
|
+
1. AddWorkflowTypeToWorkflows - Add workflow_type ENUM column to workflows table
|
|
228
|
+
2. CreateScheduledWorkflowsTable - Create scheduled_workflows table with all fields and indexes
|
|
229
|
+
3. CreateWorkflowExecutionLogsTable - Create workflow_execution_logs table with all fields and indexes
|
|
230
|
+
|
|
231
|
+
Use proper TypeORM migration format with up() and down() methods.
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Task 8: Create Configuration
|
|
235
|
+
|
|
236
|
+
Prompt:
|
|
237
|
+
```
|
|
238
|
+
Create src/config/bull.config.ts:
|
|
239
|
+
|
|
240
|
+
Export getBullConfig function that returns BullModuleOptions with:
|
|
241
|
+
- Redis connection config from environment variables
|
|
242
|
+
- Default job options (attempts: 3, exponential backoff)
|
|
243
|
+
- Queue settings (lock duration, stalled interval)
|
|
244
|
+
- Job retention policies
|
|
245
|
+
|
|
246
|
+
Support environment variables:
|
|
247
|
+
- REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, REDIS_DB
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Task 9: Update App Module
|
|
251
|
+
|
|
252
|
+
Prompt:
|
|
253
|
+
```
|
|
254
|
+
Update src/app.module.ts:
|
|
255
|
+
|
|
256
|
+
1. Import BullModule from @nestjs/bull
|
|
257
|
+
2. Import WorkflowScheduleModule
|
|
258
|
+
3. Import getBullConfig from ./config/bull.config
|
|
259
|
+
|
|
260
|
+
4. Add to imports array:
|
|
261
|
+
- BullModule.forRootAsync() with getBullConfig
|
|
262
|
+
- WorkflowScheduleModule
|
|
263
|
+
|
|
264
|
+
Keep all existing imports and configuration.
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Task 10: Create Tests
|
|
268
|
+
|
|
269
|
+
Prompt:
|
|
270
|
+
```
|
|
271
|
+
Create unit tests in src/module/workflow-schedule/tests/workflow-schedule.service.spec.ts:
|
|
272
|
+
|
|
273
|
+
Test all service methods:
|
|
274
|
+
- scheduleWorkflow() - valid and invalid inputs
|
|
275
|
+
- updateSchedule() - success and not found cases
|
|
276
|
+
- deleteSchedule() - success and not found cases
|
|
277
|
+
- pauseSchedule() - verify isActive flag
|
|
278
|
+
- resumeSchedule() - verify queue management
|
|
279
|
+
- triggerSchedule() - verify manual execution
|
|
280
|
+
- getExecutionLogs() - verify filtering and pagination
|
|
281
|
+
|
|
282
|
+
Use Jest with mocked repositories and queue.
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## 🎯 Complete Implementation Command
|
|
288
|
+
|
|
289
|
+
For a single-command implementation, use:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
cd /Users/debrajdas/WORKSPACE/001_RZ/PROJECTS/ETHER/250218_nodejs_core
|
|
293
|
+
|
|
294
|
+
claude-code --prompt "Implement a complete workflow schedule module based on the attached implementation plan. Create all files in src/module/workflow-schedule/ with full TypeScript implementation, including module, service, controller, entities, DTOs, processor, migrations, and tests. Follow NestJS best practices and include proper error handling, validation, and documentation." --attach Schedule_Workflow_Implementation_Plan.md
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## 📦 What Claude Code Will Create
|
|
300
|
+
|
|
301
|
+
Claude Code will create approximately 17 files:
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
src/
|
|
305
|
+
├── config/
|
|
306
|
+
│ └── bull.config.ts
|
|
307
|
+
├── migrations/
|
|
308
|
+
│ ├── [timestamp]-AddWorkflowTypeToWorkflows.ts
|
|
309
|
+
│ ├── [timestamp]-CreateScheduledWorkflowsTable.ts
|
|
310
|
+
│ └── [timestamp]-CreateWorkflowExecutionLogsTable.ts
|
|
311
|
+
└── module/
|
|
312
|
+
└── workflow-schedule/
|
|
313
|
+
├── workflow-schedule.module.ts
|
|
314
|
+
├── workflow-schedule.service.ts
|
|
315
|
+
├── workflow-schedule.controller.ts
|
|
316
|
+
├── constants/
|
|
317
|
+
│ └── schedule.constants.ts
|
|
318
|
+
├── dto/
|
|
319
|
+
│ ├── create-schedule.dto.ts
|
|
320
|
+
│ ├── update-schedule.dto.ts
|
|
321
|
+
│ └── get-execution-logs.dto.ts
|
|
322
|
+
├── entities/
|
|
323
|
+
│ ├── scheduled-workflow.entity.ts
|
|
324
|
+
│ └── workflow-execution-log.entity.ts
|
|
325
|
+
├── interfaces/
|
|
326
|
+
│ └── schedule-job-data.interface.ts
|
|
327
|
+
├── processors/
|
|
328
|
+
│ └── schedule.processor.ts
|
|
329
|
+
└── tests/
|
|
330
|
+
└── workflow-schedule.service.spec.ts
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## ✅ After Implementation
|
|
336
|
+
|
|
337
|
+
Once Claude Code finishes, you'll need to:
|
|
338
|
+
|
|
339
|
+
### 1. Install Dependencies
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
npm install @nestjs/bull bull ioredis cron-parser moment-timezone
|
|
343
|
+
npm install --save-dev @types/bull @types/cron
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### 2. Setup Redis
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
docker run -d -p 6379:6379 --name redis redis:alpine
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### 3. Update .env
|
|
353
|
+
|
|
354
|
+
```env
|
|
355
|
+
REDIS_HOST=localhost
|
|
356
|
+
REDIS_PORT=6379
|
|
357
|
+
REDIS_PASSWORD=
|
|
358
|
+
REDIS_DB=0
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### 4. Run Migrations
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
npm run migration:run
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### 5. Start Application
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
npm run start:dev
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## 🔍 Monitoring Progress
|
|
376
|
+
|
|
377
|
+
Claude Code will show you:
|
|
378
|
+
- ✅ Files being created
|
|
379
|
+
- 📝 Code being written
|
|
380
|
+
- 🔧 Changes being made
|
|
381
|
+
- ⚠️ Any errors encountered
|
|
382
|
+
|
|
383
|
+
You can review each change before accepting it.
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## 💡 Pro Tips
|
|
388
|
+
|
|
389
|
+
### 1. **Use Context Files**
|
|
390
|
+
|
|
391
|
+
Provide Claude Code with your implementation plan:
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
claude-code --attach /path/to/Schedule_Workflow_Implementation_Plan.md
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### 2. **Iterative Refinement**
|
|
398
|
+
|
|
399
|
+
If something isn't perfect, ask Claude Code to refine:
|
|
400
|
+
|
|
401
|
+
```
|
|
402
|
+
"The service needs better error messages. Update all error handling to include detailed context."
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### 3. **Add Tests as You Go**
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
"After creating the service, generate comprehensive unit tests for all methods."
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### 4. **Review Changes**
|
|
412
|
+
|
|
413
|
+
Claude Code shows diffs before applying. Review carefully!
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## 🚨 Important Notes
|
|
418
|
+
|
|
419
|
+
1. **Backup First**: Always commit your current code before using Claude Code
|
|
420
|
+
```bash
|
|
421
|
+
git add .
|
|
422
|
+
git commit -m "Before workflow-schedule implementation"
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
2. **Review Generated Code**: Claude Code is powerful but always review the changes
|
|
426
|
+
|
|
427
|
+
3. **Test Thoroughly**: Run tests after implementation
|
|
428
|
+
```bash
|
|
429
|
+
npm run test
|
|
430
|
+
npm run test:e2e
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## 📚 Claude Code Commands Reference
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
# Start interactive session
|
|
439
|
+
claude-code
|
|
440
|
+
|
|
441
|
+
# Run with specific prompt
|
|
442
|
+
claude-code --prompt "Your prompt here"
|
|
443
|
+
|
|
444
|
+
# Attach context files
|
|
445
|
+
claude-code --attach file1.md --attach file2.ts
|
|
446
|
+
|
|
447
|
+
# Run in specific directory
|
|
448
|
+
claude-code --dir /path/to/project
|
|
449
|
+
|
|
450
|
+
# Show help
|
|
451
|
+
claude-code --help
|
|
452
|
+
|
|
453
|
+
# Check version
|
|
454
|
+
claude-code --version
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
## 🎬 Example Session
|
|
460
|
+
|
|
461
|
+
```bash
|
|
462
|
+
$ cd /Users/debrajdas/WORKSPACE/001_RZ/PROJECTS/ETHER/250218_nodejs_core
|
|
463
|
+
$ claude-code
|
|
464
|
+
|
|
465
|
+
Claude Code> Implement the workflow schedule module based on the plan in /mnt/project/Schedule_Workflow_Implementation_Plan.md
|
|
466
|
+
|
|
467
|
+
🤖 Claude: I'll implement the workflow schedule module for you. Let me start by creating the directory structure...
|
|
468
|
+
|
|
469
|
+
✅ Created: src/module/workflow-schedule/
|
|
470
|
+
✅ Created: src/module/workflow-schedule/entities/
|
|
471
|
+
✅ Created: src/module/workflow-schedule/dto/
|
|
472
|
+
...
|
|
473
|
+
[Claude creates all files]
|
|
474
|
+
...
|
|
475
|
+
✅ Implementation complete!
|
|
476
|
+
|
|
477
|
+
📋 Next steps:
|
|
478
|
+
1. Install dependencies: npm install @nestjs/bull bull ioredis cron-parser moment-timezone
|
|
479
|
+
2. Setup Redis: docker run -d -p 6379:6379 --name redis redis:alpine
|
|
480
|
+
3. Update .env with Redis configuration
|
|
481
|
+
4. Run migrations: npm run migration:run
|
|
482
|
+
5. Start application: npm run start:dev
|
|
483
|
+
|
|
484
|
+
Claude Code> exit
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
## 🎉 Benefits of Using Claude Code
|
|
490
|
+
|
|
491
|
+
✅ **Faster**: Complete implementation in minutes
|
|
492
|
+
✅ **Consistent**: Follows best practices automatically
|
|
493
|
+
✅ **Interactive**: Can ask questions and refine
|
|
494
|
+
✅ **Safe**: Shows diffs before applying changes
|
|
495
|
+
✅ **Smart**: Understands your project structure
|
|
496
|
+
|
|
497
|
+
---
|
|
498
|
+
|
|
499
|
+
## 📞 Need Help?
|
|
500
|
+
|
|
501
|
+
If you encounter issues with Claude Code:
|
|
502
|
+
|
|
503
|
+
1. Check Claude Code documentation: https://docs.claude.com/claude-code
|
|
504
|
+
2. Use `--verbose` flag for detailed logging
|
|
505
|
+
3. Start with small tasks to test
|
|
506
|
+
4. Always review changes before accepting
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
**Ready to use Claude Code? Start with the complete implementation command above!** 🚀
|