@itleanchatbot/shared-models-js-postgres 3.1.0 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/legacy/migrations/2021050204551-create-extension-uuid-ossp.js +12 -12
- package/src/legacy/migrations/20210503140511-create-channel-types.js +56 -56
- package/src/legacy/migrations/20210503141113-create-channel-configurations.js +56 -56
- package/src/legacy/migrations/20210503141528-create-enterprises.js +47 -47
- package/src/legacy/migrations/20210503142049-create-permissions.js.js +44 -44
- package/src/legacy/migrations/20210503142205-create-profiles.js.js +33 -33
- package/src/legacy/migrations/20210503142259-create-profiles-permissions.js +45 -45
- package/src/legacy/migrations/20210503142433-create-system-users.js +61 -61
- package/src/legacy/migrations/20210503142528-create-system-users-profiles.js +45 -45
- package/src/legacy/migrations/20210503142645-create-departments.js +49 -49
- package/src/legacy/migrations/20210503142739-create-clients.js +44 -44
- package/src/legacy/migrations/20210503142857-create-intelligences.js +48 -48
- package/src/legacy/migrations/20210503142959-create-ibm-providers.js +71 -71
- package/src/legacy/migrations/20210503151909-create-itlean-providers.js +53 -53
- package/src/legacy/migrations/20210503154612-create-skills.js +110 -114
- package/src/legacy/migrations/20210503161006-create-files.js +53 -53
- package/src/legacy/migrations/20210503161236-create-channels.js +66 -66
- package/src/legacy/migrations/20210503161308-create-sessions.js +67 -67
- package/src/legacy/migrations/20210503161503-create-subdepartments.js +49 -49
- package/src/legacy/migrations/20210503161543-create-branches.js +53 -53
- package/src/legacy/migrations/20210503161909-create-lines.js +55 -55
- package/src/legacy/migrations/20210503161947-create-entities.js +56 -56
- package/src/legacy/migrations/20210503162126-create-intentions.js +56 -56
- package/src/legacy/migrations/20210503162213-create-intentions-values.js +51 -51
- package/src/legacy/migrations/20210503162618-create-entities-values.js +67 -67
- package/src/legacy/migrations/20210503162752-create-synonyms.js +71 -71
- package/src/legacy/migrations/20210503163331-create-responses.js +58 -58
- package/src/legacy/migrations/20210503163437-create-responses-boxes.js +66 -66
- package/src/legacy/migrations/20210503163702-create-languages.js +42 -42
- package/src/legacy/migrations/20210503184109-create-groups.js +53 -53
- package/src/legacy/migrations/20210503185846-create-contacts.js +55 -55
- package/src/legacy/migrations/20210503190220-create-groups-contacts.js +47 -47
- package/src/legacy/migrations/20210503190338-create-fields.js +40 -40
- package/src/legacy/migrations/20210503190515-create-apis.js +65 -65
- package/src/legacy/migrations/20210503191041-create-apis-resources-body.js +46 -46
- package/src/legacy/migrations/20210503191107-create-apis-resources.js +74 -74
- package/src/legacy/migrations/20210503191253-create-apis-resources-headers.js +53 -53
- package/src/legacy/migrations/20210503193228-create-apis-resources-query-string-params.js +61 -61
- package/src/legacy/migrations/20210503193425-create-apis-resources-path-params.js +52 -52
- package/src/legacy/migrations/20210503193511-create-dialog-nodes.js +121 -121
- package/src/legacy/migrations/20210503193629-create-response-dialog-nodes.js +46 -46
- package/src/legacy/migrations/20210503193905-create-system-users-lines.js +45 -45
- package/src/legacy/migrations/20210503194004-create-attendances.js +80 -80
- package/src/legacy/migrations/20210503194036-create-tranship-conversations.js +65 -65
- package/src/legacy/migrations/20210503194204-create-line-configurations.js +75 -75
- package/src/legacy/migrations/20210504133611-create-templates.js +68 -68
- package/src/legacy/migrations/20210504133647-create-socket-clients.js +73 -73
- package/src/legacy/migrations/20210504143703-create-dialog-nodes-multiple-responses.js +47 -47
- package/src/legacy/migrations/20210504144332-create-messages-hsm.js +72 -72
- package/src/legacy/migrations/20210504144657-create-dialog-nodes-api-resources.js +54 -54
- package/src/legacy/migrations/20210504144730-create-send-hsm.js +62 -62
- package/src/legacy/migrations/20210504144859-create-messages-hsm-channels.js +48 -48
- package/src/legacy/migrations/20210504144931-create-open-faqs.js +55 -55
- package/src/legacy/migrations/20210504145032-create-return-hsm.js +50 -50
- package/src/legacy/migrations/20210504160623-create-group-send-hsm.js +52 -52
- package/src/legacy/migrations/20210504164445-create-extension-unaccent.js +11 -11
- package/src/legacy/migrations/20210504164516-create-extension-fuzzy.js +11 -11
- package/src/legacy/migrations/20210504164553-create-attendance-scale.js +48 -48
- package/src/legacy/migrations/20210504164613-create-attendance-scale-off.js +58 -58
- package/src/legacy/migrations/20210504165351-create-comments.js +42 -42
- package/src/legacy/migrations/20210504165421-create-quick-messages.js +49 -49
- package/src/legacy/migrations/20210504165514-create-bot-iterables.js +60 -60
- package/src/legacy/migrations/20210504165900-create-tranship-triggers.js +114 -114
- package/src/legacy/migrations/20210505025504-create-send-hsm-return-hsm.js +34 -34
- package/src/legacy/migrations/20210507012938-create-faq-triggers.js +68 -68
- package/src/legacy/migrations/20210518122431-alter-responses.js +17 -17
- package/src/legacy/migrations/20210524150418-create-faq-questions.js +51 -51
- package/src/legacy/migrations/20210524173157-alter-table-open-faq.js +17 -17
- package/src/legacy/migrations/20210526115430-alter-attendances.js +14 -14
- package/src/legacy/migrations/20210528101030-alter-attendances.js +82 -82
- package/src/legacy/migrations/20210609103918-create-table-postbakGupshup.js +46 -46
- package/src/legacy/migrations/20210614194609-alter-channels.js +14 -14
- package/src/legacy/migrations/20210618101840-alter-table-MessagesHsms.js +14 -14
- package/src/legacy/migrations/20210622132643-alter-table-postbackGupshup.js +11 -11
- package/src/legacy/migrations/20210623110159-alter-table-botinterable.js +176 -176
- package/src/legacy/migrations/20210623180356-alter-dialog-nodes-api-resources.js +15 -15
- package/src/legacy/migrations/20210625165930-alter-dialog-nodes-api-resources.js +15 -15
- package/src/legacy/migrations/20210708142712-alter-table-entity-values.js +17 -17
- package/src/legacy/migrations/20210708145259-alter-table-synonyms.js +25 -25
- package/src/legacy/migrations/20210719161230-alter-attendances.js +14 -14
- package/src/legacy/migrations/20210727095921-alter-name-size.js +39 -39
- package/src/legacy/migrations/20210727110430-create-endSessionTriggers.js +71 -71
- package/src/legacy/migrations/20210728140327-create-table-online-editing.js +42 -42
- package/src/legacy/migrations/20210810152747-alter-botIterables.js +26 -26
- package/src/legacy/migrations/20210812110330-create-indexes.js +101 -101
- package/src/legacy/migrations/20210816124430-create-inactivityTriggers.js +60 -60
- package/src/legacy/migrations/20210819155330-create-function.js +123 -123
- package/src/legacy/migrations/20210823145424-remove-names-botiterables.js +74 -74
- package/src/legacy/migrations/20210902145430-create-apiKeys.js +40 -40
- package/src/legacy/migrations/20210906092430-create-customPostback.js +44 -44
- package/src/legacy/migrations/20210906144034-alter-api-body-migration.js +72 -74
- package/src/legacy/migrations/20210910081430-create-transhipInactivityTriggers.js +48 -48
- package/src/legacy/migrations/20210923131530-alter-attendances.js +14 -14
- package/src/legacy/migrations/20210923140130-create-function.js +85 -85
- package/src/legacy/migrations/20210927141630-alter-attendances.js +32 -32
- package/src/legacy/migrations/20211006150930-create-index.js +62 -62
- package/src/legacy/migrations/20211020130541-alter-table-session-hasTranship.js +14 -14
- package/src/legacy/migrations/20211022105430-alter-attendance-scale-off.js +27 -27
- package/src/legacy/migrations/20211025155825-create-stopwords.js +50 -50
- package/src/legacy/migrations/20211029134230-remove-constraints.js +187 -187
- package/src/legacy/migrations/20211119123119-CreateApiPreRequest.js +66 -66
- package/src/legacy/migrations/20211122115430-create-publish.js +40 -40
- package/src/legacy/migrations/20211213111830-alter-publications.js +13 -13
- package/src/legacy/migrations/20211220144430-alter-channels.js +13 -13
- package/src/legacy/migrations/20220105153930-alter-botIterables.js +13 -13
- package/src/legacy/migrations/20220118131507-alter-table-SystemUsers-isActive.js +20 -20
- package/src/legacy/migrations/20220121145703-alter-table-botiterable.js +32 -28
- package/src/legacy/migrations/20220126141248-alter-table-sessions-session-start.js +14 -14
- package/src/legacy/migrations/20220203094630-alter-SendHsmReturHsms.js +14 -14
- package/src/legacy/migrations/20220203181702-insert-teams-channel-configurations.js +21 -21
- package/src/legacy/migrations/20220204141205-create-whastapp-sessions.js +36 -36
- package/src/legacy/migrations/20220207124321-create-conversation-session.js +85 -85
- package/src/legacy/migrations/20220215123711-alter-table-conversation-sessions.js +15 -15
- package/src/legacy/migrations/20220221140530-alter-functions.js +160 -161
- package/src/legacy/migrations/20220224112430-create-index.js +13 -13
- package/src/legacy/migrations/20220301115430-create-sessionsPreReports.js +58 -58
- package/src/legacy/migrations/20220301115530-alter-sessions.js +14 -14
- package/src/legacy/migrations/20220303152530-create-dialogNodesPreReports.js +46 -46
- package/src/legacy/migrations/20220308145105-alter-table-transhipConversation-mimetype.js +16 -16
- package/src/legacy/migrations/20220309145730-create-function.js +117 -116
- package/src/legacy/migrations/20220310125603-alter-table-conversationSessions-SkillId.js +20 -20
- package/src/legacy/migrations/20220310143530-alter-functions.js +319 -321
- package/src/legacy/migrations/20220406125731-alter-table-entities-add-column-fuzzy.js +14 -14
- package/src/legacy/migrations/20220407191846-alter-table-dialog-nodes-type.js +33 -34
- package/src/legacy/migrations/20220408125630-create-index.js +22 -19
- package/src/legacy/migrations/20220413113609-alter-table-botiterable-action.js +18 -24
- package/src/legacy/migrations/20220503111730-create-index.js +31 -25
- package/src/legacy/migrations/20220503150629-create-table-blacklist-contacts.js +40 -40
- package/src/legacy/migrations/20220503150638-create-table-whitelist-contacts.js +40 -40
- package/src/legacy/migrations/20220524130822-alter-table-channel-title-icon-file.js +20 -20
- package/src/legacy/migrations/20220610103030-create-index.js +13 -13
- package/src/legacy/migrations/20220704143200-create-index.js +16 -13
- package/src/legacy/migrations/20220728094430-create-index.js +94 -73
- package/src/legacy/migrations/20220823112830-alter-skill.js +24 -25
- package/src/legacy/models/apiKeys.js +24 -25
- package/src/legacy/models/apiPreRequest.js +55 -56
- package/src/legacy/models/apiResourceBodies.js +43 -44
- package/src/legacy/models/apiResourceHeaders.js +29 -30
- package/src/legacy/models/apiResourcePathParams.js +28 -29
- package/src/legacy/models/apiResourceQueryStringParams.js +36 -37
- package/src/legacy/models/apiResources.js +77 -78
- package/src/legacy/models/apis.js +64 -67
- package/src/legacy/models/attendanceScale.js +40 -40
- package/src/legacy/models/attendanceScaleOff.js +59 -56
- package/src/legacy/models/attendances.js +93 -93
- package/src/legacy/models/blacklistContacts.js +24 -24
- package/src/legacy/models/botIterable.js +143 -137
- package/src/legacy/models/branches.js +35 -35
- package/src/legacy/models/channelConfigurations.js +41 -41
- package/src/legacy/models/channelTypes.js +68 -68
- package/src/legacy/models/channels.js +77 -77
- package/src/legacy/models/client.js +25 -25
- package/src/legacy/models/comments.js +27 -27
- package/src/legacy/models/contacts.js +40 -41
- package/src/legacy/models/conversationSessions.js +56 -56
- package/src/legacy/models/customPostbacks.js +28 -29
- package/src/legacy/models/departments.js +35 -35
- package/src/legacy/models/dialogNodes.js +200 -162
- package/src/legacy/models/dialogNodesPreReports.js +34 -35
- package/src/legacy/models/dialogNodes_MultipleResponses.js +41 -40
- package/src/legacy/models/dialogNodes_apiResources.js +52 -51
- package/src/legacy/models/endSessionTriggers.js +32 -29
- package/src/legacy/models/enterprises.js +29 -29
- package/src/legacy/models/entity.js +38 -38
- package/src/legacy/models/entityValues.js +63 -63
- package/src/legacy/models/faqQuestions.js +31 -31
- package/src/legacy/models/faqTriggers.js +60 -51
- package/src/legacy/models/fields.js +27 -28
- package/src/legacy/models/files.js +35 -35
- package/src/legacy/models/groups.js +44 -45
- package/src/legacy/models/groupsContracts.js +12 -13
- package/src/legacy/models/groupsSendHsms.js +12 -13
- package/src/legacy/models/ibmProvider.js +57 -57
- package/src/legacy/models/inactivityTriggers.js +37 -37
- package/src/legacy/models/intelligence.js +45 -45
- package/src/legacy/models/intention.js +36 -36
- package/src/legacy/models/intentionValue.js +31 -31
- package/src/legacy/models/itleanProvider.js +34 -35
- package/src/legacy/models/language.js +20 -21
- package/src/legacy/models/lineConfigurations.js +62 -63
- package/src/legacy/models/lines.js +49 -49
- package/src/legacy/models/messagesHsm.js +75 -75
- package/src/legacy/models/onlineEditions.js +26 -27
- package/src/legacy/models/openFaqs.js +33 -33
- package/src/legacy/models/permissions.js +27 -28
- package/src/legacy/models/postbackGupshup.js +26 -27
- package/src/legacy/models/profile.js +23 -23
- package/src/legacy/models/profiles_permission.js +25 -25
- package/src/legacy/models/publications.js +29 -30
- package/src/legacy/models/quickMessages.js +34 -35
- package/src/legacy/models/responseChannels.js +38 -39
- package/src/legacy/models/response_DialogNodes.js +36 -37
- package/src/legacy/models/responses.js +54 -55
- package/src/legacy/models/responsesBoxes.js +64 -66
- package/src/legacy/models/returnHsm.js +30 -31
- package/src/legacy/models/sendHsm.js +50 -51
- package/src/legacy/models/sendHsmReturnHsm.js +15 -16
- package/src/legacy/models/sessions.js +79 -79
- package/src/legacy/models/sessionsPreReports.js +42 -43
- package/src/legacy/models/skill.js +112 -112
- package/src/legacy/models/socketClients.js +56 -56
- package/src/legacy/models/stopwords.js +39 -41
- package/src/legacy/models/subDepartments.js +35 -35
- package/src/legacy/models/synonyms.js +67 -67
- package/src/legacy/models/systemUsers.js +64 -64
- package/src/legacy/models/systemUsers_Lines.js +25 -25
- package/src/legacy/models/systemUsers_profiles.js +25 -25
- package/src/legacy/models/templates.js +49 -50
- package/src/legacy/models/transhipConversations.js +50 -50
- package/src/legacy/models/transhipInactivityTriggers.js +31 -31
- package/src/legacy/models/transhipTriggers.js +118 -103
- package/src/legacy/models/whitelistContacts.js +24 -24
- package/src/legacy/seeders/20210414180447-change-ChannelTypes.js +47 -47
- package/src/legacy/seeders/20210505130137-insert-channel-types.js +65 -65
- package/src/legacy/seeders/20210505132612-insert-intelligence.js +27 -27
- package/src/legacy/seeders/20210505134121-insert-enterprise.js +15 -15
- package/src/legacy/seeders/20210505134345-insert-permissions.js +125 -125
- package/src/legacy/seeders/20210505134549-insert-profiles.js +39 -39
- package/src/legacy/seeders/20210505134700-insert-profiles-permissions.js +82 -80
- package/src/legacy/seeders/20210505135931-insert-system-users.js +52 -52
- package/src/legacy/seeders/20210505140025-insert-system-users-profiles.js +26 -26
- package/src/legacy/seeders/20210505140049-insert-language.js +21 -21
- package/src/legacy/seeders/20210505140259-insert-itlean-provider.js +34 -34
- package/src/legacy/seeders/20210505140343-insert-templates.js +228 -228
- package/src/legacy/seeders/20210505140658-insert-channel-configurations.js +146 -146
- package/src/legacy/seeders/20210618132740-add-new-channel-configutations.js +45 -45
- package/src/legacy/seeders/20210817081230-insert-profiles-permissions.js +105 -105
- package/src/legacy/seeders/20210830131930-insert-profiles-permissions.js +71 -71
- package/src/legacy/seeders/20210902160430-insert-apiKey.js +30 -30
- package/src/legacy/seeders/20210914165047-update-channel-types.js +15 -15
- package/src/legacy/seeders/20211005135921-edit-gupshup-reponseTypes.js +47 -47
- package/src/legacy/seeders/20220203123900-insert-teams-channel-type.js +32 -30
- package/src/legacy/seeders/20220203181702-insert-teams-channel-configurations.js +71 -67
- package/src/legacy/seeders/20220221142239-add-permissions-to-adm.js +111 -98
- package/src/legacy/seeders/20220317172100-insert-facebook-messenger-channel-type.js +46 -44
- package/src/legacy/seeders/20220317172234-insert-facebook-messenger-channel-configuration.js +66 -62
- package/src/legacy/seeders/test/20200924195050-create-ibmprovider.js +38 -38
- package/src/legacy/seeders/test/20200924195050-create-itlean-provider.js +40 -40
- package/src/legacy/seeders/test/20200924195050-seed-enterprises.js +24 -24
- package/src/legacy/seeders/test/20200925184253-seed-skils-itlean-provider.js +37 -37
- package/src/legacy/seeders/test/20200925184253-seed-skils.js +41 -41
- package/src/legacy/seeders/test/20200925184254-seed-Intention.js +39 -39
- package/src/legacy/seeders/test/20200925184258-seed-Intention-values.js +41 -41
- package/src/legacy/seeders/test/20200925191642-seed-entity-skill-itlean.js +23 -23
- package/src/legacy/seeders/test/20200925191642-seed-entity.js +23 -23
- package/src/legacy/seeders/test/20200925191643-seed-entity-values-skill-itlean.js +32 -32
- package/src/legacy/seeders/test/20200925191643-seed-entity-values.js +33 -33
- package/src/legacy/seeders/test/20200929132705-seed-dialog-node.js +128 -128
- package/src/legacy/seeders/test/20201016200600-seed-responses.js +563 -563
- package/src/legacy/seeders/test/20201104183653-seed-create-ype-skill.js +42 -42
- package/src/legacy/seeders/test/20201104183700-seed-create-ype-intention.js +26 -26
- package/src/legacy/seeders/test/20201104183706-seed-create-ype-intention-values.js +70 -70
- package/src/legacy/seeders/test/20201104183714-seed-create-ype-entity.js +38 -38
- package/src/legacy/seeders/test/20201104183723-seed-create-ype-entity-values.js +243 -243
- package/src/legacy/seeders/test/20201104183727-seed-create-ype-synonyms.js +253 -253
- package/src/legacy/seeders/test/20201104202534-seed-create-ype-node-saudacao.js +124 -124
- package/src/legacy/seeders/test/20210224163857-create-ibmprovider-framework.js +36 -37
- package/src/legacy/seeders/test/20210224165819-create-skill-framework.js +41 -41
- package/src/legacy/seeders/test/20210224165821-seed-channel-framework.js +62 -62
- package/src/legacy/seeders/test/20210224171409-create-apiResource-framework.js +107 -107
- package/src/legacy/seeders/test/20210224171409-create-apiResource.js +114 -114
- package/src/legacy/seeders/test/20210226115055-create-entity-framework.js +21 -21
- package/src/legacy/seeders/test/20210226115540-create-entity-value-framework.js +21 -21
- package/src/legacy/seeders/test/20210226115720-create-intention-framework.js +22 -22
- package/src/legacy/seeders/test/20210226115935-create-intention-values-framework.js +21 -21
- package/src/legacy/seeders/test/20210226121222-create-synonyms-framework.js +24 -24
- package/src/legacy/seeders/test/20210301174809-create-dialog-node-framework.js +43 -43
- package/src/legacy/seeders/test/20210422144458-seed-context-test.js +175 -175
- package/src/legacy/seeders/test/20210422181114-seed-jump-node.js +123 -123
- package/src/legacy/seeders/test/20210422182413-seed-jump-skill.js +123 -123
- package/src/legacy/seeders/test/20210426100156-seed-api-test.js +138 -138
- package/src/legacy/seeders/test/20210426103704-seed-multiple-response-test.js +275 -275
- package/src/legacy/seeders/test/20210426190844-seed-entity-search-test.js +160 -160
- package/src/legacy/seeders/test/20210427172150-seed-test-with-input-test-fisrt.js +160 -160
- package/src/legacy/seeders/test/20210428105402-seed-test-condition-1.js +190 -190
- package/src/legacy/seeders/test/20210430181906-seed-test-input-text-zero.js +120 -120
- package/src/legacy/seeders/test/20210430183204-seed-ype-test-condition.js +557 -557
- package/src/legacy/seeders/test/20210503172321-seed-invalid-condition.js +119 -119
- package/src/legacy/seeders/test/20210505140225-insert-skills.js +41 -41
- package/src/legacy/seeders/test/20210505183810-seed-chain-with-context.js +147 -147
- package/src/legacy/seeders/test/20210506125701-seed-with-intention-and-entity-same-name.js +188 -188
- package/src/legacy/seeders/test/20210507204437-seed-condition-igual-true.js +119 -119
- package/src/legacy/seeders/test/20210511181006-seed-using-internal-functions.js +274 -274
- package/src/legacy/seeders/test/20210512140152-seed-ype-real-bot.js +2578 -2578
- package/src/legacy/seeders/test/20210519162746-seed-response-with-context.js +186 -186
- package/src/legacy/seeders/test/20210524141819-seed-dialog-node-faq.js +244 -244
- package/src/legacy/seeders/test/20210525180523-seed-regex.js +173 -173
- package/src/legacy/seeders/test/20210602111930-insert-dialogNodes.js +200 -200
- package/src/legacy/seeders/test/20210607124530-create-tranship-framework.js +428 -428
- package/src/legacy/seeders/test/20210608103730-create-transhipConversation-framework.js +366 -368
- package/src/legacy/seeders/test/20210608140230-test-transfer-framework.js +415 -415
- package/src/legacy/seeders/test/20210610152534-seed-test-internal-function-in-context.js +216 -216
- package/src/legacy/seeders/test/20210610181308-seed-test-find-in-array-internal-function.js +147 -147
- package/src/legacy/seeders/test/20210611101042-bot-example-internal-functions.js +985 -985
- package/src/legacy/seeders/test/20210613111900-bot-example-api.js +420 -420
- package/src/legacy/seeders/test/20210614113654-miltiple-response-with-research.js +387 -387
- package/src/legacy/seeders/test/20210616212102-api-authentication-and-list.js +422 -422
- package/src/legacy/seeders/test/20210624172310-seed-api-duble-request.js +424 -424
- package/src/legacy/seeders/test/20210628135630-test-branches.js +224 -224
- package/src/legacy/seeders/test/20210629141030-test-departments.js +225 -225
- package/src/legacy/seeders/test/20210630105430-test-subDepartments.js +223 -223
- package/src/legacy/seeders/test/20210630114011-test-contact.js +178 -178
- package/src/legacy/seeders/test/20210701130630-test-channels.js +381 -381
- package/src/legacy/seeders/test/20210702191230-seed-test-counter-in-context.js +122 -122
- package/src/legacy/seeders/test/20210705061313-test-fields.js +152 -152
- package/src/legacy/seeders/test/20210705080813-test-groups.js +122 -122
- package/src/legacy/seeders/test/20210705105918-seed-test-function-slice.js +161 -161
- package/src/legacy/seeders/test/20210706105508-seed-node-without-condition.js +254 -254
- package/src/legacy/seeders/test/20210706112906-seed-1.0-on-response.js +172 -172
- package/src/legacy/seeders/test/20210706145547-seed-clean-context.js +132 -132
- package/src/legacy/seeders/test/20210707151538-seed-test-response-break-line.js +161 -161
- package/src/legacy/seeders/test/20210713155530-seed-test-itl0079-875.js +129 -129
- package/src/legacy/seeders/test/20210715125619-seed-multiple-response-with-several-jumps.js +789 -789
- package/src/legacy/seeders/test/20210715163606-seed-test-multiple-response-with-jump.js +250 -250
- package/src/legacy/seeders/test/20210719154025-seed-2-contexts-together.js +133 -133
- package/src/legacy/seeders/test/20210802144227-seed-end-session-trigger.js +163 -163
- package/src/legacy/seeders/test/20210803103030-tests-dialogNodes.js +406 -406
- package/src/legacy/seeders/test/20210804094630-tests-lines.js +487 -487
- package/src/legacy/seeders/test/20210805104130-tests-lineConfigurations.js +106 -106
- package/src/legacy/seeders/test/20210805133330-tests-systemUsers.js +507 -507
- package/src/legacy/seeders/test/20210813124630-tests-getMessagesBySession.js +333 -333
- package/src/legacy/seeders/test/20210813143730-tests-botIterables-framework.js +400 -400
- package/src/legacy/seeders/test/20210816151830-testes-inactivityTriggers.js +196 -196
- package/src/legacy/seeders/test/20210830134230-tests-sessionReports.js +254 -254
- package/src/legacy/seeders/test/20210830165830-tests-attendancesHistory.js +181 -181
- package/src/legacy/seeders/test/20210927115821-skill-test-open-faq.js +37 -37
- package/src/legacy/seeders/test/20211004131813-true-and-context-with-parent.js +190 -190
- package/src/legacy/seeders/test/20211006210203-context-concat-with-text.js +193 -193
- package/src/legacy/seeders/test/20211122141406-api-pre-request.js +201 -201
- package/src/migrations/20220509095001-create-extension-uuid-ossp.js +27 -27
- package/src/migrations/20220509095002-create-enterprises.js +64 -64
- package/src/migrations/20220509095003-create-systemUsers.js +97 -97
- package/src/migrations/20220509095004-create-permissions.js +45 -45
- package/src/migrations/20220509095005-create-profiles.js +38 -38
- package/src/migrations/20220509095006-create-profiles-permissions.js +51 -45
- package/src/migrations/20220509095007-create-systemUsers-profiles.js +51 -45
- package/src/migrations/20220509095008-create-branches.js +61 -61
- package/src/migrations/20220509095009-create-departments.js +61 -61
- package/src/migrations/20220509095010-create-subDepartments.js +70 -61
- package/src/migrations/20220509095011-create-lines.js +47 -47
- package/src/migrations/20220509095012-create-systemUsers-lines.js +51 -45
- package/src/migrations/20220509095013-create-apiKeys.js +40 -40
- package/src/migrations/20220509095014-create-customPostbacks.js +47 -44
- package/src/migrations/20220509095015-create-lineConfigurations.js +91 -85
- package/src/migrations/20220509095016-create-attendanceScales.js +51 -48
- package/src/migrations/20220509095017-create-attendanceScaleOffs.js +61 -58
- package/src/migrations/20220509095018-create-quickMessages.js +57 -54
- package/src/migrations/20220509095019-create-transhipInactivityTriggers.js +55 -52
- package/src/migrations/20220509095020-create-contacts.js +54 -54
- package/src/migrations/20220509095021-create-groups.js +52 -52
- package/src/migrations/20220509095022-create-groupsContacts.js +51 -45
- package/src/migrations/20220509095023-create-fields.js +39 -39
- package/src/migrations/20220509095024-create-channelTypes.js +62 -62
- package/src/migrations/20220509095025-create-channelConfigurations.js +59 -56
- package/src/migrations/20220509095026-create-templates.js +59 -59
- package/src/migrations/20220509095027-create-intelligences.js +53 -50
- package/src/migrations/20220509095028-create-itleanProviders.js +47 -44
- package/src/migrations/20220509095029-create-ibmProviders.js +63 -63
- package/src/migrations/20220509095030-create-skills.js +126 -124
- package/src/migrations/20220509095031-create-files.js +49 -49
- package/src/migrations/20220509095032-create-channels.js +92 -88
- package/src/migrations/20220509095033-create-messagesHsms.js +70 -70
- package/src/migrations/20220509095034-create-messagesHsms_channels.js +52 -46
- package/src/migrations/20220509095035-create-sendHsms.js +68 -68
- package/src/migrations/20220509095036-create-groupsSendHsms.js +52 -46
- package/src/migrations/20220509095037-create-intentions.js +57 -57
- package/src/migrations/20220509095038-create-intentionValues.js +59 -53
- package/src/migrations/20220509095039-create-entities.js +61 -61
- package/src/migrations/20220509095040-create-entityValues.js +70 -72
- package/src/migrations/20220509095041-create-synonyms.js +67 -67
- package/src/migrations/20220509095042-create-responses.js +63 -63
- package/src/migrations/20220509095043-create-responsesBoxes.js +75 -68
- package/src/migrations/20220509095044-create-openFaqs.js +60 -60
- package/src/migrations/20220509095045-create-faqQuestions.js +53 -53
- package/src/migrations/20220509095046-create-apis.js +61 -63
- package/src/migrations/20220509095047-create-apiResourcesBodies.js +50 -49
- package/src/migrations/20220509095048-create-apiResources.js +72 -72
- package/src/migrations/20220509095049-create-apiPreRequests.js +88 -76
- package/src/migrations/20220509095050-create-apiResourcesHeaders.js +70 -61
- package/src/migrations/20220509095051-create-apiResourcesPathParams.js +69 -60
- package/src/migrations/20220509095052-create-apiResourcesQueryStringParams.js +83 -71
- package/src/migrations/20220509095053-create-clients.js +47 -47
- package/src/migrations/20220509095054-create-onlineEditions.js +55 -52
- package/src/migrations/20220509095055-create-postbackGupshups.js +75 -66
- package/src/migrations/20220509095056-create-publications.js +54 -54
- package/src/migrations/20220509095057-create-returnHsms.js +62 -62
- package/src/migrations/20220509095058-create-sendHsmReturnHsms.js +65 -56
- package/src/migrations/20220509095059-create-sessions.js +85 -85
- package/src/migrations/20220509095060-create-sessionsPreReports.js +80 -74
- package/src/migrations/20220509095061-create-socketClients.js +101 -80
- package/src/migrations/20220509095062-create-stopwords.js +44 -44
- package/src/migrations/20220509095063-create-conversationSessions.js +78 -69
- package/src/migrations/20220509095064-create-dialogNodes.js +96 -92
- package/src/migrations/20220509095065-create-dialogNodesPreReports.js +68 -62
- package/src/migrations/20220509095066-create-dialogNodes_ApiResources.js +74 -65
- package/src/migrations/20220509095067-create-dialogNodes_MultipleResponses.js +52 -46
- package/src/migrations/20220509095068-create-response_DialogNodes.js +66 -57
- package/src/migrations/20220509095069-create-transhipTriggers.js +87 -84
- package/src/migrations/20220509095070-create-attendances.js +119 -112
- package/src/migrations/20220509095071-create-comments.js +46 -46
- package/src/migrations/20220509095072-create-transhipConversations.js +81 -75
- package/src/migrations/20220509095073-create-endSessionTriggers.js +51 -45
- package/src/migrations/20220509095074-create-faqTriggers.js +47 -47
- package/src/migrations/20220509095075-create-inactivityTriggers.js +64 -58
- package/src/migrations/20220509095076-create-botIterables.js +161 -148
- package/src/migrations/20220509095077-create-blacklistContacts.js +47 -44
- package/src/migrations/20220509095078-create-whitelistContacts.js +47 -44
- package/src/migrations/20220509095079-create-function-getInactiveSessions.js +91 -93
- package/src/migrations/20220509095080-create-function-getInactiveAttendances.js +92 -94
- package/src/migrations/20221004113728-add-indexes.js +14 -14
- package/src/migrations/20221205131730-add-indexes.js +45 -40
- package/src/migrations/20221205131730-alter-function.js +173 -175
- package/src/migrations/20221205131731-alter-function.js +174 -176
- package/src/migrations/20221205131732-add-indexes.js +28 -27
- package/src/migrations/20221215115730-alter-contacts.js +14 -14
- package/src/migrations/20250715190352-create-transcriptions-table.js +41 -0
- package/src/models/Transcription.js +34 -0
- package/src/models/apiKeys.js +22 -22
- package/src/models/apiPreRequest.js +58 -59
- package/src/models/apiResourceBodies.js +52 -53
- package/src/models/apiResourceHeaders.js +36 -37
- package/src/models/apiResourcePathParams.js +35 -36
- package/src/models/apiResourceQueryStringParams.js +43 -44
- package/src/models/apiResources.js +82 -83
- package/src/models/apis.js +63 -66
- package/src/models/attendanceScale.js +38 -38
- package/src/models/attendanceScaleOff.js +57 -54
- package/src/models/attendances.js +110 -110
- package/src/models/blacklistContacts.js +31 -31
- package/src/models/botIterable.js +145 -139
- package/src/models/branches.js +33 -33
- package/src/models/channelConfigurations.js +39 -39
- package/src/models/channelTypes.js +69 -69
- package/src/models/channels.js +85 -85
- package/src/models/client.js +31 -31
- package/src/models/comments.js +33 -33
- package/src/models/contacts.js +43 -44
- package/src/models/conversationSessions.js +59 -59
- package/src/models/customPostbacks.js +26 -27
- package/src/models/departments.js +33 -33
- package/src/models/dialogNodes.js +201 -167
- package/src/models/dialogNodesPreReports.js +53 -54
- package/src/models/dialogNodes_MultipleResponses.js +34 -35
- package/src/models/dialogNodes_apiResources.js +46 -47
- package/src/models/endSessionTriggers.js +28 -25
- package/src/models/enterprises.js +80 -80
- package/src/models/entity.js +43 -43
- package/src/models/entityValues.js +62 -63
- package/src/models/faqQuestions.js +34 -34
- package/src/models/faqTriggers.js +52 -43
- package/src/models/fields.js +25 -26
- package/src/models/files.js +33 -33
- package/src/models/groups.js +42 -43
- package/src/models/groupsContracts.js +12 -13
- package/src/models/groupsSendHsms.js +12 -13
- package/src/models/ibmProvider.js +55 -56
- package/src/models/inactivityTriggers.js +42 -42
- package/src/models/intelligence.js +45 -45
- package/src/models/intention.js +39 -39
- package/src/models/intentionValue.js +33 -33
- package/src/models/itleanProvider.js +31 -32
- package/src/models/lineConfigurations.js +69 -70
- package/src/models/lines.js +54 -54
- package/src/models/messagesHsm.js +71 -71
- package/src/models/messagesHsms_Channels.js +21 -22
- package/src/models/onlineEditions.js +39 -40
- package/src/models/openFaqs.js +43 -43
- package/src/models/permissions.js +26 -27
- package/src/models/postbackGupshup.js +26 -27
- package/src/models/profile.js +22 -22
- package/src/models/profiles_permission.js +21 -21
- package/src/models/publications.js +39 -40
- package/src/models/quickMessages.js +41 -42
- package/src/models/response_DialogNodes.js +32 -33
- package/src/models/responses.js +59 -60
- package/src/models/responsesBoxes.js +64 -66
- package/src/models/returnHsm.js +30 -31
- package/src/models/sendHsm.js +53 -54
- package/src/models/sendHsmReturnHsm.js +25 -26
- package/src/models/sessions.js +85 -85
- package/src/models/sessionsPreReports.js +61 -62
- package/src/models/skill.js +135 -130
- package/src/models/socketClients.js +61 -61
- package/src/models/stopwords.js +35 -37
- package/src/models/subDepartments.js +33 -33
- package/src/models/synonyms.js +60 -60
- package/src/models/systemUsers.js +68 -68
- package/src/models/systemUsers_Lines.js +27 -27
- package/src/models/systemUsers_profiles.js +21 -21
- package/src/models/templates.js +39 -40
- package/src/models/transhipConversations.js +57 -57
- package/src/models/transhipInactivityTriggers.js +45 -45
- package/src/models/transhipTriggers.js +106 -91
- package/src/models/whitelistContacts.js +31 -31
- package/src/presenters/database/migrationHelpers.js +62 -62
- package/src/presenters/encryptation.js +14 -14
- package/src/scripts/migrateBotIterables.js +203 -205
- package/src/scripts/migrateClients.js +149 -151
- package/src/scripts/migrateConversationSessions.js +158 -160
- package/src/scripts/migrateDialogNodes.js +179 -181
- package/src/scripts/migrateDialogNodesPreReports.js +158 -160
- package/src/scripts/migrateDialogNodes_MultipleResponses.js +146 -148
- package/src/scripts/migrateEntities.js +155 -157
- package/src/scripts/migrateEntityValues.js +155 -157
- package/src/scripts/migrateIntentionValues.js +149 -151
- package/src/scripts/migrateIntentions.js +152 -154
- package/src/scripts/migratePostbackGupshups.js +124 -125
- package/src/scripts/migrateResponse_DialogNodes.js +149 -151
- package/src/scripts/migrateResponses.js +152 -154
- package/src/scripts/migrateResponsesBoxes.js +155 -157
- package/src/scripts/migrateSessions.js +173 -175
- package/src/scripts/migrateSynonyms.js +155 -157
- package/src/scripts/migrateTranshipConversations.js +164 -166
- package/src/scripts/unification.js +1941 -1434
- package/src/seeders/20220509095001-insert-permissions.js +163 -166
- package/src/seeders/20220509095002-insert-profiles.js +39 -40
- package/src/seeders/20220509095003-insert-profiles-permissions.js +101 -99
- package/src/seeders/20220509095004-insert-channelTypes.js +110 -110
- package/src/seeders/20220509095005-insert-channelConfigurations.js +173 -173
- package/src/seeders/20220509095006-insert-templates.js +206 -207
- package/src/seeders/20220509095007-insert-intelligence.js +27 -27
- package/src/seeders/test/20200924195049-create-enterprise.js +64 -66
- package/src/seeders/test/20200924195050-create-ibmprovider.js +39 -39
- package/src/seeders/test/20200924195050-create-itlean-provider.js +35 -35
- package/src/seeders/test/20200924195050-seed-enterprises.js +25 -25
- package/src/seeders/test/20200925184253-seed-skils-itlean-provider.js +38 -38
- package/src/seeders/test/20200925184253-seed-skils.js +43 -43
- package/src/seeders/test/20200925184254-seed-Intention.js +43 -43
- package/src/seeders/test/20200925184258-seed-Intention-values.js +44 -44
- package/src/seeders/test/20200925191642-seed-entity-skill-itlean.js +25 -25
- package/src/seeders/test/20200925191642-seed-entity.js +25 -25
- package/src/seeders/test/20200925191643-seed-entity-values-skill-itlean.js +35 -35
- package/src/seeders/test/20200925191643-seed-entity-values.js +35 -35
- package/src/seeders/test/20200929132705-seed-dialog-node.js +136 -136
- package/src/seeders/test/20201016200600-seed-responses.js +594 -594
- package/src/seeders/test/20201104183653-seed-create-ype-skill.js +44 -44
- package/src/seeders/test/20201104183700-seed-create-ype-intention.js +28 -28
- package/src/seeders/test/20201104183706-seed-create-ype-intention-values.js +73 -73
- package/src/seeders/test/20201104183714-seed-create-ype-entity.js +40 -40
- package/src/seeders/test/20201104183723-seed-create-ype-entity-values.js +246 -246
- package/src/seeders/test/20201104183727-seed-create-ype-synonyms.js +256 -256
- package/src/seeders/test/20201104202534-seed-create-ype-node-saudacao.js +136 -136
- package/src/seeders/test/20210224163857-create-ibmprovider-framework.js +38 -39
- package/src/seeders/test/20210224165819-create-skill-framework.js +43 -43
- package/src/seeders/test/20210224165821-seed-channel-framework.js +66 -66
- package/src/seeders/test/20210224171409-create-apiResource-framework.js +114 -114
- package/src/seeders/test/20210224171409-create-apiResource.js +121 -121
- package/src/seeders/test/20210226115055-create-entity-framework.js +24 -24
- package/src/seeders/test/20210226115540-create-entity-value-framework.js +24 -24
- package/src/seeders/test/20210226115720-create-intention-framework.js +25 -25
- package/src/seeders/test/20210226115935-create-intention-values-framework.js +24 -24
- package/src/seeders/test/20210226121222-create-synonyms-framework.js +27 -27
- package/src/seeders/test/20210301174809-create-dialog-node-framework.js +46 -46
- package/src/seeders/test/20210422144458-seed-context-test.js +189 -189
- package/src/seeders/test/20210422181114-seed-jump-node.js +134 -134
- package/src/seeders/test/20210422182413-seed-jump-skill.js +134 -134
- package/src/seeders/test/20210426100156-seed-api-test.js +149 -149
- package/src/seeders/test/20210426103704-seed-multiple-response-test.js +292 -292
- package/src/seeders/test/20210426190844-seed-entity-search-test.js +175 -175
- package/src/seeders/test/20210427172150-seed-test-with-input-test-fisrt.js +175 -175
- package/src/seeders/test/20210428105402-seed-test-condition-1.js +209 -209
- package/src/seeders/test/20210430181906-seed-test-input-text-zero.js +132 -132
- package/src/seeders/test/20210430183204-seed-ype-test-condition.js +603 -603
- package/src/seeders/test/20210503172321-seed-invalid-condition.js +131 -131
- package/src/seeders/test/20210505140225-insert-skills.js +45 -45
- package/src/seeders/test/20210505183810-seed-chain-with-context.js +160 -160
- package/src/seeders/test/20210506125701-seed-with-intention-and-entity-same-name.js +204 -204
- package/src/seeders/test/20210507204437-seed-condition-igual-true.js +131 -131
- package/src/seeders/test/20210511181006-seed-using-internal-functions.js +292 -292
- package/src/seeders/test/20210512140152-seed-ype-real-bot.js +2706 -2706
- package/src/seeders/test/20210519162746-seed-response-with-context.js +194 -194
- package/src/seeders/test/20210524141819-seed-dialog-node-faq.js +257 -257
- package/src/seeders/test/20210525180523-seed-regex.js +182 -182
- package/src/seeders/test/20210602111930-insert-dialogNodes.js +201 -202
- package/src/seeders/test/20210607124530-create-tranship-framework.js +433 -434
- package/src/seeders/test/20210608103730-create-transhipConversation-framework.js +378 -380
- package/src/seeders/test/20210608140230-test-transfer-framework.js +425 -425
- package/src/seeders/test/20210610152534-seed-test-internal-function-in-context.js +226 -226
- package/src/seeders/test/20210610181308-seed-test-find-in-array-internal-function.js +154 -154
- package/src/seeders/test/20210611101042-bot-example-internal-functions.js +1029 -1029
- package/src/seeders/test/20210613111900-bot-example-api.js +432 -432
- package/src/seeders/test/20210614113654-miltiple-response-with-research.js +400 -400
- package/src/seeders/test/20210616212102-api-authentication-and-list.js +432 -432
- package/src/seeders/test/20210624172310-seed-api-duble-request.js +434 -434
- package/src/seeders/test/20210628135630-test-branches.js +221 -221
- package/src/seeders/test/20210629141030-test-departments.js +222 -222
- package/src/seeders/test/20210630105430-test-subDepartments.js +220 -220
- package/src/seeders/test/20210630114011-test-contact.js +174 -174
- package/src/seeders/test/20210701130630-test-channels.js +393 -393
- package/src/seeders/test/20210702191230-seed-test-counter-in-context.js +128 -128
- package/src/seeders/test/20210705061313-test-fields.js +148 -148
- package/src/seeders/test/20210705080813-test-groups.js +118 -118
- package/src/seeders/test/20210705105918-seed-test-function-slice.js +167 -167
- package/src/seeders/test/20210706105508-seed-node-without-condition.js +266 -266
- package/src/seeders/test/20210706112906-seed-1.0-on-response.js +181 -181
- package/src/seeders/test/20210706145547-seed-clean-context.js +138 -138
- package/src/seeders/test/20210707151538-seed-test-response-break-line.js +167 -167
- package/src/seeders/test/20210713155530-seed-test-itl0079-875.js +134 -134
- package/src/seeders/test/20210715125619-seed-multiple-response-with-several-jumps.js +820 -820
- package/src/seeders/test/20210715163606-seed-test-multiple-response-with-jump.js +260 -260
- package/src/seeders/test/20210719154025-seed-2-contexts-together.js +139 -139
- package/src/seeders/test/20210802144227-seed-end-session-trigger.js +170 -170
- package/src/seeders/test/20210803103030-tests-dialogNodes.js +422 -422
- package/src/seeders/test/20210804094630-tests-lines.js +500 -500
- package/src/seeders/test/20210805104130-tests-lineConfigurations.js +104 -104
- package/src/seeders/test/20210805133330-tests-systemUsers.js +506 -506
- package/src/seeders/test/20210813124630-tests-getMessagesBySession.js +352 -352
- package/src/seeders/test/20210813143730-tests-botIterables-framework.js +422 -422
- package/src/seeders/test/20210816151830-testes-inactivityTriggers.js +207 -207
- package/src/seeders/test/20210830134230-tests-sessionReports.js +272 -272
- package/src/seeders/test/20210830165830-tests-attendancesHistory.js +177 -177
- package/src/seeders/test/20210927115821-skill-test-open-faq.js +39 -39
- package/src/seeders/test/20211004131813-true-and-context-with-parent.js +199 -199
- package/src/seeders/test/20211006210203-context-concat-with-text.js +202 -202
- package/src/seeders/test/20211122141406-api-pre-request.js +210 -210
- package/_leanbot_enterprises_map.json +0 -7
|
@@ -1,1434 +1,1941 @@
|
|
|
1
|
-
require('dotenv/config')
|
|
2
|
-
const Sequelize = require('sequelize')
|
|
3
|
-
|
|
4
|
-
function getDatabaseConfig(databaseName) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function loadEnterprisesMap() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
}
|
|
1433
|
-
|
|
1434
|
-
|
|
1
|
+
require('dotenv/config')
|
|
2
|
+
const Sequelize = require('sequelize')
|
|
3
|
+
|
|
4
|
+
function getDatabaseConfig(databaseName) {
|
|
5
|
+
return {
|
|
6
|
+
username: process.env.DB_USERNAME,
|
|
7
|
+
password: process.env.DB_PASSWORD,
|
|
8
|
+
database: databaseName,
|
|
9
|
+
host: process.env.DATABASE_HOST,
|
|
10
|
+
dialect: process.env.DATABASE_TYPE,
|
|
11
|
+
logging: false,
|
|
12
|
+
omitNull: true,
|
|
13
|
+
minifyAliases: true,
|
|
14
|
+
timezone: process.env.DATABASE_TIMEZONE || 'Etc/UTC',
|
|
15
|
+
pool: {
|
|
16
|
+
max: 100,
|
|
17
|
+
min: 0,
|
|
18
|
+
idle: 10000,
|
|
19
|
+
},
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function loadEnterprisesMap() {
|
|
24
|
+
const cwd = process.cwd()
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
const map = require(`${cwd}/_leanbot_enterprises_map.json`)
|
|
28
|
+
|
|
29
|
+
return map
|
|
30
|
+
} catch (error) {
|
|
31
|
+
console.log(
|
|
32
|
+
`\n* Não foi possível carregar arquivo de mapeamento de Empresas!`,
|
|
33
|
+
)
|
|
34
|
+
console.log(`* Diretório pesquisado: ${cwd}`)
|
|
35
|
+
console.log(`* Arquivo esperado: _leanbot_enterprises_map.json\n`)
|
|
36
|
+
|
|
37
|
+
console.error(error)
|
|
38
|
+
|
|
39
|
+
return null
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function executeValidationSequence(readline, sequence, callback, index = 0) {
|
|
44
|
+
readline.question(`${sequence[index]} (y/n): `, resp => {
|
|
45
|
+
if (resp.toLowerCase() == 'y') {
|
|
46
|
+
if (index == sequence.length - 1) {
|
|
47
|
+
readline.close()
|
|
48
|
+
callback()
|
|
49
|
+
} else executeValidationSequence(readline, sequence, callback, ++index)
|
|
50
|
+
} else if (resp.toLowerCase() == 'n') {
|
|
51
|
+
console.log(
|
|
52
|
+
'\nEste processo será encerrado. Reinicie-o após a regularização das configurações\n',
|
|
53
|
+
)
|
|
54
|
+
readline.close()
|
|
55
|
+
process.exit()
|
|
56
|
+
} else {
|
|
57
|
+
console.log('\nResponsta inválida!')
|
|
58
|
+
executeValidationSequence(readline, sequence, callback, index)
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
async function unificate() {
|
|
64
|
+
const map = loadEnterprisesMap()
|
|
65
|
+
|
|
66
|
+
if (!map) return
|
|
67
|
+
|
|
68
|
+
const newConfig = getDatabaseConfig(process.env.DATABASE_NAME)
|
|
69
|
+
|
|
70
|
+
const newDatabase = new Sequelize(
|
|
71
|
+
newConfig.database,
|
|
72
|
+
newConfig.username,
|
|
73
|
+
newConfig.password,
|
|
74
|
+
newConfig,
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
for (const enterprise of map) {
|
|
78
|
+
const transaction = await newDatabase.transaction()
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
console.log(`\n\n*** MIGRANDO: ${enterprise.alias} ***\n\n`)
|
|
82
|
+
|
|
83
|
+
const oldConfig = getDatabaseConfig(enterprise.alias)
|
|
84
|
+
|
|
85
|
+
const oldDatabase = new Sequelize(
|
|
86
|
+
oldConfig.database,
|
|
87
|
+
oldConfig.username,
|
|
88
|
+
oldConfig.password,
|
|
89
|
+
oldConfig,
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
/////// ENTERPRISES //////////
|
|
93
|
+
|
|
94
|
+
console.log('ENTERPRISES')
|
|
95
|
+
|
|
96
|
+
const oldEnterpriseModel = require('../legacy/models/enterprises').model(
|
|
97
|
+
oldDatabase,
|
|
98
|
+
Sequelize.DataTypes,
|
|
99
|
+
)
|
|
100
|
+
const oldEnterprise = await oldEnterpriseModel.findOne()
|
|
101
|
+
|
|
102
|
+
const NewEnterpriseModel = require('../models/enterprises').model(
|
|
103
|
+
newDatabase,
|
|
104
|
+
Sequelize.DataTypes,
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
await NewEnterpriseModel.create(
|
|
108
|
+
{
|
|
109
|
+
id: oldEnterprise.id,
|
|
110
|
+
alias: enterprise.alias,
|
|
111
|
+
name: enterprise.name,
|
|
112
|
+
cnpj: enterprise.cnpj,
|
|
113
|
+
createdAt: oldEnterprise.createdAt,
|
|
114
|
+
updatedAt: oldEnterprise.updatedAt,
|
|
115
|
+
},
|
|
116
|
+
{ transaction },
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
/////////// SYSTEMUSERS | PROFILES /////////////
|
|
120
|
+
|
|
121
|
+
console.log('SYSTEMUSERS | PROFILES')
|
|
122
|
+
|
|
123
|
+
const oldSystemUsersModel = require('../legacy/models/systemUsers').model(
|
|
124
|
+
oldDatabase,
|
|
125
|
+
Sequelize.DataTypes,
|
|
126
|
+
)
|
|
127
|
+
const oldProfilesModel = require('../legacy/models/profile').model(
|
|
128
|
+
oldDatabase,
|
|
129
|
+
Sequelize.DataTypes,
|
|
130
|
+
)
|
|
131
|
+
const oldSystemUsers_ProfilesModel =
|
|
132
|
+
require('../legacy/models/systemUsers_profiles').model(
|
|
133
|
+
oldDatabase,
|
|
134
|
+
Sequelize.DataTypes,
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
oldSystemUsersModel.belongsToMany(oldProfilesModel, {
|
|
138
|
+
through: oldSystemUsers_ProfilesModel,
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
const systemUsers = await oldSystemUsersModel.findAll({
|
|
142
|
+
include: [
|
|
143
|
+
{
|
|
144
|
+
model: oldProfilesModel,
|
|
145
|
+
required: true,
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
const newSystemUsersModel = require('../models/systemUsers').model(
|
|
151
|
+
newDatabase,
|
|
152
|
+
Sequelize.DataTypes,
|
|
153
|
+
)
|
|
154
|
+
const newProfilesModel = require('../models/profile').model(
|
|
155
|
+
newDatabase,
|
|
156
|
+
Sequelize.DataTypes,
|
|
157
|
+
)
|
|
158
|
+
const newSystemUsers_ProfilesModel =
|
|
159
|
+
require('../models/systemUsers_profiles').model(
|
|
160
|
+
newDatabase,
|
|
161
|
+
Sequelize.DataTypes,
|
|
162
|
+
)
|
|
163
|
+
for (const systemUser of systemUsers) {
|
|
164
|
+
await newSystemUsersModel.create(systemUser.dataValues, { transaction })
|
|
165
|
+
for (const profile of systemUser.Profiles) {
|
|
166
|
+
const newProfile = await newProfilesModel.findOne({
|
|
167
|
+
where: { name: profile.name },
|
|
168
|
+
})
|
|
169
|
+
if (!newProfile)
|
|
170
|
+
console.warn(
|
|
171
|
+
`CLIENTE: ${enterprise.alias} | USUÁRIO: ${systemUser.id} | PERFIL: ${profile.name} | SEM CORRESPONDÊNCIA NO NOVO BANCO DE DADOS!`,
|
|
172
|
+
)
|
|
173
|
+
else
|
|
174
|
+
await newSystemUsers_ProfilesModel.create(
|
|
175
|
+
{
|
|
176
|
+
SystemUserId: systemUser.id,
|
|
177
|
+
ProfileId: newProfile.id,
|
|
178
|
+
},
|
|
179
|
+
{ transaction },
|
|
180
|
+
)
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/////////// BRANCHES /////////////
|
|
185
|
+
|
|
186
|
+
console.log('BRANCHES')
|
|
187
|
+
|
|
188
|
+
const oldBranchesModel = require('../legacy/models/branches').model(
|
|
189
|
+
oldDatabase,
|
|
190
|
+
Sequelize.DataTypes,
|
|
191
|
+
)
|
|
192
|
+
const oldBranches = await oldBranchesModel.findAll()
|
|
193
|
+
|
|
194
|
+
const newBranchesModel = require('../models/branches').model(
|
|
195
|
+
newDatabase,
|
|
196
|
+
Sequelize.DataTypes,
|
|
197
|
+
)
|
|
198
|
+
for (const branch of oldBranches)
|
|
199
|
+
await newBranchesModel.create(branch.dataValues, { transaction })
|
|
200
|
+
|
|
201
|
+
/////////// DEPARTMENTS /////////////
|
|
202
|
+
|
|
203
|
+
console.log('DEPARTMENTS')
|
|
204
|
+
|
|
205
|
+
const oldDepartmentsModel = require('../legacy/models/departments').model(
|
|
206
|
+
oldDatabase,
|
|
207
|
+
Sequelize.DataTypes,
|
|
208
|
+
)
|
|
209
|
+
const oldDepartments = await oldDepartmentsModel.findAll()
|
|
210
|
+
|
|
211
|
+
const newDepartmentsModel = require('../models/departments').model(
|
|
212
|
+
newDatabase,
|
|
213
|
+
Sequelize.DataTypes,
|
|
214
|
+
)
|
|
215
|
+
for (const department of oldDepartments)
|
|
216
|
+
await newDepartmentsModel.create(department.dataValues, { transaction })
|
|
217
|
+
|
|
218
|
+
/////////// SUBDEPARTMENTS /////////////
|
|
219
|
+
|
|
220
|
+
console.log('SUBDEPARTMENTS')
|
|
221
|
+
|
|
222
|
+
const oldSubDepartmentsModel =
|
|
223
|
+
require('../legacy/models/subDepartments').model(
|
|
224
|
+
oldDatabase,
|
|
225
|
+
Sequelize.DataTypes,
|
|
226
|
+
)
|
|
227
|
+
const oldSubDepartments = await oldSubDepartmentsModel.findAll()
|
|
228
|
+
|
|
229
|
+
const newSubDepartmentsModel = require('../models/subDepartments').model(
|
|
230
|
+
newDatabase,
|
|
231
|
+
Sequelize.DataTypes,
|
|
232
|
+
)
|
|
233
|
+
for (const subDepartment of oldSubDepartments)
|
|
234
|
+
await newSubDepartmentsModel.create(subDepartment.dataValues, {
|
|
235
|
+
transaction,
|
|
236
|
+
})
|
|
237
|
+
|
|
238
|
+
/////////// LINES /////////////
|
|
239
|
+
|
|
240
|
+
console.log('LINES')
|
|
241
|
+
|
|
242
|
+
const oldLinesModel = require('../legacy/models/lines').model(
|
|
243
|
+
oldDatabase,
|
|
244
|
+
Sequelize.DataTypes,
|
|
245
|
+
)
|
|
246
|
+
const oldLines = await oldLinesModel.findAll()
|
|
247
|
+
|
|
248
|
+
const newLines = oldLines.map(({ dataValues }) => ({
|
|
249
|
+
EnterpriseId: oldEnterprise.id,
|
|
250
|
+
...dataValues,
|
|
251
|
+
}))
|
|
252
|
+
|
|
253
|
+
const newLinesModel = require('../models/lines').model(
|
|
254
|
+
newDatabase,
|
|
255
|
+
Sequelize.DataTypes,
|
|
256
|
+
)
|
|
257
|
+
for (const line of newLines)
|
|
258
|
+
await newLinesModel.create(line, { transaction })
|
|
259
|
+
|
|
260
|
+
/////////// SYSTEMUSERS X LINES /////////////
|
|
261
|
+
|
|
262
|
+
console.log('SYSTEMUSERS X LINES')
|
|
263
|
+
|
|
264
|
+
const oldSystemUsers_LinesModel =
|
|
265
|
+
require('../legacy/models/systemUsers_Lines').model(
|
|
266
|
+
oldDatabase,
|
|
267
|
+
Sequelize.DataTypes,
|
|
268
|
+
)
|
|
269
|
+
const oldSystemUsers_Lines = await oldSystemUsers_LinesModel.findAll()
|
|
270
|
+
|
|
271
|
+
const newSystemUsers_LinesModel =
|
|
272
|
+
require('../models/systemUsers_Lines').model(
|
|
273
|
+
newDatabase,
|
|
274
|
+
Sequelize.DataTypes,
|
|
275
|
+
)
|
|
276
|
+
for (const systemUser_Line of oldSystemUsers_Lines)
|
|
277
|
+
await newSystemUsers_LinesModel.create(systemUser_Line.dataValues, {
|
|
278
|
+
transaction,
|
|
279
|
+
})
|
|
280
|
+
|
|
281
|
+
/////////// APIKEYS /////////////
|
|
282
|
+
|
|
283
|
+
console.log('APIKEYS')
|
|
284
|
+
|
|
285
|
+
const oldApiKeysModel = require('../legacy/models/apiKeys').model(
|
|
286
|
+
oldDatabase,
|
|
287
|
+
Sequelize.DataTypes,
|
|
288
|
+
)
|
|
289
|
+
const oldApiKey = await oldApiKeysModel.findOne({
|
|
290
|
+
where: { EnterpriseId: oldEnterprise.id },
|
|
291
|
+
})
|
|
292
|
+
|
|
293
|
+
if (!oldApiKey)
|
|
294
|
+
console.warn(`CLIENTE: ${enterprise.alias} | APIKEY NÃO ENCONTRADA!`)
|
|
295
|
+
else {
|
|
296
|
+
const newApiKeysModel = require('../models/apiKeys').model(
|
|
297
|
+
newDatabase,
|
|
298
|
+
Sequelize.DataTypes,
|
|
299
|
+
)
|
|
300
|
+
await newApiKeysModel.create(oldApiKey.dataValues, { transaction })
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/////////// CUSTOMPOSTBACKS /////////////
|
|
304
|
+
|
|
305
|
+
console.log('CUSTOMPOSTBACKS')
|
|
306
|
+
|
|
307
|
+
const oldCustomPostbacksModel =
|
|
308
|
+
require('../legacy/models/customPostbacks').model(
|
|
309
|
+
oldDatabase,
|
|
310
|
+
Sequelize.DataTypes,
|
|
311
|
+
)
|
|
312
|
+
const oldCustomPostback = await oldCustomPostbacksModel.findOne({
|
|
313
|
+
where: { EnterpriseId: oldEnterprise.id },
|
|
314
|
+
})
|
|
315
|
+
|
|
316
|
+
if (oldCustomPostback) {
|
|
317
|
+
const newCustomPostbacksModel =
|
|
318
|
+
require('../models/customPostbacks').model(
|
|
319
|
+
newDatabase,
|
|
320
|
+
Sequelize.DataTypes,
|
|
321
|
+
)
|
|
322
|
+
await newCustomPostbacksModel.create(oldCustomPostback.dataValues, {
|
|
323
|
+
transaction,
|
|
324
|
+
})
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/////////// LINECONFIGURATIONS /////////////
|
|
328
|
+
|
|
329
|
+
console.log('LINECONFIGURATIONS')
|
|
330
|
+
|
|
331
|
+
const oldLineConfigurationsModel =
|
|
332
|
+
require('../legacy/models/lineConfigurations').model(
|
|
333
|
+
oldDatabase,
|
|
334
|
+
Sequelize.DataTypes,
|
|
335
|
+
)
|
|
336
|
+
const oldLineConfigurations = await oldLineConfigurationsModel.findAll()
|
|
337
|
+
const newLineConfigurations = oldLineConfigurations.map(
|
|
338
|
+
({ dataValues }) => ({
|
|
339
|
+
EnterpriseId: oldEnterprise.id,
|
|
340
|
+
...dataValues,
|
|
341
|
+
}),
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
const newLineConfigurationsModel =
|
|
345
|
+
require('../models/lineConfigurations').model(
|
|
346
|
+
newDatabase,
|
|
347
|
+
Sequelize.DataTypes,
|
|
348
|
+
)
|
|
349
|
+
for (const lineConfiguration of newLineConfigurations)
|
|
350
|
+
await newLineConfigurationsModel.create(lineConfiguration, {
|
|
351
|
+
transaction,
|
|
352
|
+
})
|
|
353
|
+
|
|
354
|
+
/////////// ATTENDANCESCALES /////////////
|
|
355
|
+
|
|
356
|
+
console.log('ATTENDANCESCALES')
|
|
357
|
+
|
|
358
|
+
const oldAttendanceScalesModel =
|
|
359
|
+
require('../legacy/models/attendanceScale').model(
|
|
360
|
+
oldDatabase,
|
|
361
|
+
Sequelize.DataTypes,
|
|
362
|
+
)
|
|
363
|
+
const oldAttendanceScales = await oldAttendanceScalesModel.findAll()
|
|
364
|
+
|
|
365
|
+
const newAttendanceScalesModel =
|
|
366
|
+
require('../models/attendanceScale').model(
|
|
367
|
+
newDatabase,
|
|
368
|
+
Sequelize.DataTypes,
|
|
369
|
+
)
|
|
370
|
+
for (const attendanceScale of oldAttendanceScales)
|
|
371
|
+
await newAttendanceScalesModel.create(attendanceScale.dataValues, {
|
|
372
|
+
transaction,
|
|
373
|
+
})
|
|
374
|
+
|
|
375
|
+
/////////// ATTENDANCESCALEOFFS /////////////
|
|
376
|
+
|
|
377
|
+
console.log('ATTENDANCESCALEOFFS')
|
|
378
|
+
|
|
379
|
+
const oldAttendanceScaleOffsModel =
|
|
380
|
+
require('../legacy/models/attendanceScaleOff').model(
|
|
381
|
+
oldDatabase,
|
|
382
|
+
Sequelize.DataTypes,
|
|
383
|
+
)
|
|
384
|
+
const oldAttendanceScaleOffs = await oldAttendanceScaleOffsModel.findAll()
|
|
385
|
+
|
|
386
|
+
const newAttendanceScaleOffsModel =
|
|
387
|
+
require('../models/attendanceScaleOff').model(
|
|
388
|
+
newDatabase,
|
|
389
|
+
Sequelize.DataTypes,
|
|
390
|
+
)
|
|
391
|
+
for (const attendanceScaleOff of oldAttendanceScaleOffs)
|
|
392
|
+
await newAttendanceScaleOffsModel.create(
|
|
393
|
+
attendanceScaleOff.dataValues,
|
|
394
|
+
{ transaction },
|
|
395
|
+
)
|
|
396
|
+
|
|
397
|
+
/////////// QUICKMESSAGES /////////////
|
|
398
|
+
|
|
399
|
+
console.log('QUICKMESSAGES')
|
|
400
|
+
|
|
401
|
+
const oldQuickMessagesModel =
|
|
402
|
+
require('../legacy/models/quickMessages').model(
|
|
403
|
+
oldDatabase,
|
|
404
|
+
Sequelize.DataTypes,
|
|
405
|
+
)
|
|
406
|
+
const oldQuickMessages = await oldQuickMessagesModel.findAll()
|
|
407
|
+
const quickMessages = oldQuickMessages.map(({ dataValues }) => ({
|
|
408
|
+
EnterpriseId: oldEnterprise.id,
|
|
409
|
+
...dataValues,
|
|
410
|
+
}))
|
|
411
|
+
|
|
412
|
+
const newQuickMessagesModel = require('../models/quickMessages').model(
|
|
413
|
+
newDatabase,
|
|
414
|
+
Sequelize.DataTypes,
|
|
415
|
+
)
|
|
416
|
+
for (const quickMessage of quickMessages)
|
|
417
|
+
await newQuickMessagesModel.create(quickMessage, { transaction })
|
|
418
|
+
|
|
419
|
+
/////////// TRANSHIPINACTIVITYTRIGGERS /////////////
|
|
420
|
+
|
|
421
|
+
console.log('TRANSHIPINACTIVITYTRIGGERS')
|
|
422
|
+
|
|
423
|
+
const oldTranshipInactivityTriggersModel =
|
|
424
|
+
require('../legacy/models/transhipInactivityTriggers').model(
|
|
425
|
+
oldDatabase,
|
|
426
|
+
Sequelize.DataTypes,
|
|
427
|
+
)
|
|
428
|
+
const oldTranshipInactivityTriggers =
|
|
429
|
+
await oldTranshipInactivityTriggersModel.findAll()
|
|
430
|
+
const transhipInactivityTriggers = oldTranshipInactivityTriggers.map(
|
|
431
|
+
({ dataValues }) => ({
|
|
432
|
+
EnterpriseId: oldEnterprise.id,
|
|
433
|
+
...dataValues,
|
|
434
|
+
}),
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
const newTranshipInactivityTriggersModel =
|
|
438
|
+
require('../models/transhipInactivityTriggers').model(
|
|
439
|
+
newDatabase,
|
|
440
|
+
Sequelize.DataTypes,
|
|
441
|
+
)
|
|
442
|
+
for (const transhipInactivityTrigger of transhipInactivityTriggers)
|
|
443
|
+
await newTranshipInactivityTriggersModel.create(
|
|
444
|
+
transhipInactivityTrigger,
|
|
445
|
+
{ transaction },
|
|
446
|
+
)
|
|
447
|
+
|
|
448
|
+
/////////// CONTACTS /////////////
|
|
449
|
+
|
|
450
|
+
console.log('CONTACTS')
|
|
451
|
+
|
|
452
|
+
const oldContactsModel = require('../legacy/models/contacts').model(
|
|
453
|
+
oldDatabase,
|
|
454
|
+
Sequelize.DataTypes,
|
|
455
|
+
)
|
|
456
|
+
const oldContacts = await oldContactsModel.findAll()
|
|
457
|
+
|
|
458
|
+
const newContactsModel = require('../models/contacts').model(
|
|
459
|
+
newDatabase,
|
|
460
|
+
Sequelize.DataTypes,
|
|
461
|
+
)
|
|
462
|
+
for (const contact of oldContacts)
|
|
463
|
+
await newContactsModel.create(contact.dataValues, { transaction })
|
|
464
|
+
|
|
465
|
+
/////////// GROUPS /////////////
|
|
466
|
+
|
|
467
|
+
console.log('GROUPS')
|
|
468
|
+
|
|
469
|
+
const oldGroupsModel = require('../legacy/models/groups').model(
|
|
470
|
+
oldDatabase,
|
|
471
|
+
Sequelize.DataTypes,
|
|
472
|
+
)
|
|
473
|
+
const oldGroups = await oldGroupsModel.findAll()
|
|
474
|
+
|
|
475
|
+
const newGroupsModel = require('../models/groups').model(
|
|
476
|
+
newDatabase,
|
|
477
|
+
Sequelize.DataTypes,
|
|
478
|
+
)
|
|
479
|
+
for (const group of oldGroups)
|
|
480
|
+
await newGroupsModel.create(group.dataValues, { transaction })
|
|
481
|
+
|
|
482
|
+
/////////// GROUPSCONTACTS /////////////
|
|
483
|
+
|
|
484
|
+
console.log('GROUPSCONTACTS')
|
|
485
|
+
|
|
486
|
+
const oldGroupsContactsModel =
|
|
487
|
+
require('../legacy/models/groupsContracts').model(
|
|
488
|
+
oldDatabase,
|
|
489
|
+
Sequelize.DataTypes,
|
|
490
|
+
)
|
|
491
|
+
const oldGroupsContacts = await oldGroupsContactsModel.findAll()
|
|
492
|
+
|
|
493
|
+
const newGroupsContactsModel = require('../models/groupsContracts').model(
|
|
494
|
+
newDatabase,
|
|
495
|
+
Sequelize.DataTypes,
|
|
496
|
+
)
|
|
497
|
+
for (const groupContact of oldGroupsContacts)
|
|
498
|
+
await newGroupsContactsModel.create(groupContact.dataValues, {
|
|
499
|
+
transaction,
|
|
500
|
+
})
|
|
501
|
+
|
|
502
|
+
/////////// FIELDS /////////////
|
|
503
|
+
|
|
504
|
+
console.log('FIELDS')
|
|
505
|
+
|
|
506
|
+
const oldFieldsModel = require('../legacy/models/fields').model(
|
|
507
|
+
oldDatabase,
|
|
508
|
+
Sequelize.DataTypes,
|
|
509
|
+
)
|
|
510
|
+
const oldFields = await oldFieldsModel.findAll()
|
|
511
|
+
|
|
512
|
+
const newFieldsModel = require('../models/fields').model(
|
|
513
|
+
newDatabase,
|
|
514
|
+
Sequelize.DataTypes,
|
|
515
|
+
)
|
|
516
|
+
for (const field of oldFields)
|
|
517
|
+
await newFieldsModel.create(field.dataValues, { transaction })
|
|
518
|
+
|
|
519
|
+
/////////////////////////////////////////////////////////
|
|
520
|
+
/////////// ITLEANPROVIDERS N' IBMPROVIDERS /////////////
|
|
521
|
+
/////////////////////////////////////////////////////////
|
|
522
|
+
|
|
523
|
+
const newIntelligencesFile = require('../models/intelligence')
|
|
524
|
+
const newIntelligencesModel = newIntelligencesFile.model(
|
|
525
|
+
newDatabase,
|
|
526
|
+
Sequelize.DataTypes,
|
|
527
|
+
)
|
|
528
|
+
|
|
529
|
+
/////////// ITLEANPROVIDERS /////////////
|
|
530
|
+
|
|
531
|
+
console.log('ITLEANPROVIDERS')
|
|
532
|
+
|
|
533
|
+
const oldITLeanProvidersModel =
|
|
534
|
+
require('../legacy/models/itleanProvider').model(
|
|
535
|
+
oldDatabase,
|
|
536
|
+
Sequelize.DataTypes,
|
|
537
|
+
)
|
|
538
|
+
const oldITLeanProviders = await oldITLeanProvidersModel.findAll()
|
|
539
|
+
|
|
540
|
+
const newItleanIntelligence = await newIntelligencesModel.findOne({
|
|
541
|
+
where: {
|
|
542
|
+
name: 'LeanNLP',
|
|
543
|
+
providerType: newIntelligencesFile.PROVIDER_TYPES.ITLEAN,
|
|
544
|
+
},
|
|
545
|
+
})
|
|
546
|
+
|
|
547
|
+
if (newItleanIntelligence) {
|
|
548
|
+
const newITLeanProviders = oldITLeanProviders.map(({ dataValues }) => ({
|
|
549
|
+
...dataValues,
|
|
550
|
+
IntelligenceId: newItleanIntelligence.id,
|
|
551
|
+
}))
|
|
552
|
+
|
|
553
|
+
const newITLeanProvidersModel =
|
|
554
|
+
require('../models/itleanProvider').model(
|
|
555
|
+
newDatabase,
|
|
556
|
+
Sequelize.DataTypes,
|
|
557
|
+
)
|
|
558
|
+
|
|
559
|
+
for (const itleanProvider of newITLeanProviders)
|
|
560
|
+
await newITLeanProvidersModel.create(itleanProvider, { transaction })
|
|
561
|
+
} else
|
|
562
|
+
console.warn(
|
|
563
|
+
`IA: LeanNLP | SEM CORRESPONDÊNCIA NO NOVO BANCO DE DADOS!`,
|
|
564
|
+
)
|
|
565
|
+
|
|
566
|
+
/////////// IBMPROVIDERS /////////////
|
|
567
|
+
|
|
568
|
+
console.log('IBMPROVIDERS')
|
|
569
|
+
|
|
570
|
+
const oldIBMProvidersModel =
|
|
571
|
+
require('../legacy/models/ibmProvider').model(
|
|
572
|
+
oldDatabase,
|
|
573
|
+
Sequelize.DataTypes,
|
|
574
|
+
)
|
|
575
|
+
const oldIBMProviders = await oldIBMProvidersModel.findAll()
|
|
576
|
+
|
|
577
|
+
const newIbmIntelligence = await newIntelligencesModel.findOne({
|
|
578
|
+
where: {
|
|
579
|
+
name: 'Watson Assistant',
|
|
580
|
+
providerType: newIntelligencesFile.PROVIDER_TYPES.IBM,
|
|
581
|
+
},
|
|
582
|
+
})
|
|
583
|
+
|
|
584
|
+
if (newIbmIntelligence) {
|
|
585
|
+
const newIBMProviders = oldIBMProviders.map(({ dataValues }) => ({
|
|
586
|
+
...dataValues,
|
|
587
|
+
IntelligenceId: newIbmIntelligence.id,
|
|
588
|
+
}))
|
|
589
|
+
|
|
590
|
+
const newIBMProvidersModel = require('../models/ibmProvider').model(
|
|
591
|
+
newDatabase,
|
|
592
|
+
Sequelize.DataTypes,
|
|
593
|
+
)
|
|
594
|
+
|
|
595
|
+
for (const ibmProvider of newIBMProviders)
|
|
596
|
+
await newIBMProvidersModel.create(ibmProvider, { transaction })
|
|
597
|
+
} else
|
|
598
|
+
console.warn(
|
|
599
|
+
`IA: Watson Assistant | SEM CORRESPONDÊNCIA NO NOVO BANCO DE DADOS!`,
|
|
600
|
+
)
|
|
601
|
+
|
|
602
|
+
/////////// SKILLS /////////////
|
|
603
|
+
|
|
604
|
+
console.log('SKILLS')
|
|
605
|
+
|
|
606
|
+
const oldSkillsModel = require('../legacy/models/skill').model(
|
|
607
|
+
oldDatabase,
|
|
608
|
+
Sequelize.DataTypes,
|
|
609
|
+
)
|
|
610
|
+
const oldIntelligencesModel =
|
|
611
|
+
require('../legacy/models/intelligence').model(
|
|
612
|
+
oldDatabase,
|
|
613
|
+
Sequelize.DataTypes,
|
|
614
|
+
)
|
|
615
|
+
|
|
616
|
+
oldSkillsModel.belongsTo(oldIntelligencesModel)
|
|
617
|
+
|
|
618
|
+
const oldSkills = await oldSkillsModel.findAll({
|
|
619
|
+
include: [
|
|
620
|
+
{
|
|
621
|
+
model: oldIntelligencesModel,
|
|
622
|
+
required: true,
|
|
623
|
+
},
|
|
624
|
+
],
|
|
625
|
+
})
|
|
626
|
+
|
|
627
|
+
const newIntelligenceIds = {
|
|
628
|
+
[newIntelligencesFile.PROVIDER_TYPES.ITLEAN]: newItleanIntelligence.id,
|
|
629
|
+
[newIntelligencesFile.PROVIDER_TYPES.IBM]: newIbmIntelligence.id,
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
const newSkills = oldSkills.map(skill => {
|
|
633
|
+
return {
|
|
634
|
+
...skill.dataValues,
|
|
635
|
+
EnterpriseId: oldEnterprise.id,
|
|
636
|
+
IntelligenceId: newIntelligenceIds[skill.Intelligence.providerType],
|
|
637
|
+
}
|
|
638
|
+
})
|
|
639
|
+
|
|
640
|
+
const newSkillsModel = require('../models/skill').model(
|
|
641
|
+
newDatabase,
|
|
642
|
+
Sequelize.DataTypes,
|
|
643
|
+
)
|
|
644
|
+
for (const skill of newSkills)
|
|
645
|
+
await newSkillsModel.create(skill, { transaction })
|
|
646
|
+
|
|
647
|
+
/////////// FILES /////////////
|
|
648
|
+
|
|
649
|
+
console.log('FILES')
|
|
650
|
+
|
|
651
|
+
const oldFilesModel = require('../legacy/models/files').model(
|
|
652
|
+
oldDatabase,
|
|
653
|
+
Sequelize.DataTypes,
|
|
654
|
+
)
|
|
655
|
+
const oldFiles = await oldFilesModel.findAll()
|
|
656
|
+
|
|
657
|
+
const newFilesModel = require('../models/files').model(
|
|
658
|
+
newDatabase,
|
|
659
|
+
Sequelize.DataTypes,
|
|
660
|
+
)
|
|
661
|
+
for (const file of oldFiles)
|
|
662
|
+
await newFilesModel.create(file.dataValues, { transaction })
|
|
663
|
+
|
|
664
|
+
/////////// CHANNELS /////////////
|
|
665
|
+
|
|
666
|
+
console.log('CHANNELS')
|
|
667
|
+
|
|
668
|
+
const oldChannelsModel = require('../legacy/models/channels').model(
|
|
669
|
+
oldDatabase,
|
|
670
|
+
Sequelize.DataTypes,
|
|
671
|
+
)
|
|
672
|
+
const oldChannelTypesModel =
|
|
673
|
+
require('../legacy/models/channelTypes').model(
|
|
674
|
+
oldDatabase,
|
|
675
|
+
Sequelize.DataTypes,
|
|
676
|
+
)
|
|
677
|
+
oldChannelsModel.belongsTo(oldChannelTypesModel)
|
|
678
|
+
|
|
679
|
+
const oldChannels = await oldChannelsModel.findAll({
|
|
680
|
+
include: [
|
|
681
|
+
{
|
|
682
|
+
model: oldChannelTypesModel,
|
|
683
|
+
required: true,
|
|
684
|
+
},
|
|
685
|
+
],
|
|
686
|
+
})
|
|
687
|
+
|
|
688
|
+
const newChannelTypesModel = require('../models/channelTypes').model(
|
|
689
|
+
newDatabase,
|
|
690
|
+
Sequelize.DataTypes,
|
|
691
|
+
)
|
|
692
|
+
const newChannelTypes = await newChannelTypesModel.findAll()
|
|
693
|
+
|
|
694
|
+
const newChannels = oldChannels.map(oldChannel => ({
|
|
695
|
+
...oldChannel.dataValues,
|
|
696
|
+
EnterpriseId: oldEnterprise.id,
|
|
697
|
+
ChannelTypeId: newChannelTypes.find(
|
|
698
|
+
nct => nct.channelName == oldChannel.ChannelType.channelName,
|
|
699
|
+
).id,
|
|
700
|
+
}))
|
|
701
|
+
|
|
702
|
+
const newChannelsModel = require('../models/channels').model(
|
|
703
|
+
newDatabase,
|
|
704
|
+
Sequelize.DataTypes,
|
|
705
|
+
)
|
|
706
|
+
|
|
707
|
+
for (const channel of newChannels)
|
|
708
|
+
await newChannelsModel.create(channel, { transaction })
|
|
709
|
+
|
|
710
|
+
/////////// MESSAGESHSMS /////////////
|
|
711
|
+
|
|
712
|
+
console.log('MESSAGESHSMS')
|
|
713
|
+
|
|
714
|
+
const oldMessagesHsmsModel =
|
|
715
|
+
require('../legacy/models/messagesHsm').model(
|
|
716
|
+
oldDatabase,
|
|
717
|
+
Sequelize.DataTypes,
|
|
718
|
+
)
|
|
719
|
+
const oldTemplatesModel = require('../legacy/models/templates').model(
|
|
720
|
+
oldDatabase,
|
|
721
|
+
Sequelize.DataTypes,
|
|
722
|
+
)
|
|
723
|
+
|
|
724
|
+
oldMessagesHsmsModel.belongsTo(oldTemplatesModel)
|
|
725
|
+
oldMessagesHsmsModel.belongsToMany(oldChannelsModel, {
|
|
726
|
+
through: 'MessagesHsmChannels',
|
|
727
|
+
as: 'Channels',
|
|
728
|
+
})
|
|
729
|
+
|
|
730
|
+
const oldMessagesHsms = await oldMessagesHsmsModel.findAll({
|
|
731
|
+
include: [
|
|
732
|
+
{
|
|
733
|
+
model: oldTemplatesModel,
|
|
734
|
+
required: true,
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
model: oldChannelsModel,
|
|
738
|
+
required: true,
|
|
739
|
+
as: 'Channels',
|
|
740
|
+
},
|
|
741
|
+
],
|
|
742
|
+
})
|
|
743
|
+
|
|
744
|
+
const oldChannelTypes = await oldChannelTypesModel.findAll()
|
|
745
|
+
|
|
746
|
+
const newTemplatesModel = require('../models/templates').model(
|
|
747
|
+
newDatabase,
|
|
748
|
+
Sequelize.DataTypes,
|
|
749
|
+
)
|
|
750
|
+
const newTemplates = await newTemplatesModel.findAll()
|
|
751
|
+
|
|
752
|
+
const newMessagesHsms = oldMessagesHsms.map(oHsm => {
|
|
753
|
+
const oldChannelTypeId = oHsm.Template.ChannelTypeId
|
|
754
|
+
|
|
755
|
+
const oldChannelType = oldChannelTypes.find(
|
|
756
|
+
oct => oct.id == oldChannelTypeId,
|
|
757
|
+
)
|
|
758
|
+
|
|
759
|
+
const newChannelType = newChannelTypes.find(
|
|
760
|
+
nct => nct.channelName == oldChannelType.channelName,
|
|
761
|
+
)
|
|
762
|
+
|
|
763
|
+
const oldTemplate = oHsm.Template.title
|
|
764
|
+
|
|
765
|
+
const newTemplate = newTemplates.find(
|
|
766
|
+
nt =>
|
|
767
|
+
nt.title == oldTemplate && nt.ChannelTypeId == newChannelType.id,
|
|
768
|
+
)
|
|
769
|
+
|
|
770
|
+
return {
|
|
771
|
+
message: {
|
|
772
|
+
...oHsm.dataValues,
|
|
773
|
+
TemplateId: newTemplate.id,
|
|
774
|
+
},
|
|
775
|
+
message_channel: {
|
|
776
|
+
ChannelId: oHsm.Channels[0].id,
|
|
777
|
+
MessagesHsmId: oHsm.id,
|
|
778
|
+
},
|
|
779
|
+
}
|
|
780
|
+
})
|
|
781
|
+
|
|
782
|
+
const newMessagesHsmsModel = require('../models/messagesHsm').model(
|
|
783
|
+
newDatabase,
|
|
784
|
+
Sequelize.DataTypes,
|
|
785
|
+
)
|
|
786
|
+
const newMessagesHsms_ChannelsModel =
|
|
787
|
+
require('../models/messagesHsms_Channels').model(
|
|
788
|
+
newDatabase,
|
|
789
|
+
Sequelize.DataTypes,
|
|
790
|
+
)
|
|
791
|
+
for (messageHsm of newMessagesHsms) {
|
|
792
|
+
await newMessagesHsmsModel.create(messageHsm.message, { transaction })
|
|
793
|
+
await newMessagesHsms_ChannelsModel.create(messageHsm.message_channel, {
|
|
794
|
+
transaction,
|
|
795
|
+
})
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
/////////// SENDHSMS /////////////
|
|
799
|
+
|
|
800
|
+
console.log('SENDHSMS')
|
|
801
|
+
|
|
802
|
+
const oldSendHsmsModel = require('../legacy/models/sendHsm').model(
|
|
803
|
+
oldDatabase,
|
|
804
|
+
Sequelize.DataTypes,
|
|
805
|
+
)
|
|
806
|
+
const oldSendHsms = await oldSendHsmsModel.findAll()
|
|
807
|
+
|
|
808
|
+
const newSendHsms = oldSendHsms.map(({ dataValues }) => ({
|
|
809
|
+
...dataValues,
|
|
810
|
+
MessagesHsmId: dataValues.messageId,
|
|
811
|
+
}))
|
|
812
|
+
|
|
813
|
+
const newSendHsmsModel = require('../models/sendHsm').model(
|
|
814
|
+
newDatabase,
|
|
815
|
+
Sequelize.DataTypes,
|
|
816
|
+
)
|
|
817
|
+
for (const sendHsm of newSendHsms)
|
|
818
|
+
await newSendHsmsModel.create(sendHsm, { transaction })
|
|
819
|
+
|
|
820
|
+
/////////// GROUPSSENDHSMS /////////////
|
|
821
|
+
|
|
822
|
+
console.log('GROUPSSENDHSMS')
|
|
823
|
+
|
|
824
|
+
const oldGroupsSendHsmsModel =
|
|
825
|
+
require('../legacy/models/groupsSendHsms').model(
|
|
826
|
+
oldDatabase,
|
|
827
|
+
Sequelize.DataTypes,
|
|
828
|
+
)
|
|
829
|
+
const oldGroupsSendHsms = await oldGroupsSendHsmsModel.findAll()
|
|
830
|
+
|
|
831
|
+
const newdGroupsSendHsmsModel = require('../models/groupsSendHsms').model(
|
|
832
|
+
newDatabase,
|
|
833
|
+
Sequelize.DataTypes,
|
|
834
|
+
)
|
|
835
|
+
for (const groupSendHsm of oldGroupsSendHsms)
|
|
836
|
+
await newdGroupsSendHsmsModel.create(groupSendHsm.dataValues, {
|
|
837
|
+
transaction,
|
|
838
|
+
})
|
|
839
|
+
|
|
840
|
+
/////////// INTENTIONS /////////////
|
|
841
|
+
|
|
842
|
+
// console.log('INTENTIONS')
|
|
843
|
+
|
|
844
|
+
// const oldIntentionsModel = require('../legacy/models/intention').model(oldDatabase, Sequelize.DataTypes)
|
|
845
|
+
// const oldIntentions = await oldIntentionsModel.findAll()
|
|
846
|
+
|
|
847
|
+
// const newIntentions = oldIntentions.map(({ dataValues }) => ({
|
|
848
|
+
// ...dataValues,
|
|
849
|
+
// EnterpriseId: oldEnterprise.id
|
|
850
|
+
// }))
|
|
851
|
+
|
|
852
|
+
// const newIntentionsModel = require('../models/intention').model(newDatabase, Sequelize.DataTypes)
|
|
853
|
+
// for (const intention of newIntentions) await newIntentionsModel.create(intention, { transaction })
|
|
854
|
+
|
|
855
|
+
/////////// INTENTIONVALUES /////////////
|
|
856
|
+
|
|
857
|
+
// console.log('INTENTIONVALUES')
|
|
858
|
+
|
|
859
|
+
// const oldIntentionValuesModel = require('../legacy/models/intentionValue').model(oldDatabase, Sequelize.DataTypes)
|
|
860
|
+
// const oldIntentionValues = await oldIntentionValuesModel.findAll()
|
|
861
|
+
|
|
862
|
+
// const newIntentionValues = oldIntentionValues.map(({ dataValues }) => ({
|
|
863
|
+
// ...dataValues,
|
|
864
|
+
// EnterpriseId: oldEnterprise.id
|
|
865
|
+
// }))
|
|
866
|
+
|
|
867
|
+
// const newIntentionValuesModel = require('../models/intentionValue').model(newDatabase, Sequelize.DataTypes)
|
|
868
|
+
// for (const intentionValue of newIntentionValues) await newIntentionValuesModel.create(intentionValue, { transaction })
|
|
869
|
+
|
|
870
|
+
/////////// ENTITIES /////////////
|
|
871
|
+
|
|
872
|
+
// console.log('ENTITIES')
|
|
873
|
+
|
|
874
|
+
// const oldEntitiesModel = require('../legacy/models/entity').model(oldDatabase, Sequelize.DataTypes)
|
|
875
|
+
// const oldEntities = await oldEntitiesModel.findAll()
|
|
876
|
+
|
|
877
|
+
// const newEntities = oldEntities.map(({ dataValues }) => ({
|
|
878
|
+
// ...dataValues,
|
|
879
|
+
// EnterpriseId: oldEnterprise.id
|
|
880
|
+
// }))
|
|
881
|
+
|
|
882
|
+
// const newEntitiesModel = require('../models/entity').model(newDatabase, Sequelize.DataTypes)
|
|
883
|
+
// for (const entity of newEntities) await newEntitiesModel.create(entity, { transaction })
|
|
884
|
+
|
|
885
|
+
/////////// ENTITYVALUES /////////////
|
|
886
|
+
|
|
887
|
+
// console.log('ENTITYVALUES')
|
|
888
|
+
|
|
889
|
+
// const oldEntityValuesModel = require('../legacy/models/entityValues').model(oldDatabase, Sequelize.DataTypes)
|
|
890
|
+
// const oldEntityValues = await oldEntityValuesModel.findAll()
|
|
891
|
+
|
|
892
|
+
// const newEntityValues = oldEntityValues.map(({ dataValues }) => ({
|
|
893
|
+
// ...dataValues,
|
|
894
|
+
// EnterpriseId: oldEnterprise.id
|
|
895
|
+
// }))
|
|
896
|
+
|
|
897
|
+
// const newEntityValuesModel = require('../models/entityValues').model(newDatabase, Sequelize.DataTypes)
|
|
898
|
+
// for (const entityValue of newEntityValues) await newEntityValuesModel.create(entityValue, { transaction })
|
|
899
|
+
|
|
900
|
+
/////////// SYNONYMS /////////////
|
|
901
|
+
|
|
902
|
+
// console.log('SYNONYMS')
|
|
903
|
+
|
|
904
|
+
// const oldSynonymsModel = require('../legacy/models/synonyms').model(oldDatabase, Sequelize.DataTypes)
|
|
905
|
+
// const oldSynonyms = await oldSynonymsModel.findAll()
|
|
906
|
+
|
|
907
|
+
// const newSynonyms = oldSynonyms.map(({ dataValues }) => ({
|
|
908
|
+
// ...dataValues,
|
|
909
|
+
// EnterpriseId: oldEnterprise.id
|
|
910
|
+
// }))
|
|
911
|
+
|
|
912
|
+
// const newSynonymsModel = require('../models/synonyms').model(newDatabase, Sequelize.DataTypes)
|
|
913
|
+
// for (const synonym of newSynonyms) await newSynonymsModel.create(synonym, { transaction })
|
|
914
|
+
|
|
915
|
+
/////////// RESPONSES /////////////
|
|
916
|
+
|
|
917
|
+
// console.log('RESPONSES')
|
|
918
|
+
|
|
919
|
+
// const oldResponsesModel = require('../legacy/models/responses').model(oldDatabase, Sequelize.DataTypes)
|
|
920
|
+
// const oldResponses = await oldResponsesModel.findAll()
|
|
921
|
+
|
|
922
|
+
// const newResponses = oldResponses.map(({ dataValues }) => ({
|
|
923
|
+
// ...dataValues,
|
|
924
|
+
// EnterpriseId: oldEnterprise.id
|
|
925
|
+
// }))
|
|
926
|
+
|
|
927
|
+
// const newResponsesModel = require('../models/responses').model(newDatabase, Sequelize.DataTypes)
|
|
928
|
+
// for (const response of newResponses) await newResponsesModel.create(response, { transaction })
|
|
929
|
+
|
|
930
|
+
/////////// RESPONSESBOXES /////////////
|
|
931
|
+
|
|
932
|
+
// console.log('RESPONSESBOXES')
|
|
933
|
+
|
|
934
|
+
// const oldResponsesBoxesModel = require('../legacy/models/responsesBoxes').model(oldDatabase, Sequelize.DataTypes)
|
|
935
|
+
// const oldResponsesBoxes = await oldResponsesBoxesModel.findAll()
|
|
936
|
+
|
|
937
|
+
// const newResponsesBoxes = oldResponsesBoxes.map(({ dataValues }) => {
|
|
938
|
+
// const oldChannelType = oldChannelTypes.find(oct => oct.id == dataValues.ChannelTypeId)
|
|
939
|
+
// const newChannelType = newChannelTypes.find(nct => nct.channelName == oldChannelType.channelName)
|
|
940
|
+
// return {
|
|
941
|
+
// ...dataValues,
|
|
942
|
+
// ChannelTypeId: newChannelType.id,
|
|
943
|
+
// EnterpriseId: oldEnterprise.id,
|
|
944
|
+
// payload: JSON.parse(dataValues.payload)
|
|
945
|
+
// }
|
|
946
|
+
// })
|
|
947
|
+
|
|
948
|
+
// const newResponsesBoxesModel = require('../models/responsesBoxes').model(newDatabase, Sequelize.DataTypes)
|
|
949
|
+
// for (const responseBox of newResponsesBoxes) await newResponsesBoxesModel.create(responseBox, { transaction })
|
|
950
|
+
|
|
951
|
+
/////////// OPENFAQS /////////////
|
|
952
|
+
|
|
953
|
+
console.log('OPENFAQS')
|
|
954
|
+
|
|
955
|
+
const oldOpenFaqsModel = require('../legacy/models/openFaqs').model(
|
|
956
|
+
oldDatabase,
|
|
957
|
+
Sequelize.DataTypes,
|
|
958
|
+
)
|
|
959
|
+
const oldOpenFaqs = await oldOpenFaqsModel.findAll()
|
|
960
|
+
|
|
961
|
+
const newdOpenFaqs = oldOpenFaqs.map(({ dataValues }) => ({
|
|
962
|
+
...dataValues,
|
|
963
|
+
EnterpriseId: oldEnterprise.id,
|
|
964
|
+
}))
|
|
965
|
+
|
|
966
|
+
const newOpenFaqsModel = require('../models/openFaqs').model(
|
|
967
|
+
newDatabase,
|
|
968
|
+
Sequelize.DataTypes,
|
|
969
|
+
)
|
|
970
|
+
for (const openFaqs of newdOpenFaqs)
|
|
971
|
+
await newOpenFaqsModel.create(openFaqs, { transaction })
|
|
972
|
+
|
|
973
|
+
/////////// FAQQUESTIONS /////////////
|
|
974
|
+
|
|
975
|
+
console.log('FAQQUESTIONS')
|
|
976
|
+
|
|
977
|
+
const oldFaqQuestionsModel =
|
|
978
|
+
require('../legacy/models/faqQuestions').model(
|
|
979
|
+
oldDatabase,
|
|
980
|
+
Sequelize.DataTypes,
|
|
981
|
+
)
|
|
982
|
+
const oldFaqQuestions = await oldFaqQuestionsModel.findAll()
|
|
983
|
+
|
|
984
|
+
const newFaqQuestions = oldFaqQuestions.map(({ dataValues }) => ({
|
|
985
|
+
...dataValues,
|
|
986
|
+
EnterpriseId: oldEnterprise.id,
|
|
987
|
+
}))
|
|
988
|
+
|
|
989
|
+
const newFaqQuestionsModel = require('../models/faqQuestions').model(
|
|
990
|
+
newDatabase,
|
|
991
|
+
Sequelize.DataTypes,
|
|
992
|
+
)
|
|
993
|
+
for (const faqQuestion of newFaqQuestions)
|
|
994
|
+
await newFaqQuestionsModel.create(faqQuestion, { transaction })
|
|
995
|
+
|
|
996
|
+
/////////// APIS /////////////
|
|
997
|
+
|
|
998
|
+
console.log('APIS')
|
|
999
|
+
|
|
1000
|
+
const oldApisModel = require('../legacy/models/apis').model(
|
|
1001
|
+
oldDatabase,
|
|
1002
|
+
Sequelize.DataTypes,
|
|
1003
|
+
)
|
|
1004
|
+
const oldApis = await oldApisModel.findAll()
|
|
1005
|
+
|
|
1006
|
+
const newApisModel = require('../models/apis').model(
|
|
1007
|
+
newDatabase,
|
|
1008
|
+
Sequelize.DataTypes,
|
|
1009
|
+
)
|
|
1010
|
+
for (const api of oldApis)
|
|
1011
|
+
await newApisModel.create(api.dataValues, { transaction })
|
|
1012
|
+
|
|
1013
|
+
/////////// APIRESOURCESBODIES /////////////
|
|
1014
|
+
|
|
1015
|
+
console.log('APIRESOURCESBODIES')
|
|
1016
|
+
|
|
1017
|
+
const oldApiResourcesBodiesModel =
|
|
1018
|
+
require('../legacy/models/apiResourceBodies').model(
|
|
1019
|
+
oldDatabase,
|
|
1020
|
+
Sequelize.DataTypes,
|
|
1021
|
+
)
|
|
1022
|
+
const oldApiResourcesBodies = await oldApiResourcesBodiesModel.findAll()
|
|
1023
|
+
|
|
1024
|
+
const newApiResourcesBodies = oldApiResourcesBodies.map(
|
|
1025
|
+
({ dataValues }) => ({
|
|
1026
|
+
...dataValues,
|
|
1027
|
+
EnterpriseId: oldEnterprise.id,
|
|
1028
|
+
}),
|
|
1029
|
+
)
|
|
1030
|
+
|
|
1031
|
+
const newApiResourcesBodiesModel =
|
|
1032
|
+
require('../models/apiResourceBodies').model(
|
|
1033
|
+
newDatabase,
|
|
1034
|
+
Sequelize.DataTypes,
|
|
1035
|
+
)
|
|
1036
|
+
for (const resourceBody of newApiResourcesBodies)
|
|
1037
|
+
await newApiResourcesBodiesModel.create(resourceBody, { transaction })
|
|
1038
|
+
|
|
1039
|
+
/////////// APIRESOURCES /////////////
|
|
1040
|
+
|
|
1041
|
+
console.log('APIRESOURCES')
|
|
1042
|
+
|
|
1043
|
+
const oldApiResourcesModel =
|
|
1044
|
+
require('../legacy/models/apiResources').model(
|
|
1045
|
+
oldDatabase,
|
|
1046
|
+
Sequelize.DataTypes,
|
|
1047
|
+
)
|
|
1048
|
+
const oldApiResources = await oldApiResourcesModel.findAll()
|
|
1049
|
+
|
|
1050
|
+
const newApiResources = oldApiResources.map(({ dataValues }) => ({
|
|
1051
|
+
...dataValues,
|
|
1052
|
+
EnterpriseId: oldEnterprise.id,
|
|
1053
|
+
}))
|
|
1054
|
+
|
|
1055
|
+
const newApiResourcesModel = require('../models/apiResources').model(
|
|
1056
|
+
newDatabase,
|
|
1057
|
+
Sequelize.DataTypes,
|
|
1058
|
+
)
|
|
1059
|
+
for (const resource of newApiResources)
|
|
1060
|
+
await newApiResourcesModel.create(resource, { transaction })
|
|
1061
|
+
|
|
1062
|
+
/////////// APIPREREQUESTS /////////////
|
|
1063
|
+
|
|
1064
|
+
console.log('APIPREREQUESTS')
|
|
1065
|
+
|
|
1066
|
+
const oldApiPreRequestsModel =
|
|
1067
|
+
require('../legacy/models/apiPreRequest').model(
|
|
1068
|
+
oldDatabase,
|
|
1069
|
+
Sequelize.DataTypes,
|
|
1070
|
+
)
|
|
1071
|
+
const oldApiPreRequests = await oldApiPreRequestsModel.findAll()
|
|
1072
|
+
|
|
1073
|
+
const newApiPreRequests = oldApiPreRequests.map(({ dataValues }) => ({
|
|
1074
|
+
...dataValues,
|
|
1075
|
+
EnterpriseId: oldEnterprise.id,
|
|
1076
|
+
}))
|
|
1077
|
+
|
|
1078
|
+
const newApiPreRequestsModel = require('../models/apiPreRequest').model(
|
|
1079
|
+
newDatabase,
|
|
1080
|
+
Sequelize.DataTypes,
|
|
1081
|
+
)
|
|
1082
|
+
for (const preRequest of newApiPreRequests)
|
|
1083
|
+
await newApiPreRequestsModel.create(preRequest, { transaction })
|
|
1084
|
+
|
|
1085
|
+
/////////// APIRESOURCESHEADERS /////////////
|
|
1086
|
+
|
|
1087
|
+
console.log('APIRESOURCESHEADERS')
|
|
1088
|
+
|
|
1089
|
+
const oldApiResourcesHeadersModel =
|
|
1090
|
+
require('../legacy/models/apiResourceHeaders').model(
|
|
1091
|
+
oldDatabase,
|
|
1092
|
+
Sequelize.DataTypes,
|
|
1093
|
+
)
|
|
1094
|
+
const oldApiResourcesHeaders = await oldApiResourcesHeadersModel.findAll()
|
|
1095
|
+
|
|
1096
|
+
const newApiResourcesHeaders = oldApiResourcesHeaders.map(
|
|
1097
|
+
({ dataValues }) => ({
|
|
1098
|
+
...dataValues,
|
|
1099
|
+
EnterpriseId: oldEnterprise.id,
|
|
1100
|
+
}),
|
|
1101
|
+
)
|
|
1102
|
+
|
|
1103
|
+
const newApiResourcesHeadersModel =
|
|
1104
|
+
require('../models/apiResourceHeaders').model(
|
|
1105
|
+
newDatabase,
|
|
1106
|
+
Sequelize.DataTypes,
|
|
1107
|
+
)
|
|
1108
|
+
for (const header of newApiResourcesHeaders)
|
|
1109
|
+
await newApiResourcesHeadersModel.create(header, { transaction })
|
|
1110
|
+
|
|
1111
|
+
/////////// APIRESOURCESPATHPARAMS /////////////
|
|
1112
|
+
|
|
1113
|
+
console.log('APIRESOURCESPATHPARAMS')
|
|
1114
|
+
|
|
1115
|
+
const oldApiResourcesPathParamsModel =
|
|
1116
|
+
require('../legacy/models/apiResourcePathParams').model(
|
|
1117
|
+
oldDatabase,
|
|
1118
|
+
Sequelize.DataTypes,
|
|
1119
|
+
)
|
|
1120
|
+
const oldApiResourcesPathParams =
|
|
1121
|
+
await oldApiResourcesPathParamsModel.findAll()
|
|
1122
|
+
|
|
1123
|
+
const newApiResourcesPathParams = oldApiResourcesPathParams.map(
|
|
1124
|
+
({ dataValues }) => ({
|
|
1125
|
+
...dataValues,
|
|
1126
|
+
EnterpriseId: oldEnterprise.id,
|
|
1127
|
+
}),
|
|
1128
|
+
)
|
|
1129
|
+
|
|
1130
|
+
const newApiResourcesPathParamsModel =
|
|
1131
|
+
require('../models/apiResourcePathParams').model(
|
|
1132
|
+
newDatabase,
|
|
1133
|
+
Sequelize.DataTypes,
|
|
1134
|
+
)
|
|
1135
|
+
for (const pathParam of newApiResourcesPathParams)
|
|
1136
|
+
await newApiResourcesPathParamsModel.create(pathParam, { transaction })
|
|
1137
|
+
|
|
1138
|
+
/////////// APIRESOURCESQUERYSTRINGPARAMS /////////////
|
|
1139
|
+
|
|
1140
|
+
console.log('APIRESOURCESQUERYSTRINGPARAMS')
|
|
1141
|
+
|
|
1142
|
+
const oldApiResourcesQueryStringParamsModel =
|
|
1143
|
+
require('../legacy/models/apiResourceQueryStringParams').model(
|
|
1144
|
+
oldDatabase,
|
|
1145
|
+
Sequelize.DataTypes,
|
|
1146
|
+
)
|
|
1147
|
+
const oldApiResourcesQueryStringParams =
|
|
1148
|
+
await oldApiResourcesQueryStringParamsModel.findAll()
|
|
1149
|
+
|
|
1150
|
+
const newApiResourcesQueryStringParams =
|
|
1151
|
+
oldApiResourcesQueryStringParams.map(({ dataValues }) => ({
|
|
1152
|
+
...dataValues,
|
|
1153
|
+
EnterpriseId: oldEnterprise.id,
|
|
1154
|
+
}))
|
|
1155
|
+
|
|
1156
|
+
const newApiResourcesQueryStringParamsModel =
|
|
1157
|
+
require('../models/apiResourceQueryStringParams').model(
|
|
1158
|
+
newDatabase,
|
|
1159
|
+
Sequelize.DataTypes,
|
|
1160
|
+
)
|
|
1161
|
+
for (const queryString of newApiResourcesQueryStringParams)
|
|
1162
|
+
await newApiResourcesQueryStringParamsModel.create(queryString, {
|
|
1163
|
+
transaction,
|
|
1164
|
+
})
|
|
1165
|
+
|
|
1166
|
+
/////////// CLIENTS /////////////
|
|
1167
|
+
|
|
1168
|
+
// console.log('CLIENTS')
|
|
1169
|
+
|
|
1170
|
+
// console.log('Migrando Clientes')
|
|
1171
|
+
|
|
1172
|
+
// const oldClientsModel = require('../legacy/models/client').model(oldDatabase, Sequelize.DataTypes)
|
|
1173
|
+
// const oldClientsCount = await oldClientsModel.count({
|
|
1174
|
+
// order: [['createdAt', 'ASC']]
|
|
1175
|
+
// })
|
|
1176
|
+
|
|
1177
|
+
// const newClientsModel = require('../models/client').model(newDatabase, Sequelize.DataTypes)
|
|
1178
|
+
|
|
1179
|
+
// console.log('total de clientes:', oldClientsCount)
|
|
1180
|
+
|
|
1181
|
+
// const pages = Math.ceil(oldClientsCount / 5000)
|
|
1182
|
+
|
|
1183
|
+
// console.log('total de páginas:', pages)
|
|
1184
|
+
|
|
1185
|
+
// for (let i = 0; i < pages; i++) {
|
|
1186
|
+
|
|
1187
|
+
// console.log(`processando: página ${i + 1} de ${pages}`)
|
|
1188
|
+
|
|
1189
|
+
// const offset = i * 5000
|
|
1190
|
+
|
|
1191
|
+
// const oldClients = await oldClientsModel.findAll({
|
|
1192
|
+
// order: [['createdAt', 'ASC']],
|
|
1193
|
+
// offset, limit: 5000
|
|
1194
|
+
// })
|
|
1195
|
+
|
|
1196
|
+
// const newClients = oldClients.map(({ dataValues }) => ({
|
|
1197
|
+
// ...dataValues,
|
|
1198
|
+
// EnterpriseId: oldEnterprise.id
|
|
1199
|
+
// }))
|
|
1200
|
+
|
|
1201
|
+
// for (const client of newClients) await newClientsModel.create(client, { transaction })
|
|
1202
|
+
// }
|
|
1203
|
+
|
|
1204
|
+
/////////// PUBLICATIONS /////////////
|
|
1205
|
+
|
|
1206
|
+
console.log('PUBLICATIONS')
|
|
1207
|
+
|
|
1208
|
+
const oldPublicationsModel =
|
|
1209
|
+
require('../legacy/models/publications').model(
|
|
1210
|
+
oldDatabase,
|
|
1211
|
+
Sequelize.DataTypes,
|
|
1212
|
+
)
|
|
1213
|
+
const oldPublications = await oldPublicationsModel.findAll()
|
|
1214
|
+
|
|
1215
|
+
const newPublications = oldPublications.map(({ dataValues }) => ({
|
|
1216
|
+
...dataValues,
|
|
1217
|
+
EnterpriseId: oldEnterprise.id,
|
|
1218
|
+
}))
|
|
1219
|
+
|
|
1220
|
+
const newPublicationsModel = require('../models/publications').model(
|
|
1221
|
+
newDatabase,
|
|
1222
|
+
Sequelize.DataTypes,
|
|
1223
|
+
)
|
|
1224
|
+
for (const publication of newPublications)
|
|
1225
|
+
await newPublicationsModel.create(publication, { transaction })
|
|
1226
|
+
|
|
1227
|
+
/////////// SENDHSMRETURNHSMS /////////////
|
|
1228
|
+
|
|
1229
|
+
console.log('SENDHSMRETURNHSMS')
|
|
1230
|
+
|
|
1231
|
+
console.log('Migrando SENDHSMRETURNHSMS')
|
|
1232
|
+
|
|
1233
|
+
const oldSendHsmReturHsmsModel =
|
|
1234
|
+
require('../legacy/models/sendHsmReturnHsm').model(
|
|
1235
|
+
oldDatabase,
|
|
1236
|
+
Sequelize.DataTypes,
|
|
1237
|
+
)
|
|
1238
|
+
const oldSendHsmReturHsmsCount = await oldSendHsmReturHsmsModel.count({
|
|
1239
|
+
order: [['createdAt', 'ASC']],
|
|
1240
|
+
})
|
|
1241
|
+
|
|
1242
|
+
const newSendHsmReturHsmsModel =
|
|
1243
|
+
require('../models/sendHsmReturnHsm').model(
|
|
1244
|
+
newDatabase,
|
|
1245
|
+
Sequelize.DataTypes,
|
|
1246
|
+
)
|
|
1247
|
+
|
|
1248
|
+
console.log('total de SENDHSMRETURNHSMS:', oldSendHsmReturHsmsCount)
|
|
1249
|
+
|
|
1250
|
+
const pagesSendHsmReturHsms = Math.ceil(oldSendHsmReturHsmsCount / 1000)
|
|
1251
|
+
|
|
1252
|
+
console.log('total de páginas:', pagesSendHsmReturHsms)
|
|
1253
|
+
|
|
1254
|
+
for (let i = 0; i < pagesSendHsmReturHsms; i++) {
|
|
1255
|
+
console.log(`processando: página ${i + 1} de ${pagesSendHsmReturHsms}`)
|
|
1256
|
+
|
|
1257
|
+
const offset = i * 1000
|
|
1258
|
+
|
|
1259
|
+
const oldSendHsmReturHsms = await oldSendHsmReturHsmsModel.findAll({
|
|
1260
|
+
attributes: { exclude: ['id'] },
|
|
1261
|
+
order: [['createdAt', 'ASC']],
|
|
1262
|
+
offset,
|
|
1263
|
+
limit: 1000,
|
|
1264
|
+
})
|
|
1265
|
+
|
|
1266
|
+
const newSendHsmReturHsms = oldSendHsmReturHsms.map(
|
|
1267
|
+
({ dataValues }) => dataValues,
|
|
1268
|
+
)
|
|
1269
|
+
console.log('inserindo registros...')
|
|
1270
|
+
await newSendHsmReturHsmsModel.bulkCreate(newSendHsmReturHsms, {
|
|
1271
|
+
transaction,
|
|
1272
|
+
})
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
/////////// SESSIONS /////////////
|
|
1276
|
+
|
|
1277
|
+
// console.log('SESSIONS')
|
|
1278
|
+
|
|
1279
|
+
// console.log('Migrando Sessões')
|
|
1280
|
+
|
|
1281
|
+
// const oldSessionsModel = require('../legacy/models/sessions').model(oldDatabase, Sequelize.DataTypes)
|
|
1282
|
+
// const oldSessionsCount = await oldSessionsModel.count({
|
|
1283
|
+
// order: [['createdAt', 'ASC']]
|
|
1284
|
+
// })
|
|
1285
|
+
|
|
1286
|
+
// const newSessionsModel = require('../models/sessions').model(newDatabase, Sequelize.DataTypes)
|
|
1287
|
+
|
|
1288
|
+
// console.log('total de sessões:', oldSessionsCount)
|
|
1289
|
+
|
|
1290
|
+
// const pagesSessions = Math.ceil(oldSessionsCount / 5000)
|
|
1291
|
+
|
|
1292
|
+
// console.log('total de páginas:', pagesSessions)
|
|
1293
|
+
|
|
1294
|
+
// for (let i = 0; i < pagesSessions; i++) {
|
|
1295
|
+
|
|
1296
|
+
// console.log(`processando: página ${i + 1} de ${pagesSessions}`)
|
|
1297
|
+
|
|
1298
|
+
// const offset = i * 5000
|
|
1299
|
+
|
|
1300
|
+
// const oldSessions = await oldSessionsModel.findAll({
|
|
1301
|
+
// order: [['createdAt', 'ASC']],
|
|
1302
|
+
// offset, limit: 5000
|
|
1303
|
+
// })
|
|
1304
|
+
|
|
1305
|
+
// const newSessions = oldSessions.map(({ dataValues }) => ({
|
|
1306
|
+
// ...dataValues,
|
|
1307
|
+
// EnterpriseId: oldEnterprise.id
|
|
1308
|
+
// }))
|
|
1309
|
+
|
|
1310
|
+
// for (const session of newSessions) await newSessionsModel.create(session, { transaction })
|
|
1311
|
+
// }
|
|
1312
|
+
|
|
1313
|
+
/////////// SESSIONSPREREPORTS /////////////
|
|
1314
|
+
|
|
1315
|
+
console.log('SESSIONSPREREPORTS')
|
|
1316
|
+
|
|
1317
|
+
const oldSessionsPreReportsModel =
|
|
1318
|
+
require('../legacy/models/sessionsPreReports').model(
|
|
1319
|
+
oldDatabase,
|
|
1320
|
+
Sequelize.DataTypes,
|
|
1321
|
+
)
|
|
1322
|
+
const oldSessionsPreReports = await oldSessionsPreReportsModel.findAll()
|
|
1323
|
+
|
|
1324
|
+
const newSessionsPreReports = oldSessionsPreReports.map(
|
|
1325
|
+
({ dataValues }) => ({
|
|
1326
|
+
...dataValues,
|
|
1327
|
+
EnterpriseId: oldEnterprise.id,
|
|
1328
|
+
}),
|
|
1329
|
+
)
|
|
1330
|
+
|
|
1331
|
+
const newSessionsPreReportsModel =
|
|
1332
|
+
require('../models/sessionsPreReports').model(
|
|
1333
|
+
newDatabase,
|
|
1334
|
+
Sequelize.DataTypes,
|
|
1335
|
+
)
|
|
1336
|
+
for (const preReport of newSessionsPreReports)
|
|
1337
|
+
await newSessionsPreReportsModel.create(preReport, { transaction })
|
|
1338
|
+
|
|
1339
|
+
/////////// STOPWORDS /////////////
|
|
1340
|
+
|
|
1341
|
+
console.log('STOPWORDS')
|
|
1342
|
+
|
|
1343
|
+
const oldStopwordsModel = require('../legacy/models/stopwords').model(
|
|
1344
|
+
oldDatabase,
|
|
1345
|
+
Sequelize.DataTypes,
|
|
1346
|
+
)
|
|
1347
|
+
const oldStopwords = await oldStopwordsModel.findAll()
|
|
1348
|
+
|
|
1349
|
+
const newStopwordsModel = require('../models/stopwords').model(
|
|
1350
|
+
newDatabase,
|
|
1351
|
+
Sequelize.DataTypes,
|
|
1352
|
+
)
|
|
1353
|
+
for (const stopword of oldStopwords)
|
|
1354
|
+
await newStopwordsModel.create(stopword.dataValues, { transaction })
|
|
1355
|
+
|
|
1356
|
+
/////////// CONVERSATIONSESSIONS /////////////
|
|
1357
|
+
|
|
1358
|
+
// console.log('CONVERSATIONSESSIONS')
|
|
1359
|
+
|
|
1360
|
+
// const oldConversationSessionsModel = require('../legacy/models/conversationSessions').model(oldDatabase, Sequelize.DataTypes)
|
|
1361
|
+
// const oldConversationSessionsCount = await oldConversationSessionsModel.count({
|
|
1362
|
+
// order: [['createdAt', 'ASC']]
|
|
1363
|
+
// })
|
|
1364
|
+
|
|
1365
|
+
// const newConversationSessionsModel = require('../models/conversationSessions').model(newDatabase, Sequelize.DataTypes)
|
|
1366
|
+
|
|
1367
|
+
// console.log('total de CONVERSATIONSESSIONS:', oldConversationSessionsCount)
|
|
1368
|
+
|
|
1369
|
+
// const pagesConversationSessions = Math.ceil(oldConversationSessionsCount / 1000)
|
|
1370
|
+
|
|
1371
|
+
// console.log('total de páginas:', pagesConversationSessions)
|
|
1372
|
+
|
|
1373
|
+
// for (let i = 0; i < pagesConversationSessions; i++) {
|
|
1374
|
+
|
|
1375
|
+
// console.log(`processando: página ${i + 1} de ${pagesConversationSessions}`)
|
|
1376
|
+
|
|
1377
|
+
// const offset = i * 1000
|
|
1378
|
+
|
|
1379
|
+
// const oldConversationSessions = await oldConversationSessionsModel.findAll({
|
|
1380
|
+
// attributes: { exclude: ['id'] },
|
|
1381
|
+
// order: [['createdAt', 'ASC']],
|
|
1382
|
+
// offset, limit: 1000
|
|
1383
|
+
// })
|
|
1384
|
+
|
|
1385
|
+
// const newConversationSessions = oldConversationSessions.map(({ dataValues }) => {
|
|
1386
|
+
// const { channelName } = oldChannelTypes.find(oct => oct.id == dataValues.ChannelTypeId)
|
|
1387
|
+
// const { id } = newChannelTypes.find(nct => nct.channelName == channelName)
|
|
1388
|
+
// return {
|
|
1389
|
+
// ...dataValues,
|
|
1390
|
+
// ChannelTypeId: id,
|
|
1391
|
+
// EnterpriseId: oldEnterprise.id,
|
|
1392
|
+
// }
|
|
1393
|
+
// })
|
|
1394
|
+
|
|
1395
|
+
// console.log('inserindo registros...')
|
|
1396
|
+
// await newConversationSessionsModel.bulkCreate(newConversationSessions, { transaction })
|
|
1397
|
+
// }
|
|
1398
|
+
|
|
1399
|
+
/////////// DIALOGNODES /////////////
|
|
1400
|
+
|
|
1401
|
+
// console.log('DIALOGNODES')
|
|
1402
|
+
|
|
1403
|
+
// const oldDialogNodesModel = require('../legacy/models/dialogNodes').model(oldDatabase, Sequelize.DataTypes)
|
|
1404
|
+
// const oldDialogNodesCount = await oldDialogNodesModel.count({
|
|
1405
|
+
// order: [['isMultipleResponse'], ['SkillId'], ['DialogNodeFolderId'], ['step']]
|
|
1406
|
+
// })
|
|
1407
|
+
|
|
1408
|
+
// const newDialogNodesModel = require('../models/dialogNodes').model(newDatabase, Sequelize.DataTypes)
|
|
1409
|
+
|
|
1410
|
+
// console.log('total de nós:', oldDialogNodesCount)
|
|
1411
|
+
|
|
1412
|
+
// const pagesDialogNodes = Math.ceil(oldDialogNodesCount / 5000)
|
|
1413
|
+
|
|
1414
|
+
// console.log('total de páginas:', pagesDialogNodes)
|
|
1415
|
+
|
|
1416
|
+
// for (let i = 0; i < pagesDialogNodes; i++) {
|
|
1417
|
+
|
|
1418
|
+
// console.log(`processando: página ${i + 1} de ${pagesDialogNodes}`)
|
|
1419
|
+
|
|
1420
|
+
// const offset = i * 5000
|
|
1421
|
+
|
|
1422
|
+
// const oldDialogNodes = await oldDialogNodesModel.findAll({
|
|
1423
|
+
// order: [['isMultipleResponse'], ['SkillId'], ['DialogNodeFolderId'], ['step']],
|
|
1424
|
+
// offset, limit: 5000
|
|
1425
|
+
// })
|
|
1426
|
+
|
|
1427
|
+
// const newDialogNodes = oldDialogNodes.map(({ dataValues }) => ({
|
|
1428
|
+
// ...dataValues,
|
|
1429
|
+
// EnterpriseId: oldEnterprise.id
|
|
1430
|
+
// }))
|
|
1431
|
+
|
|
1432
|
+
// for (const dialogNode of newDialogNodes) await newDialogNodesModel.create(dialogNode, { transaction })
|
|
1433
|
+
// }
|
|
1434
|
+
|
|
1435
|
+
/////////// DIALOGNODESPREREPORTS /////////////
|
|
1436
|
+
|
|
1437
|
+
// console.log('DIALOGNODESPREREPORTS')
|
|
1438
|
+
|
|
1439
|
+
// const oldDialogNodesPreReportsModel = require('../legacy/models/dialogNodesPreReports').model(oldDatabase, Sequelize.DataTypes)
|
|
1440
|
+
// const oldDialogNodesPreReportsCount = await oldDialogNodesPreReportsModel.count({
|
|
1441
|
+
// order: [['createdAt', 'ASC']]
|
|
1442
|
+
// })
|
|
1443
|
+
|
|
1444
|
+
// const newDialogNodesPreReportsModel = require('../models/dialogNodesPreReports').model(newDatabase, Sequelize.DataTypes)
|
|
1445
|
+
|
|
1446
|
+
// console.log('total de DIALOGNODESPREREPORTS:', oldDialogNodesPreReportsCount)
|
|
1447
|
+
|
|
1448
|
+
// const pagesDialogNodesPreReports = Math.ceil(oldDialogNodesPreReportsCount / 1000)
|
|
1449
|
+
|
|
1450
|
+
// console.log('total de páginas:', pagesDialogNodesPreReports)
|
|
1451
|
+
|
|
1452
|
+
// for (let i = 0; i < pagesDialogNodesPreReports; i++) {
|
|
1453
|
+
|
|
1454
|
+
// console.log(`processando: página ${i + 1} de ${pagesDialogNodesPreReports}`)
|
|
1455
|
+
|
|
1456
|
+
// const offset = i * 1000
|
|
1457
|
+
|
|
1458
|
+
// const oldDialogNodesPreReports = await oldDialogNodesPreReportsModel.findAll({
|
|
1459
|
+
// attributes: { exclude: ['id'] },
|
|
1460
|
+
// order: [['createdAt', 'ASC']],
|
|
1461
|
+
// offset, limit: 1000
|
|
1462
|
+
// })
|
|
1463
|
+
|
|
1464
|
+
// const newDialogNodesPreReports = oldDialogNodesPreReports.map(({ dataValues }) => ({
|
|
1465
|
+
// ...dataValues,
|
|
1466
|
+
// EnterpriseId: oldEnterprise.id,
|
|
1467
|
+
// }))
|
|
1468
|
+
|
|
1469
|
+
// console.log('inserindo registros...')
|
|
1470
|
+
// await newDialogNodesPreReportsModel.bulkCreate(newDialogNodesPreReports, { transaction })
|
|
1471
|
+
// }
|
|
1472
|
+
|
|
1473
|
+
/////////// DIALOGNODES_APIRESOURCES /////////////
|
|
1474
|
+
|
|
1475
|
+
console.log('DIALOGNODES_APIRESOURCES')
|
|
1476
|
+
|
|
1477
|
+
const oldDialogNodes_ApiResourcesModel =
|
|
1478
|
+
require('../legacy/models/dialogNodes_apiResources').model(
|
|
1479
|
+
oldDatabase,
|
|
1480
|
+
Sequelize.DataTypes,
|
|
1481
|
+
)
|
|
1482
|
+
const oldDialogNodes_ApiResourcesCount =
|
|
1483
|
+
await oldDialogNodes_ApiResourcesModel.count({
|
|
1484
|
+
order: [['createdAt', 'ASC']],
|
|
1485
|
+
})
|
|
1486
|
+
|
|
1487
|
+
const newDialogNodes_ApiResourcesModel =
|
|
1488
|
+
require('../models/dialogNodes_apiResources').model(
|
|
1489
|
+
newDatabase,
|
|
1490
|
+
Sequelize.DataTypes,
|
|
1491
|
+
)
|
|
1492
|
+
|
|
1493
|
+
console.log('total de nós:', oldDialogNodes_ApiResourcesCount)
|
|
1494
|
+
|
|
1495
|
+
const pagesDialogNodes_ApiResources = Math.ceil(
|
|
1496
|
+
oldDialogNodes_ApiResourcesCount / 1000,
|
|
1497
|
+
)
|
|
1498
|
+
|
|
1499
|
+
console.log('total de páginas:', pagesDialogNodes_ApiResources)
|
|
1500
|
+
|
|
1501
|
+
for (let i = 0; i < pagesDialogNodes_ApiResources; i++) {
|
|
1502
|
+
console.log(
|
|
1503
|
+
`processando: página ${i + 1} de ${pagesDialogNodes_ApiResources}`,
|
|
1504
|
+
)
|
|
1505
|
+
|
|
1506
|
+
const offset = i * 1000
|
|
1507
|
+
|
|
1508
|
+
const oldDialogNodes_ApiResources =
|
|
1509
|
+
await oldDialogNodes_ApiResourcesModel.findAll({
|
|
1510
|
+
attributes: { exclude: ['id'] },
|
|
1511
|
+
order: [['createdAt', 'ASC']],
|
|
1512
|
+
offset,
|
|
1513
|
+
limit: 1000,
|
|
1514
|
+
})
|
|
1515
|
+
|
|
1516
|
+
const newDialogNodes_ApiResources = oldDialogNodes_ApiResources.map(
|
|
1517
|
+
({ dataValues }) => dataValues,
|
|
1518
|
+
)
|
|
1519
|
+
|
|
1520
|
+
await newDialogNodes_ApiResourcesModel.bulkCreate(
|
|
1521
|
+
newDialogNodes_ApiResources,
|
|
1522
|
+
{ transaction },
|
|
1523
|
+
)
|
|
1524
|
+
}
|
|
1525
|
+
|
|
1526
|
+
/////////// DIALOGNODES_MULTIPLERESPONSES /////////////
|
|
1527
|
+
|
|
1528
|
+
// console.log('DIALOGNODES_MULTIPLERESPONSES')
|
|
1529
|
+
|
|
1530
|
+
// const oldDialogNodes_MultipleResponsesModel = require('../legacy/models/dialogNodes_MultipleResponses').model(oldDatabase, Sequelize.DataTypes)
|
|
1531
|
+
// const oldDialogNodes_MultipleResponsesCount = await oldDialogNodes_MultipleResponsesModel.count({
|
|
1532
|
+
// order: [['createdAt', 'ASC']]
|
|
1533
|
+
// })
|
|
1534
|
+
|
|
1535
|
+
// const newDialogNodes_MultipleResponsesModel = require('../models/dialogNodes_MultipleResponses').model(newDatabase, Sequelize.DataTypes)
|
|
1536
|
+
|
|
1537
|
+
// console.log('total de nós:', oldDialogNodes_MultipleResponsesCount)
|
|
1538
|
+
|
|
1539
|
+
// const pagesDialogNodes_MultipleResponses = Math.ceil(oldDialogNodes_MultipleResponsesCount / 1000)
|
|
1540
|
+
|
|
1541
|
+
// console.log('total de páginas:', pagesDialogNodes_MultipleResponses)
|
|
1542
|
+
|
|
1543
|
+
// for (let i = 0; i < pagesDialogNodes_MultipleResponses; i++) {
|
|
1544
|
+
|
|
1545
|
+
// console.log(`processando: página ${i + 1} de ${pagesDialogNodes_MultipleResponses}`)
|
|
1546
|
+
|
|
1547
|
+
// const offset = i * 1000
|
|
1548
|
+
|
|
1549
|
+
// const oldDialogNodes_MultipleResponses = await oldDialogNodes_MultipleResponsesModel.findAll({
|
|
1550
|
+
// attributes: { exclude: ['id'] },
|
|
1551
|
+
// order: [['createdAt', 'ASC']],
|
|
1552
|
+
// offset, limit: 1000
|
|
1553
|
+
// })
|
|
1554
|
+
|
|
1555
|
+
// const newDialogNodes_MultipleResponses = oldDialogNodes_MultipleResponses.map(({ dataValues }) => dataValues)
|
|
1556
|
+
|
|
1557
|
+
// await newDialogNodes_MultipleResponsesModel.bulkCreate(newDialogNodes_MultipleResponses, { transaction })
|
|
1558
|
+
// }
|
|
1559
|
+
|
|
1560
|
+
/////////// DIALOGNODES_MULTIPLERESPONSES /////////////
|
|
1561
|
+
|
|
1562
|
+
// console.log('RESPONSE_DIALOGNODES')
|
|
1563
|
+
|
|
1564
|
+
// const oldResponse_DialogNodesModel = require('../legacy/models/response_DialogNodes').model(oldDatabase, Sequelize.DataTypes)
|
|
1565
|
+
// const oldResponse_DialogNodesCount = await oldResponse_DialogNodesModel.count({
|
|
1566
|
+
// order: [['DialogNodeId'], ['order'], ['createdAt']]
|
|
1567
|
+
// })
|
|
1568
|
+
|
|
1569
|
+
// const newResponse_DialogNodesModel = require('../models/response_DialogNodes').model(newDatabase, Sequelize.DataTypes)
|
|
1570
|
+
|
|
1571
|
+
// console.log('total de nós:', oldResponse_DialogNodesCount)
|
|
1572
|
+
|
|
1573
|
+
// const pagesResponse_DialogNodes = Math.ceil(oldResponse_DialogNodesCount / 1000)
|
|
1574
|
+
|
|
1575
|
+
// console.log('total de páginas:', pagesResponse_DialogNodes)
|
|
1576
|
+
|
|
1577
|
+
// for (let i = 0; i < pagesResponse_DialogNodes; i++) {
|
|
1578
|
+
|
|
1579
|
+
// console.log(`processando: página ${i + 1} de ${pagesResponse_DialogNodes}`)
|
|
1580
|
+
|
|
1581
|
+
// const offset = i * 1000
|
|
1582
|
+
|
|
1583
|
+
// const oldResponse_DialogNodes = await oldResponse_DialogNodesModel.findAll({
|
|
1584
|
+
// attributes: { exclude: ['id'] },
|
|
1585
|
+
// order: [['DialogNodeId'], ['order'], ['createdAt']],
|
|
1586
|
+
// offset, limit: 1000
|
|
1587
|
+
// })
|
|
1588
|
+
|
|
1589
|
+
// const newResponse_DialogNodes = oldResponse_DialogNodes.map(({ dataValues }) => dataValues)
|
|
1590
|
+
|
|
1591
|
+
// await newResponse_DialogNodesModel.bulkCreate(newResponse_DialogNodes, { transaction })
|
|
1592
|
+
// }
|
|
1593
|
+
|
|
1594
|
+
/////////// TRANSHIPTRIGGERS /////////////
|
|
1595
|
+
|
|
1596
|
+
console.log('TRANSHIPTRIGGERS')
|
|
1597
|
+
|
|
1598
|
+
const oldTranshipTriggersModel =
|
|
1599
|
+
require('../legacy/models/transhipTriggers').model(
|
|
1600
|
+
oldDatabase,
|
|
1601
|
+
Sequelize.DataTypes,
|
|
1602
|
+
)
|
|
1603
|
+
const oldTranshipTriggers = await oldTranshipTriggersModel.findAll()
|
|
1604
|
+
|
|
1605
|
+
const newTranshipTriggersModel =
|
|
1606
|
+
require('../models/transhipTriggers').model(
|
|
1607
|
+
newDatabase,
|
|
1608
|
+
Sequelize.DataTypes,
|
|
1609
|
+
)
|
|
1610
|
+
for (const TranshipTrigger of oldTranshipTriggers)
|
|
1611
|
+
await newTranshipTriggersModel.create(TranshipTrigger.dataValues, {
|
|
1612
|
+
transaction,
|
|
1613
|
+
})
|
|
1614
|
+
|
|
1615
|
+
/////////// ATTENDANCES /////////////
|
|
1616
|
+
|
|
1617
|
+
console.log('ATTENDANCES')
|
|
1618
|
+
|
|
1619
|
+
console.log('Migrando ATTENDANCES')
|
|
1620
|
+
|
|
1621
|
+
const oldAttendancesModel = require('../legacy/models/attendances').model(
|
|
1622
|
+
oldDatabase,
|
|
1623
|
+
Sequelize.DataTypes,
|
|
1624
|
+
)
|
|
1625
|
+
const oldAttendancesCount = await oldAttendancesModel.count({
|
|
1626
|
+
order: [['LineId'], ['createdAt']],
|
|
1627
|
+
})
|
|
1628
|
+
|
|
1629
|
+
const newAttendancesModel = require('../models/attendances').model(
|
|
1630
|
+
newDatabase,
|
|
1631
|
+
Sequelize.DataTypes,
|
|
1632
|
+
)
|
|
1633
|
+
|
|
1634
|
+
console.log('total de atendimentos:', oldAttendancesCount)
|
|
1635
|
+
|
|
1636
|
+
const pagesAttendances = Math.ceil(oldAttendancesCount / 5000)
|
|
1637
|
+
|
|
1638
|
+
console.log('total de páginas:', pagesAttendances)
|
|
1639
|
+
|
|
1640
|
+
for (let i = 0; i < pagesAttendances; i++) {
|
|
1641
|
+
console.log(`processando: página ${i + 1} de ${pagesAttendances}`)
|
|
1642
|
+
|
|
1643
|
+
const offset = i * 5000
|
|
1644
|
+
|
|
1645
|
+
const oldAttendances = await oldAttendancesModel.findAll({
|
|
1646
|
+
order: [['LineId'], ['createdAt']],
|
|
1647
|
+
offset,
|
|
1648
|
+
limit: 5000,
|
|
1649
|
+
})
|
|
1650
|
+
|
|
1651
|
+
const newAttendances = oldAttendances.map(({ dataValues }) => ({
|
|
1652
|
+
...dataValues,
|
|
1653
|
+
EnterpriseId: oldEnterprise.id,
|
|
1654
|
+
}))
|
|
1655
|
+
|
|
1656
|
+
for (const attendance of newAttendances)
|
|
1657
|
+
await newAttendancesModel.create(attendance, { transaction })
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
/////////// COMMENTS /////////////
|
|
1661
|
+
|
|
1662
|
+
console.log('COMMENTS')
|
|
1663
|
+
|
|
1664
|
+
console.log('Migrando COMMENTS')
|
|
1665
|
+
|
|
1666
|
+
const oldCommentsModel = require('../legacy/models/comments').model(
|
|
1667
|
+
oldDatabase,
|
|
1668
|
+
Sequelize.DataTypes,
|
|
1669
|
+
)
|
|
1670
|
+
const oldCommentsCount = await oldCommentsModel.count({
|
|
1671
|
+
order: [['createdAt']],
|
|
1672
|
+
})
|
|
1673
|
+
|
|
1674
|
+
const newCommentsModel = require('../models/comments').model(
|
|
1675
|
+
newDatabase,
|
|
1676
|
+
Sequelize.DataTypes,
|
|
1677
|
+
)
|
|
1678
|
+
|
|
1679
|
+
console.log('total de comentários:', oldCommentsCount)
|
|
1680
|
+
|
|
1681
|
+
const pagesComments = Math.ceil(oldCommentsCount / 5000)
|
|
1682
|
+
|
|
1683
|
+
console.log('total de páginas:', pagesComments)
|
|
1684
|
+
|
|
1685
|
+
for (let i = 0; i < pagesComments; i++) {
|
|
1686
|
+
console.log(`processando: página ${i + 1} de ${pagesComments}`)
|
|
1687
|
+
|
|
1688
|
+
const offset = i * 5000
|
|
1689
|
+
|
|
1690
|
+
const oldComments = await oldCommentsModel.findAll({
|
|
1691
|
+
order: [['createdAt']],
|
|
1692
|
+
offset,
|
|
1693
|
+
limit: 5000,
|
|
1694
|
+
})
|
|
1695
|
+
|
|
1696
|
+
const newComments = oldComments.map(({ dataValues }) => ({
|
|
1697
|
+
...dataValues,
|
|
1698
|
+
EnterpriseId: oldEnterprise.id,
|
|
1699
|
+
}))
|
|
1700
|
+
|
|
1701
|
+
for (const comment of newComments)
|
|
1702
|
+
await newCommentsModel.create(comment, { transaction })
|
|
1703
|
+
}
|
|
1704
|
+
|
|
1705
|
+
/////////// ENDSESSIONTRIGGERS /////////////
|
|
1706
|
+
|
|
1707
|
+
console.log('ENDSESSIONTRIGGERS')
|
|
1708
|
+
|
|
1709
|
+
const oldEndSessionTriggersModel =
|
|
1710
|
+
require('../legacy/models/endSessionTriggers').model(
|
|
1711
|
+
oldDatabase,
|
|
1712
|
+
Sequelize.DataTypes,
|
|
1713
|
+
)
|
|
1714
|
+
const oldEndSessionTriggers = await oldEndSessionTriggersModel.findAll()
|
|
1715
|
+
|
|
1716
|
+
const newEndSessionTriggersModel =
|
|
1717
|
+
require('../models/endSessionTriggers').model(
|
|
1718
|
+
newDatabase,
|
|
1719
|
+
Sequelize.DataTypes,
|
|
1720
|
+
)
|
|
1721
|
+
for (const endSessionTrigger of oldEndSessionTriggers)
|
|
1722
|
+
await newEndSessionTriggersModel.create(endSessionTrigger.dataValues, {
|
|
1723
|
+
transaction,
|
|
1724
|
+
})
|
|
1725
|
+
|
|
1726
|
+
/////////// FAQTRIGGERS /////////////
|
|
1727
|
+
|
|
1728
|
+
console.log('FAQTRIGGERS')
|
|
1729
|
+
|
|
1730
|
+
const oldFaqTriggersModel = require('../legacy/models/faqTriggers').model(
|
|
1731
|
+
oldDatabase,
|
|
1732
|
+
Sequelize.DataTypes,
|
|
1733
|
+
)
|
|
1734
|
+
const oldFaqTriggers = await oldFaqTriggersModel.findAll()
|
|
1735
|
+
|
|
1736
|
+
const newFaqTriggersModel = require('../models/faqTriggers').model(
|
|
1737
|
+
newDatabase,
|
|
1738
|
+
Sequelize.DataTypes,
|
|
1739
|
+
)
|
|
1740
|
+
for (const FaqTrigger of oldFaqTriggers)
|
|
1741
|
+
await newFaqTriggersModel.create(FaqTrigger.dataValues, { transaction })
|
|
1742
|
+
|
|
1743
|
+
/////////// INACTIVITYTRIGGERS /////////////
|
|
1744
|
+
|
|
1745
|
+
console.log('INACTIVITYTRIGGERS')
|
|
1746
|
+
|
|
1747
|
+
const oldInactivityTriggersModel =
|
|
1748
|
+
require('../legacy/models/inactivityTriggers').model(
|
|
1749
|
+
oldDatabase,
|
|
1750
|
+
Sequelize.DataTypes,
|
|
1751
|
+
)
|
|
1752
|
+
const oldInactivityTriggers = await oldInactivityTriggersModel.findAll()
|
|
1753
|
+
|
|
1754
|
+
const newInactivityTriggers = oldInactivityTriggers.map(
|
|
1755
|
+
({ dataValues }) => ({
|
|
1756
|
+
...dataValues,
|
|
1757
|
+
EnterpriseId: oldEnterprise.id,
|
|
1758
|
+
}),
|
|
1759
|
+
)
|
|
1760
|
+
|
|
1761
|
+
const newInactivityTriggersModel =
|
|
1762
|
+
require('../models/inactivityTriggers').model(
|
|
1763
|
+
newDatabase,
|
|
1764
|
+
Sequelize.DataTypes,
|
|
1765
|
+
)
|
|
1766
|
+
for (const InactivityTrigger of newInactivityTriggers)
|
|
1767
|
+
await newInactivityTriggersModel.create(InactivityTrigger, {
|
|
1768
|
+
transaction,
|
|
1769
|
+
})
|
|
1770
|
+
|
|
1771
|
+
/////////// RETURNHSMS /////////////
|
|
1772
|
+
|
|
1773
|
+
console.log('RETURNHSMS')
|
|
1774
|
+
|
|
1775
|
+
console.log('Migrando Postbacks Interaxa')
|
|
1776
|
+
|
|
1777
|
+
const oldReturnHsmsModel = require('../legacy/models/returnHsm').model(
|
|
1778
|
+
oldDatabase,
|
|
1779
|
+
Sequelize.DataTypes,
|
|
1780
|
+
)
|
|
1781
|
+
const oldReturnHsmsCount = await oldReturnHsmsModel.count({
|
|
1782
|
+
order: [['createdAt', 'ASC']],
|
|
1783
|
+
})
|
|
1784
|
+
|
|
1785
|
+
const newReturnHsmsModel = require('../models/returnHsm').model(
|
|
1786
|
+
newDatabase,
|
|
1787
|
+
Sequelize.DataTypes,
|
|
1788
|
+
)
|
|
1789
|
+
|
|
1790
|
+
console.log('total de Postbacks Gupshup:', oldReturnHsmsCount)
|
|
1791
|
+
|
|
1792
|
+
const pagesReturnHsm = Math.ceil(oldReturnHsmsCount / 1000)
|
|
1793
|
+
|
|
1794
|
+
console.log('total de páginas:', pagesReturnHsm)
|
|
1795
|
+
|
|
1796
|
+
for (let i = 0; i < pagesReturnHsm; i++) {
|
|
1797
|
+
console.log(`processando: página ${i + 1} de ${pagesReturnHsm}`)
|
|
1798
|
+
|
|
1799
|
+
const offset = i * 1000
|
|
1800
|
+
|
|
1801
|
+
const oldReturnHsms = await oldReturnHsmsModel.findAll({
|
|
1802
|
+
attributes: { exclude: ['id'] },
|
|
1803
|
+
order: [['createdAt', 'ASC']],
|
|
1804
|
+
offset,
|
|
1805
|
+
limit: 1000,
|
|
1806
|
+
})
|
|
1807
|
+
|
|
1808
|
+
const newReturnHsms = oldReturnHsms.map(({ dataValues }) => dataValues)
|
|
1809
|
+
console.log('inserindo registros...')
|
|
1810
|
+
await newReturnHsmsModel.bulkCreate(newReturnHsms, { transaction })
|
|
1811
|
+
}
|
|
1812
|
+
|
|
1813
|
+
/////////// TRANSHIPCONVERSATIONS /////////////
|
|
1814
|
+
|
|
1815
|
+
// console.log('TRANSHIPCONVERSATIONS')
|
|
1816
|
+
|
|
1817
|
+
// const oldTranshipConversationsModel = require('../legacy/models/transhipConversations').model(oldDatabase, Sequelize.DataTypes)
|
|
1818
|
+
// const oldTranshipConversationsCount = await oldTranshipConversationsModel.count({
|
|
1819
|
+
// order: [['AttendanceId'], ['action'], ['createdAt']]
|
|
1820
|
+
// })
|
|
1821
|
+
|
|
1822
|
+
// const newTranshipConversationsModel = require('../models/transhipConversations').model(newDatabase, Sequelize.DataTypes)
|
|
1823
|
+
|
|
1824
|
+
// console.log('total de mensagens:', oldTranshipConversationsCount)
|
|
1825
|
+
|
|
1826
|
+
// const pagesTranshipConversations = Math.ceil(oldTranshipConversationsCount / 1000)
|
|
1827
|
+
|
|
1828
|
+
// console.log('total de páginas:', pagesTranshipConversations)
|
|
1829
|
+
|
|
1830
|
+
// for (let i = 0; i < pagesTranshipConversations; i++) {
|
|
1831
|
+
|
|
1832
|
+
// console.log(`processando: página ${i + 1} de ${pagesTranshipConversations}`)
|
|
1833
|
+
|
|
1834
|
+
// const offset = i * 1000
|
|
1835
|
+
|
|
1836
|
+
// const oldTranshipConversations = await oldTranshipConversationsModel.findAll({
|
|
1837
|
+
// attributes: { exclude: ['id'] },
|
|
1838
|
+
// order: [['AttendanceId'], ['action'], ['createdAt']],
|
|
1839
|
+
// offset, limit: 1000
|
|
1840
|
+
// })
|
|
1841
|
+
|
|
1842
|
+
// const newTranshipConversations = oldTranshipConversations.map(({ dataValues }) => ({
|
|
1843
|
+
// ...dataValues,
|
|
1844
|
+
// EnterpriseId: oldEnterprise.id
|
|
1845
|
+
// }))
|
|
1846
|
+
|
|
1847
|
+
// await newTranshipConversationsModel.bulkCreate(newTranshipConversations, { transaction })
|
|
1848
|
+
// }
|
|
1849
|
+
|
|
1850
|
+
/////////// BLACKLISTCONTACTS /////////////
|
|
1851
|
+
|
|
1852
|
+
console.log('BLACKLISTCONTACTS')
|
|
1853
|
+
|
|
1854
|
+
const oldBlacklistContactsModel =
|
|
1855
|
+
require('../legacy/models/blacklistContacts').model(
|
|
1856
|
+
oldDatabase,
|
|
1857
|
+
Sequelize.DataTypes,
|
|
1858
|
+
)
|
|
1859
|
+
const oldBlacklistContacts = await oldBlacklistContactsModel.findAll()
|
|
1860
|
+
|
|
1861
|
+
const newBlacklistContacts = oldBlacklistContacts.map(
|
|
1862
|
+
({ dataValues }) => ({
|
|
1863
|
+
...dataValues,
|
|
1864
|
+
EnterpriseId: oldEnterprise.id,
|
|
1865
|
+
}),
|
|
1866
|
+
)
|
|
1867
|
+
|
|
1868
|
+
const newBlacklistContactsModel =
|
|
1869
|
+
require('../models/blacklistContacts').model(
|
|
1870
|
+
newDatabase,
|
|
1871
|
+
Sequelize.DataTypes,
|
|
1872
|
+
)
|
|
1873
|
+
for (const blacklistContact of newBlacklistContacts)
|
|
1874
|
+
await newBlacklistContactsModel.create(blacklistContact, {
|
|
1875
|
+
transaction,
|
|
1876
|
+
})
|
|
1877
|
+
|
|
1878
|
+
/////////// WHITELISTCONTACTS /////////////
|
|
1879
|
+
|
|
1880
|
+
console.log('WHITELISTCONTACTS')
|
|
1881
|
+
|
|
1882
|
+
const oldWhitelistContactsModel =
|
|
1883
|
+
require('../legacy/models/whitelistContacts').model(
|
|
1884
|
+
oldDatabase,
|
|
1885
|
+
Sequelize.DataTypes,
|
|
1886
|
+
)
|
|
1887
|
+
const oldWhitelistContacts = await oldWhitelistContactsModel.findAll()
|
|
1888
|
+
|
|
1889
|
+
const newWhitelistContacts = oldWhitelistContacts.map(
|
|
1890
|
+
({ dataValues }) => ({
|
|
1891
|
+
...dataValues,
|
|
1892
|
+
EnterpriseId: oldEnterprise.id,
|
|
1893
|
+
}),
|
|
1894
|
+
)
|
|
1895
|
+
|
|
1896
|
+
const newWhitelistContactsModel =
|
|
1897
|
+
require('../models/whitelistContacts').model(
|
|
1898
|
+
newDatabase,
|
|
1899
|
+
Sequelize.DataTypes,
|
|
1900
|
+
)
|
|
1901
|
+
for (const whitelistContact of newWhitelistContacts)
|
|
1902
|
+
await newWhitelistContactsModel.create(whitelistContact, {
|
|
1903
|
+
transaction,
|
|
1904
|
+
})
|
|
1905
|
+
|
|
1906
|
+
////////////////////////////////////////
|
|
1907
|
+
|
|
1908
|
+
await transaction.commit()
|
|
1909
|
+
|
|
1910
|
+
console.log(
|
|
1911
|
+
`\n\n*** CLIENTE ${enterprise.alias} MIGRAGO COM SUCESSO!! ***\n\n`,
|
|
1912
|
+
)
|
|
1913
|
+
} catch (error) {
|
|
1914
|
+
console.error('\n\n***ERRO NA MIGRAÇÃO DO CLIENTE', enterprise.alias)
|
|
1915
|
+
console.error(error)
|
|
1916
|
+
await transaction.rollback()
|
|
1917
|
+
}
|
|
1918
|
+
}
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
const validationSequence = [
|
|
1922
|
+
`\nEste processo foi iniciado à partir do diretório: ${process.cwd()}\nEstá correto?`,
|
|
1923
|
+
'\nO arquivo _leanbot_enterprises_map.json foi criado e está correto?',
|
|
1924
|
+
'\nO arquivo .env foi criado e está correto?',
|
|
1925
|
+
`\nO destino desta migração será executada no host ${process.env.DATABASE_HOST}, database ${process.env.DATABASE_NAME}. Está correto?`,
|
|
1926
|
+
]
|
|
1927
|
+
|
|
1928
|
+
async function main() {
|
|
1929
|
+
const readline = require('readline').createInterface({
|
|
1930
|
+
input: process.stdin,
|
|
1931
|
+
output: process.stdout,
|
|
1932
|
+
})
|
|
1933
|
+
|
|
1934
|
+
console.log(
|
|
1935
|
+
'\n*** Antes de iniciar o processo de migração, confirme os dados solicitados abaixo. ***\n',
|
|
1936
|
+
)
|
|
1937
|
+
|
|
1938
|
+
executeValidationSequence(readline, validationSequence, unificate)
|
|
1939
|
+
}
|
|
1940
|
+
|
|
1941
|
+
main()
|