@burgan-tech/morph-touch-runtime 0.0.3 → 0.0.5

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.
Files changed (261) hide show
  1. package/burgan-tech-morph-touch-runtime-0.0.5.tgz +0 -0
  2. package/{touch → morph-touch}/Functions/check-livekit-room-access.1.0.0.json +2 -2
  3. package/{touch → morph-touch}/Functions/check-livekit-room-access.http +1 -1
  4. package/{touch → morph-touch}/Functions/get-absence-entry.1.0.0.json +2 -2
  5. package/{touch → morph-touch}/Functions/get-advisor-stats.1.0.0.json +2 -2
  6. package/morph-touch/Functions/get-available-slots.1.0.0.json +30 -0
  7. package/{touch → morph-touch}/Functions/get-available-slots.http +4 -2
  8. package/morph-touch/Functions/get-chat-rooms.1.0.0.json +28 -0
  9. package/{touch → morph-touch}/Functions/get-chat-rooms.http +2 -2
  10. package/{touch → morph-touch}/Functions/get-customer-info.1.0.0.json +2 -2
  11. package/{touch → morph-touch}/Functions/get-matrix-sync.1.0.0.json +2 -2
  12. package/morph-touch/Functions/get-rezervations.1.0.0.json +26 -0
  13. package/{touch → morph-touch}/Functions/get-rezervations.http +2 -2
  14. package/{touch → morph-touch}/Functions/get-room-messages.1.0.0.json +2 -2
  15. package/{touch → morph-touch}/Functions/get-room-messages.http +1 -1
  16. package/{touch → morph-touch}/Functions/rezervation-transfer.http +1 -1
  17. package/{touch → morph-touch}/Functions/send-room-message.1.0.0.json +2 -2
  18. package/{touch → morph-touch}/Functions/src/GetAvailableSlotsMapping.csx +125 -1
  19. package/{touch → morph-touch}/Functions/src/GetChatRoomsMapping.csx +6 -7
  20. package/{touch → morph-touch}/Functions/src/GetRezervationsMapping.csx +12 -5
  21. package/{touch → morph-touch}/Schemas/absence-entry.1.0.0.json +3 -3
  22. package/{touch → morph-touch}/Schemas/advisor-chat-rooms.1.0.0.json +2 -2
  23. package/{touch → morph-touch}/Schemas/chat-room.1.0.0.json +2 -2
  24. package/morph-touch/Schemas/chat-room.1.1.0.json +132 -0
  25. package/morph-touch/Schemas/chat-room.1.2.0.json +174 -0
  26. package/{touch → morph-touch}/Schemas/notification-sender.1.0.0.json +2 -2
  27. package/{touch → morph-touch}/Schemas/portfolio-manager.1.0.0.json +2 -2
  28. package/{touch → morph-touch}/Schemas/rezervation.1.0.0.json +2 -2
  29. package/{touch → morph-touch}/Tasks/cancel-absence-entry-for-rezervation.1.0.0.json +2 -2
  30. package/{touch → morph-touch}/Tasks/check-already-completed-chat-room.1.0.0.json +3 -3
  31. package/{touch → morph-touch}/Tasks/check-duplicate-portfolio-manager.1.0.0.json +3 -3
  32. package/{touch → morph-touch}/Tasks/check-duplicate-rezervation.1.0.0.json +3 -3
  33. package/{touch → morph-touch}/Tasks/check-existing-permanent-chat-room.1.0.0.json +3 -3
  34. package/{touch → morph-touch}/Tasks/check-randevu-time.1.0.0.json +1 -1
  35. package/{touch → morph-touch}/Tasks/create-permanent-chat-room.1.0.0.json +1 -1
  36. package/{touch → morph-touch}/Tasks/determine-transfer-type.1.0.0.json +1 -1
  37. package/{touch → morph-touch}/Tasks/enrich-rezervations-for-transfer.1.0.0.json +3 -3
  38. package/{touch → morph-touch}/Tasks/execute-permanent-chatroom-update.1.0.0.json +3 -3
  39. package/{touch → morph-touch}/Tasks/execute-rez-chatroom-transfer.1.0.0.json +2 -2
  40. package/{touch → morph-touch}/Tasks/execute-rezervation-transfer.1.0.0.json +2 -2
  41. package/{touch → morph-touch}/Tasks/fetch-absence-entries-for-transfer.1.0.0.json +3 -3
  42. package/{touch → morph-touch}/Tasks/fetch-advisors-for-transfer.1.0.0.json +3 -3
  43. package/{touch → morph-touch}/Tasks/fetch-permanent-chatrooms-for-transfer.1.0.0.json +3 -3
  44. package/{touch → morph-touch}/Tasks/fetch-rez-chatrooms-for-transfer.1.0.0.json +3 -3
  45. package/{touch → morph-touch}/Tasks/fetch-rezervations-for-transfer.1.0.0.json +3 -3
  46. package/{touch → morph-touch}/Tasks/get-absence-entry-task.1.0.0.json +3 -3
  47. package/{touch → morph-touch}/Tasks/get-available-slots-http.1.0.0.json +2 -2
  48. package/{touch → morph-touch}/Tasks/get-available-slots.1.0.0.json +3 -3
  49. package/{touch → morph-touch}/Tasks/get-chat-room-data-for-rezervation.1.0.0.json +3 -3
  50. package/{touch → morph-touch}/Tasks/get-chat-token.1.0.0.json +1 -1
  51. package/{touch → morph-touch}/Tasks/get-matrix-room-messages.1.0.0.json +1 -1
  52. package/{touch → morph-touch}/Tasks/get-matrix-sync.1.0.0.json +1 -1
  53. package/{touch → morph-touch}/Tasks/get-rezervation-data-task.1.0.0.json +3 -3
  54. package/{touch → morph-touch}/Tasks/get-rezervation-state-task.1.0.0.json +3 -3
  55. package/{touch → morph-touch}/Tasks/get-rezervations-task.1.0.0.json +3 -3
  56. package/{touch → morph-touch}/Tasks/get-user-info-for-rezervation.1.0.0.json +1 -1
  57. package/{touch → morph-touch}/Tasks/get-video-call-url.1.0.0.json +1 -1
  58. package/{touch → morph-touch}/Tasks/invite-user-to-rezervation-room.1.0.0.json +1 -1
  59. package/{touch → morph-touch}/Tasks/join-chat-room-for-rezervation.1.0.0.json +1 -1
  60. package/{touch → morph-touch}/Tasks/join-matrix-room.1.0.0.json +1 -1
  61. package/{touch → morph-touch}/Tasks/join-user-to-room.1.0.0.json +1 -1
  62. package/{touch → morph-touch}/Tasks/merge-invited-user.1.0.0.json +1 -1
  63. package/{touch → morph-touch}/Tasks/merge-rezervation-update.1.0.0.json +1 -1
  64. package/{touch → morph-touch}/Tasks/merge-target-advisor-for-transfer.1.0.0.json +1 -1
  65. package/{touch → morph-touch}/Tasks/merge-update-body-for-randevu-update.1.0.0.json +1 -1
  66. package/{touch → morph-touch}/Tasks/merge-video-call-urls.1.0.0.json +1 -1
  67. package/{touch → morph-touch}/Tasks/query-chat-room-instances.1.0.0.json +3 -3
  68. package/{touch → morph-touch}/Tasks/remove-member-from-room.1.0.0.json +1 -1
  69. package/{touch → morph-touch}/Tasks/send-matrix-room-message.1.0.0.json +1 -1
  70. package/{touch → morph-touch}/Tasks/send-push-notification.1.0.0.json +1 -1
  71. package/{touch → morph-touch}/Tasks/send-sms-notification.1.0.0.json +1 -1
  72. package/{touch → morph-touch}/Tasks/set-chat-room-status-active.1.0.0.json +1 -1
  73. package/{touch → morph-touch}/Tasks/set-chat-room-status-deactive.1.0.0.json +1 -1
  74. package/morph-touch/Tasks/set-matrix-room-history-visibility.1.0.0.json +26 -0
  75. package/{touch → morph-touch}/Tasks/set-previous-advisor.1.0.0.json +1 -1
  76. package/{touch → morph-touch}/Tasks/set-user-from-headers-for-rezervation.1.0.0.json +1 -1
  77. package/{touch → morph-touch}/Tasks/start-absence-entry-for-rezervation.1.0.0.json +2 -2
  78. package/{touch → morph-touch}/Tasks/start-chat-room-for-rezervation.1.0.0.json +2 -2
  79. package/{touch → morph-touch}/Tasks/start-notification-sender.1.0.0.json +2 -2
  80. package/{touch → morph-touch}/Tasks/start-permanent-chat-room.1.0.0.json +2 -2
  81. package/{touch → morph-touch}/Tasks/start-transfer-from-absence-entry.1.0.0.json +2 -2
  82. package/{touch → morph-touch}/Tasks/start-video-call.1.0.0.json +2 -2
  83. package/morph-touch/Tasks/summarize-chat-openai.1.0.0.json +27 -0
  84. package/morph-touch/Tasks/test-get-rezervation-count-by-advisor.1.0.0.json +22 -0
  85. package/morph-touch/Tasks/test-get-rezervation-instances-after-date.1.0.0.json +24 -0
  86. package/{touch → morph-touch}/Tasks/trigger-chat-room-deactivate.1.0.0.json +2 -2
  87. package/{touch → morph-touch}/Tasks/trigger-chat-room-transfer.1.0.0.json +2 -2
  88. package/{touch → morph-touch}/Tasks/trigger-chat-room-update.1.0.0.json +2 -2
  89. package/{touch → morph-touch}/Tasks/trigger-rezervation-add-invited-participant.1.0.0.json +2 -2
  90. package/{touch → morph-touch}/Tasks/trigger-rezervation-apply-update.1.0.0.json +2 -2
  91. package/{touch → morph-touch}/Tasks/trigger-rezervation-to-in-meet.1.0.0.json +2 -2
  92. package/{touch → morph-touch}/Tasks/trigger-rezervation-video-call-update.1.0.0.json +2 -2
  93. package/{touch → morph-touch}/Tasks/validate-date-for-rezervation.1.0.0.json +1 -1
  94. package/{touch → morph-touch}/Tasks/validate-slot-for-rezervation.1.0.0.json +3 -3
  95. package/{touch → morph-touch}/Tasks/validate-transfer-availability.1.0.0.json +3 -3
  96. package/{touch → morph-touch}/Workflows/absence-entry.http +21 -21
  97. package/{touch → morph-touch}/Workflows/absence-entry.json +3 -3
  98. package/{touch → morph-touch}/Workflows/add-participant-to-rezervation.http +3 -3
  99. package/{touch → morph-touch}/Workflows/add-participant-to-rezervation.json +23 -24
  100. package/{touch → morph-touch}/Workflows/chat-room.http +10 -8
  101. package/{touch → morph-touch}/Workflows/chat-room.json +37 -24
  102. package/{touch → morph-touch}/Workflows/investment-advisor.json +2 -2
  103. package/{touch → morph-touch}/Workflows/notification-sender.http +13 -13
  104. package/{touch → morph-touch}/Workflows/notification-sender.json +5 -5
  105. package/{touch → morph-touch}/Workflows/portfolio-manager.json +2 -2
  106. package/{touch → morph-touch}/Workflows/randevu-update.http +6 -6
  107. package/{touch → morph-touch}/Workflows/rezervation-start.json +16 -16
  108. package/{touch → morph-touch}/Workflows/rezervation-transfer.json +125 -22
  109. package/{touch → morph-touch}/Workflows/rezervation-update.http +6 -6
  110. package/{touch → morph-touch}/Workflows/rezervation-update.json +19 -19
  111. package/{touch → morph-touch}/Workflows/rezervation.http +6 -6
  112. package/{touch → morph-touch}/Workflows/rezervation.json +121 -180
  113. package/{touch → morph-touch}/Workflows/src/CancelAbsenceEntryForRezervationMapping.csx +1 -1
  114. package/{touch → morph-touch}/Workflows/src/CancelAbsenceForRandevuUpdateMapping.csx +1 -1
  115. package/{touch → morph-touch}/Workflows/src/ChatRoomRemoveMapping.csx +22 -1
  116. package/{touch → morph-touch}/Workflows/src/ChatRoomTransferInviteMapping.csx +21 -0
  117. package/{touch → morph-touch}/Workflows/src/ChatRoomUpdateMapping.csx +21 -0
  118. package/{touch → morph-touch}/Workflows/src/CreateAbsenceEntryForRezervationMapping.csx +1 -1
  119. package/{touch → morph-touch}/Workflows/src/CreateAbsenceForRandevuUpdateMapping.csx +1 -1
  120. package/{touch → morph-touch}/Workflows/src/CreateChatRoomForRezervationMapping.csx +12 -2
  121. package/{touch → morph-touch}/Workflows/src/CreatePermanentChatRoomMapping.csx +50 -9
  122. package/morph-touch/Workflows/src/DeactivatePermanentChatRoomFromTransferMapping.csx +133 -0
  123. package/{touch → morph-touch}/Workflows/src/EnrichRezervationsForTransferMapping.csx +16 -3
  124. package/{touch → morph-touch}/Workflows/src/ExecutePermanentChatRoomUpdateMapping.csx +23 -18
  125. package/{touch → morph-touch}/Workflows/src/ExecuteRezChatRoomTransferMapping.csx +1 -1
  126. package/{touch → morph-touch}/Workflows/src/ExecuteTransferMapping.csx +15 -12
  127. package/{touch → morph-touch}/Workflows/src/FetchAdvisorsForTransferMapping.csx +55 -7
  128. package/{touch → morph-touch}/Workflows/src/FetchPermanentChatRoomsMapping.csx +65 -2
  129. package/morph-touch/Workflows/src/FetchRoomMessagesForSummaryMapping.csx +182 -0
  130. package/{touch → morph-touch}/Workflows/src/GetChatRoomDataForRezervationMapping.csx +2 -2
  131. package/{touch → morph-touch}/Workflows/src/GetRezervationDataForAddParticipantMapping.csx +1 -1
  132. package/{touch → morph-touch}/Workflows/src/GetRezervationDataForRandevuUpdateMapping.csx +1 -1
  133. package/{touch → morph-touch}/Workflows/src/GetRezervationDataMapping.csx +2 -2
  134. package/{touch → morph-touch}/Workflows/src/GetRezervationStateForRandevuUpdateMapping.csx +1 -1
  135. package/{touch → morph-touch}/Workflows/src/GetRezervationStateMapping.csx +2 -2
  136. package/{touch → morph-touch}/Workflows/src/InvitedUserNotAllowedRule.csx +1 -1
  137. package/{touch → morph-touch}/Workflows/src/JoinUserToRoomMapping.csx +22 -1
  138. package/morph-touch/Workflows/src/NoOpGetInstancesTestMapping.csx +19 -0
  139. package/morph-touch/Workflows/src/PermanentProcessNextTerminationRule.csx +51 -0
  140. package/{touch → morph-touch}/Workflows/src/SendPushNotificationMapping.csx +2 -2
  141. package/{touch → morph-touch}/Workflows/src/SendSmsNotificationMapping.csx +1 -1
  142. package/morph-touch/Workflows/src/SendSummaryToNewRoomMapping.csx +178 -0
  143. package/morph-touch/Workflows/src/SetRoomHistoryVisibilityMapping.csx +109 -0
  144. package/{touch → morph-touch}/Workflows/src/StartChatRoomForRezervationMapping.csx +4 -3
  145. package/{touch → morph-touch}/Workflows/src/StartGetChatTokenForRezervationMapping.csx +1 -1
  146. package/morph-touch/Workflows/src/StartNewPermanentChatRoomFromTransferMapping.csx +197 -0
  147. package/{touch → morph-touch}/Workflows/src/StartNotificationForAdvisorMapping.csx +1 -1
  148. package/{touch → morph-touch}/Workflows/src/StartNotificationForRezervationFromUserInfoMapping.csx +1 -1
  149. package/{touch → morph-touch}/Workflows/src/StartNotificationForUserMapping.csx +1 -1
  150. package/{touch → morph-touch}/Workflows/src/StartPermanentChatRoomMapping.csx +5 -2
  151. package/{touch → morph-touch}/Workflows/src/StartTransferFromAbsenceEntryMapping.csx +6 -14
  152. package/{touch → morph-touch}/Workflows/src/StateInMeetRule.csx +1 -1
  153. package/morph-touch/Workflows/src/SummarizeChatWithOpenAIMapping.csx +172 -0
  154. package/{touch → morph-touch}/Workflows/src/TriggerChatRoomDeactivateMapping.csx +1 -1
  155. package/{touch → morph-touch}/Workflows/src/TriggerChatRoomTransferMapping.csx +1 -1
  156. package/{touch → morph-touch}/Workflows/src/TriggerChatRoomUpdateMapping.csx +3 -3
  157. package/{touch → morph-touch}/Workflows/src/TriggerRezervationAddInvitedParticipantMapping.csx +1 -1
  158. package/{touch → morph-touch}/Workflows/src/TriggerRezervationApplyUpdateMapping.csx +1 -1
  159. package/{touch → morph-touch}/Workflows/src/TriggerRezervationToInMeetMapping.csx +1 -1
  160. package/{touch → morph-touch}/Workflows/src/TriggerRezervationVideoCallUpdateMapping.csx +1 -1
  161. package/{touch → morph-touch}/Workflows/src/ValidateSlotForRandevuUpdateMapping.csx +29 -1
  162. package/{touch → morph-touch}/Workflows/src/ValidateSlotForRezervationMapping.csx +29 -1
  163. package/{touch → morph-touch}/Workflows/src/ValidateTransferMapping.csx +2 -2
  164. package/{touch → morph-touch}/Workflows/start-chat.json +6 -6
  165. package/{touch → morph-touch}/Workflows/start-video-call.http +3 -3
  166. package/{touch → morph-touch}/Workflows/start-video-call.json +4 -4
  167. package/package.json +1 -1
  168. package/vnext.config.json +7 -7
  169. package/burgan-tech-morph-touch-runtime-0.0.3.tgz +0 -0
  170. package/touch/Functions/get-available-slots.1.0.0.json +0 -30
  171. package/touch/Functions/get-chat-rooms.1.0.0.json +0 -28
  172. package/touch/Functions/get-rezervations.1.0.0.json +0 -26
  173. /package/{touch → morph-touch}/Extensions/.gitkeep +0 -0
  174. /package/{touch → morph-touch}/Functions/.gitkeep +0 -0
  175. /package/{touch → morph-touch}/Functions/src/CheckLivekitRoomAccessMapping.csx +0 -0
  176. /package/{touch → morph-touch}/Functions/src/GetAbsenceEntryMapping.csx +0 -0
  177. /package/{touch → morph-touch}/Functions/src/GetAdvisorStatsMapping.csx +0 -0
  178. /package/{touch → morph-touch}/Functions/src/GetCustomerInfoMapping.csx +0 -0
  179. /package/{touch → morph-touch}/Functions/src/GetMatrixSyncMapping.csx +0 -0
  180. /package/{touch → morph-touch}/Functions/src/GetRoomMessagesMapping.csx +0 -0
  181. /package/{touch → morph-touch}/Functions/src/SendCancelNotificationMapping.csx +0 -0
  182. /package/{touch → morph-touch}/Functions/src/SendRoomMessageMapping.csx +0 -0
  183. /package/{touch → morph-touch}/Schemas/.gitkeep +0 -0
  184. /package/{touch → morph-touch}/Tasks/.gitkeep +0 -0
  185. /package/{touch → morph-touch}/Views/.gitkeep +0 -0
  186. /package/{touch → morph-touch}/Workflows/.gitkeep +0 -0
  187. /package/{touch → morph-touch}/Workflows/src/AllChatRoomsSuccessRule.csx +0 -0
  188. /package/{touch → morph-touch}/Workflows/src/AlwaysTrueRule.csx +0 -0
  189. /package/{touch → morph-touch}/Workflows/src/AnyChatRoomFailedRule.csx +0 -0
  190. /package/{touch → morph-touch}/Workflows/src/AutoProcessRule.csx +0 -0
  191. /package/{touch → morph-touch}/Workflows/src/BuildRezChatRoomPlanMapping.csx +0 -0
  192. /package/{touch → morph-touch}/Workflows/src/CanStartRezervationTimerMapping.csx +0 -0
  193. /package/{touch → morph-touch}/Workflows/src/CanStartTransferMapping.csx +0 -0
  194. /package/{touch → morph-touch}/Workflows/src/ChatRoomCreatedFailedRule.csx +0 -0
  195. /package/{touch → morph-touch}/Workflows/src/ChatRoomCreatedSuccessRule.csx +0 -0
  196. /package/{touch → morph-touch}/Workflows/src/ChatRoomTransferRemoveMapping.csx +0 -0
  197. /package/{touch → morph-touch}/Workflows/src/CheckAlreadyCompletedChatRoomMapping.csx +0 -0
  198. /package/{touch → morph-touch}/Workflows/src/CheckDuplicatePortfolioManagerMapping.csx +0 -0
  199. /package/{touch → morph-touch}/Workflows/src/CheckDuplicateRezervationMapping.csx +0 -0
  200. /package/{touch → morph-touch}/Workflows/src/CheckExistingPermanentChatRoomMapping.csx +0 -0
  201. /package/{touch → morph-touch}/Workflows/src/CheckRandevuTimeMapping.csx +0 -0
  202. /package/{touch → morph-touch}/Workflows/src/CheckRezervationStateActiveOrInMeetRule.csx +0 -0
  203. /package/{touch → morph-touch}/Workflows/src/CustomerControlToEndRule.csx +0 -0
  204. /package/{touch → morph-touch}/Workflows/src/DetermineTransferTypeMapping.csx +0 -0
  205. /package/{touch → morph-touch}/Workflows/src/FetchAbsenceEntriesForTransferMapping.csx +0 -0
  206. /package/{touch → morph-touch}/Workflows/src/FetchRezervationsForTransferMapping.csx +0 -0
  207. /package/{touch → morph-touch}/Workflows/src/GetChatTokenMapping.csx +0 -0
  208. /package/{touch → morph-touch}/Workflows/src/GetUserInfoForRezervationMapping.csx +0 -0
  209. /package/{touch → morph-touch}/Workflows/src/GetVideoCallUrlMapping.csx +0 -0
  210. /package/{touch → morph-touch}/Workflows/src/HasChangedAdvisorRule.csx +0 -0
  211. /package/{touch → morph-touch}/Workflows/src/HasChatIntegrationRule.csx +0 -0
  212. /package/{touch → morph-touch}/Workflows/src/HasExistingPermanentRoomRule.csx +0 -0
  213. /package/{touch → morph-touch}/Workflows/src/InviteAdvisorForRandevuUpdateMapping.csx +0 -0
  214. /package/{touch → morph-touch}/Workflows/src/InviteNewAdvisorToRezervationRoomMapping.csx +0 -0
  215. /package/{touch → morph-touch}/Workflows/src/InviteNewParticipantToRandevuRoomMapping.csx +0 -0
  216. /package/{touch → morph-touch}/Workflows/src/InvitedUserMergeMapping.csx +0 -0
  217. /package/{touch → morph-touch}/Workflows/src/InvitedUserNotInMeetRule.csx +0 -0
  218. /package/{touch → morph-touch}/Workflows/src/IsNotfSentRule.csx +0 -0
  219. /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForAddParticipantMapping.csx +0 -0
  220. /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForRandevuStartMapping.csx +0 -0
  221. /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForRezervationMapping.csx +0 -0
  222. /package/{touch → morph-touch}/Workflows/src/JoinMatrixRoomMapping.csx +0 -0
  223. /package/{touch → morph-touch}/Workflows/src/LoginForAddParticipantChatMapping.csx +0 -0
  224. /package/{touch → morph-touch}/Workflows/src/LoginForRandevuStartChatMapping.csx +0 -0
  225. /package/{touch → morph-touch}/Workflows/src/MergeRezervationUpdateMapping.csx +0 -0
  226. /package/{touch → morph-touch}/Workflows/src/MergeTargetAdvisorForTransferMapping.csx +0 -0
  227. /package/{touch → morph-touch}/Workflows/src/MergeUpdateBodyForRandevuUpdateMapping.csx +0 -0
  228. /package/{touch → morph-touch}/Workflows/src/NoExistingPermanentRoomRule.csx +0 -0
  229. /package/{touch → morph-touch}/Workflows/src/NotificationCompleteAlwaysRule.csx +0 -0
  230. /package/{touch → morph-touch}/Workflows/src/NotificationCompleteFromPendingRule.csx +0 -0
  231. /package/{touch → morph-touch}/Workflows/src/NotificationCompleteFromSmsRule.csx +0 -0
  232. /package/{touch → morph-touch}/Workflows/src/NotificationPushFromPendingRule.csx +0 -0
  233. /package/{touch → morph-touch}/Workflows/src/NotificationPushFromSmsRule.csx +0 -0
  234. /package/{touch → morph-touch}/Workflows/src/NotificationSmsPendingRule.csx +0 -0
  235. /package/{touch → morph-touch}/Workflows/src/PermanentDoneRule.csx +0 -0
  236. /package/{touch → morph-touch}/Workflows/src/PermanentProcessNextRule.csx +0 -0
  237. /package/{touch → morph-touch}/Workflows/src/RezChatRoomProcessNextRule.csx +0 -0
  238. /package/{touch → morph-touch}/Workflows/src/RezChatRoomsDoneRule.csx +0 -0
  239. /package/{touch → morph-touch}/Workflows/src/SetChatRoomStatusActiveMapping.csx +0 -0
  240. /package/{touch → morph-touch}/Workflows/src/SetChatRoomStatusDeactiveMapping.csx +0 -0
  241. /package/{touch → morph-touch}/Workflows/src/SetPreviousAdvisorMapping.csx +0 -0
  242. /package/{touch → morph-touch}/Workflows/src/SetUserFromHeadersForRezervationMapping.csx +0 -0
  243. /package/{touch → morph-touch}/Workflows/src/SlotAvailableRule.csx +0 -0
  244. /package/{touch → morph-touch}/Workflows/src/SlotUnavailableRule.csx +0 -0
  245. /package/{touch → morph-touch}/Workflows/src/StartVideoCallCustomerSubFlowMapping.csx +0 -0
  246. /package/{touch → morph-touch}/Workflows/src/StartVideoCallForInvitedParticipantMapping.csx +0 -0
  247. /package/{touch → morph-touch}/Workflows/src/StartVideoCallForRandevuStartMapping.csx +0 -0
  248. /package/{touch → morph-touch}/Workflows/src/StartVideoCallStaffSubFlowMapping.csx +0 -0
  249. /package/{touch → morph-touch}/Workflows/src/StateActiveForUpdateRule.csx +0 -0
  250. /package/{touch → morph-touch}/Workflows/src/StateActiveRule.csx +0 -0
  251. /package/{touch → morph-touch}/Workflows/src/StateNotActiveForUpdateRule.csx +0 -0
  252. /package/{touch → morph-touch}/Workflows/src/StateNotActiveOrInMeetRule.csx +0 -0
  253. /package/{touch → morph-touch}/Workflows/src/StatusCustomerEnterRule.csx +0 -0
  254. /package/{touch → morph-touch}/Workflows/src/StatusStaffEnterRule.csx +0 -0
  255. /package/{touch → morph-touch}/Workflows/src/SyncWorkingHoursRule.csx +0 -0
  256. /package/{touch → morph-touch}/Workflows/src/TokenSuccessRule.csx +0 -0
  257. /package/{touch → morph-touch}/Workflows/src/TransferAllDoneRule.csx +0 -0
  258. /package/{touch → morph-touch}/Workflows/src/TransferHasInvalidRule.csx +0 -0
  259. /package/{touch → morph-touch}/Workflows/src/TransferProcessNextRule.csx +0 -0
  260. /package/{touch → morph-touch}/Workflows/src/ValidateDateForRezervationMapping.csx +0 -0
  261. /package/{touch → morph-touch}/Workflows/src/VideoCallUrlUpdateMergeMapping.csx +0 -0
@@ -26,10 +26,11 @@ public class FetchAdvisorsForTransferMapping : ScriptBase, IMapping
26
26
  throw new InvalidOperationException("Instance data is required");
27
27
 
28
28
  var advisorType = GetString(data, "advisorType");
29
+ advisorType = ResolveAdvisorWorkflowKey(advisorType, GetString(data, "sourceAdvisorId"));
29
30
  if (string.IsNullOrEmpty(advisorType))
30
31
  throw new ArgumentException("advisorType is required.", "advisorType");
31
32
 
32
- serviceTask.SetMethodName($"api/v1/touch/workflows/{advisorType}/instances");
33
+ serviceTask.SetMethodName($"api/v1/morph-touch/workflows/{advisorType}/instances");
33
34
 
34
35
  var conditions = new List<string>
35
36
  {
@@ -67,8 +68,8 @@ public class FetchAdvisorsForTransferMapping : ScriptBase, IMapping
67
68
  }
68
69
 
69
70
  var advisorType = GetString(data, "advisorType");
70
- var responseData = body?.data;
71
- var items = responseData?.items;
71
+ advisorType = ResolveAdvisorWorkflowKey(advisorType, GetString(data, "sourceAdvisorId"));
72
+ var items = GetWorkflowInstanceItems(body);
72
73
 
73
74
  var advisorKeys = new List<string>();
74
75
 
@@ -77,12 +78,12 @@ public class FetchAdvisorsForTransferMapping : ScriptBase, IMapping
77
78
  foreach (var item in items)
78
79
  {
79
80
  if (item == null) continue;
80
- var domain = GetString(item, "domain") ?? "touch";
81
- var key = GetString(item, "key");
81
+ var domain = GetString(item, "domain") ?? GetString(item, "Domain") ?? "morph-touch";
82
+ var key = GetInstanceItemKey(item);
82
83
  if (!string.IsNullOrEmpty(key))
83
84
  {
84
- var fullKey = key.Contains(".") ? key : $"{domain}.{advisorType}.{key}";
85
- advisorKeys.Add(fullKey);
85
+ //var fullKey = key.Contains(".") ? key : $"{key}";
86
+ advisorKeys.Add(key);
86
87
  }
87
88
  }
88
89
  }
@@ -114,6 +115,53 @@ public class FetchAdvisorsForTransferMapping : ScriptBase, IMapping
114
115
  }
115
116
  }
116
117
 
118
+ /// <summary>
119
+ /// Ensures we query the same advisor workflow as the source (IA vs PM), even if instance
120
+ /// data.advisorType was wrong or task default pointed at portfolio-manager only.
121
+ /// </summary>
122
+ /// <summary>
123
+ /// Runtime may return { data: { items } } or { data: { data: { items } } } (same as wealth-app extractItems).
124
+ /// </summary>
125
+ private static System.Collections.IEnumerable GetWorkflowInstanceItems(dynamic body)
126
+ {
127
+ if (body == null) return null;
128
+ try
129
+ {
130
+ dynamic responseData = body.data ?? body.Data;
131
+ if (responseData == null) return null;
132
+ var items = responseData.items ?? responseData.Items;
133
+ if (items != null) return items;
134
+ dynamic inner = responseData.data ?? responseData.Data;
135
+ if (inner != null)
136
+ {
137
+ items = inner.items ?? inner.Items;
138
+ if (items != null) return items;
139
+ }
140
+ }
141
+ catch { }
142
+ return null;
143
+ }
144
+
145
+ private string GetInstanceItemKey(dynamic item)
146
+ {
147
+ if (item == null) return null;
148
+ var key = GetString(item, "key");
149
+ if (!string.IsNullOrEmpty(key)) return key;
150
+ return GetString(item, "Key");
151
+ }
152
+
153
+ private static string ResolveAdvisorWorkflowKey(string advisorType, string sourceAdvisorId)
154
+ {
155
+ if (!string.IsNullOrEmpty(sourceAdvisorId))
156
+ {
157
+ if (sourceAdvisorId.IndexOf("investment-advisor", StringComparison.OrdinalIgnoreCase) >= 0)
158
+ return "investment-advisor";
159
+ if (sourceAdvisorId.IndexOf("portfolio-manager", StringComparison.OrdinalIgnoreCase) >= 0)
160
+ return "portfolio-manager";
161
+ }
162
+ return advisorType;
163
+ }
164
+
117
165
  private string GetString(dynamic obj, string name)
118
166
  {
119
167
  if (obj == null) return null;
@@ -1,5 +1,6 @@
1
1
  using System;
2
2
  using System.Collections.Generic;
3
+ using System.Linq;
3
4
  using System.Threading.Tasks;
4
5
  using BBT.Workflow.Scripting;
5
6
  using BBT.Workflow.Definitions;
@@ -34,7 +35,7 @@ public class FetchPermanentChatRoomsMapping : ScriptBase, IMapping
34
35
  {
35
36
  "{\"attributes\":{\"advisorId\":{\"eq\":\"" + escapedAdvisor + "\"}}}",
36
37
  "{\"attributes\":{\"roomType\":{\"ne\":\"rezervation\"}}}",
37
- "{\"or\":[{\"currentState\":{\"eq\":\"activated\"}},{\"currentState\":{\"eq\":\"deactivated\"}}]}"
38
+ "{\"currentState\":{\"eq\":\"activated\"}}"
38
39
  };
39
40
 
40
41
  var filterJson = "{\"and\":[" + string.Join(",", filterParts) + "]}";
@@ -71,12 +72,17 @@ public class FetchPermanentChatRoomsMapping : ScriptBase, IMapping
71
72
  if (attrs != null && HasProperty(attrs, "chatIntegration") && attrs.chatIntegration != null)
72
73
  roomId = GetString(attrs.chatIntegration, "roomId");
73
74
 
75
+ var advisorTypeAttr = attrs != null ? GetString(attrs, "advisorType") : null;
76
+ var occupiedAdvisorIds = BuildOccupiedAdvisorIds(attrs);
77
+
74
78
  permanentChatRooms.Add(new Dictionary<string, object>
75
79
  {
76
80
  ["chatRoomKey"] = key,
77
81
  ["user"] = user,
78
82
  ["roomType"] = roomType,
79
- ["roomId"] = roomId
83
+ ["roomId"] = roomId,
84
+ ["advisorType"] = advisorTypeAttr,
85
+ ["occupiedAdvisorIds"] = occupiedAdvisorIds
80
86
  });
81
87
  }
82
88
  }
@@ -97,6 +103,63 @@ public class FetchPermanentChatRoomsMapping : ScriptBase, IMapping
97
103
  return Task.FromResult(new ScriptResponse { Data = result });
98
104
  }
99
105
 
106
+ /// <summary>Primary advisor, members array, and memberWithoutArray keys — for excluding already-in-room advisors from transfer pickers.</summary>
107
+ private List<string> BuildOccupiedAdvisorIds(dynamic attrs)
108
+ {
109
+ var set = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
110
+ if (attrs == null)
111
+ return new List<string>();
112
+
113
+ var primary = GetString(attrs, "advisorId");
114
+ if (!string.IsNullOrWhiteSpace(primary))
115
+ set.Add(primary.Trim());
116
+
117
+ if (HasProperty(attrs, "members") && attrs.members != null)
118
+ {
119
+ foreach (var m in attrs.members)
120
+ {
121
+ var mid = GetString(m, "memberId");
122
+ if (string.IsNullOrWhiteSpace(mid))
123
+ mid = GetString(m, "advisorId");
124
+ if (!string.IsNullOrWhiteSpace(mid))
125
+ set.Add(mid.Trim());
126
+ }
127
+ }
128
+
129
+ AddKeysFromMemberWithoutArray(attrs, set);
130
+
131
+ return set.OrderBy(x => x, StringComparer.OrdinalIgnoreCase).ToList();
132
+ }
133
+
134
+ private void AddKeysFromMemberWithoutArray(dynamic attrs, HashSet<string> set)
135
+ {
136
+ if (attrs == null || !HasProperty(attrs, "memberWithoutArray") || attrs.memberWithoutArray == null)
137
+ return;
138
+ try
139
+ {
140
+ var mwa = attrs.memberWithoutArray;
141
+ if (mwa is System.Collections.Generic.IDictionary<string, object> d)
142
+ {
143
+ foreach (var k in d.Keys)
144
+ {
145
+ if (!string.IsNullOrWhiteSpace(k))
146
+ set.Add(k.Trim());
147
+ }
148
+ return;
149
+ }
150
+ if (mwa is System.Collections.IDictionary raw)
151
+ {
152
+ foreach (System.Collections.DictionaryEntry de in raw)
153
+ {
154
+ var k = de.Key?.ToString();
155
+ if (!string.IsNullOrWhiteSpace(k))
156
+ set.Add(k.Trim());
157
+ }
158
+ }
159
+ }
160
+ catch { }
161
+ }
162
+
100
163
  private string GetString(dynamic obj, string name)
101
164
  {
102
165
  if (obj == null) return null;
@@ -0,0 +1,182 @@
1
+ using System;
2
+ using System.Collections.Generic;
3
+ using System.Linq;
4
+ using System.Threading.Tasks;
5
+ using BBT.Workflow.Scripting;
6
+ using BBT.Workflow.Definitions;
7
+
8
+ /// <summary>
9
+ /// Mapping for get-matrix-room-messages HttpTask (Type 6) in the termination transfer loop.
10
+ /// Reads roomId from permanentChatRooms (matched by chatRoomKey) and fetches the last 100 messages.
11
+ /// Stores formatted messages in lastRoomMessages for AI summarization.
12
+ /// </summary>
13
+ public class FetchRoomMessagesForSummaryMapping : ScriptBase, IMapping
14
+ {
15
+ public async Task<ScriptResponse> InputHandler(WorkflowTask task, ScriptContext context)
16
+ {
17
+ var httpTask = task as HttpTask;
18
+ if (httpTask == null)
19
+ throw new InvalidOperationException("Task must be an HttpTask");
20
+
21
+ var data = context.Instance?.Data;
22
+ if (data == null)
23
+ return new ScriptResponse { Data = new { skipped = true, reason = "no-instance-data" } };
24
+
25
+ var roomId = GetString(data, "lastDeactivatedRoomId");
26
+ if (string.IsNullOrWhiteSpace(roomId))
27
+ return new ScriptResponse { Data = new { skipped = true, reason = "no-roomId" } };
28
+
29
+ string user = null;
30
+ var permanentRoomPlan = data.permanentRoomPlan;
31
+ if (permanentRoomPlan != null)
32
+ {
33
+ int processedIndex = 0;
34
+ if (HasProperty(data, "permanentProcessedIndex"))
35
+ int.TryParse(data.permanentProcessedIndex?.ToString() ?? "0", out processedIndex);
36
+
37
+ var items = permanentRoomPlan as IEnumerable<object>;
38
+ if (items != null)
39
+ {
40
+ var itemsList = items.ToList();
41
+ if (processedIndex < itemsList.Count)
42
+ {
43
+ dynamic currentItem = itemsList[processedIndex];
44
+ var chatRoomKey = currentItem?.chatRoomKey?.ToString();
45
+ if (!string.IsNullOrEmpty(chatRoomKey))
46
+ user = LookupUser(data, chatRoomKey);
47
+ }
48
+ }
49
+ }
50
+
51
+ if (string.IsNullOrWhiteSpace(user))
52
+ return new ScriptResponse { Data = new { skipped = true, reason = "no-user" } };
53
+
54
+ var matrixBaseUrl = await GetSecretAsync("vnext-secret", "workflow-secret", "MatrixBaseUrl");
55
+ if (string.IsNullOrWhiteSpace(matrixBaseUrl))
56
+ return new ScriptResponse { Data = new { skipped = true, reason = "no-MatrixBaseUrl" } };
57
+
58
+ var fullUrl = matrixBaseUrl.TrimEnd('/') +
59
+ "/_matrix/client/v3/rooms/" + Uri.EscapeDataString(roomId) +
60
+ "/messages?dir=b&limit=100";
61
+
62
+ httpTask.SetUrl(fullUrl);
63
+ httpTask.SetHeaders(new Dictionary<string, string>
64
+ {
65
+ ["Accept"] = "application/json",
66
+ ["X-Matrix-User"] = user
67
+ });
68
+
69
+ return new ScriptResponse();
70
+ }
71
+
72
+ public Task<ScriptResponse> OutputHandler(ScriptContext context)
73
+ {
74
+ var data = context.Instance?.Data;
75
+ var result = new Dictionary<string, object>();
76
+ CopyAllFields(result, data);
77
+
78
+ try
79
+ {
80
+ var response = context.Body;
81
+ var bodyData = response?.data;
82
+
83
+ string errcode = GetString(bodyData, "errcode");
84
+ if (!string.IsNullOrEmpty(errcode))
85
+ {
86
+ result["lastRoomMessages"] = new List<string>();
87
+ result["lastRoomMessagesSuccess"] = false;
88
+ return Task.FromResult(new ScriptResponse { Data = result });
89
+ }
90
+
91
+ var messages = new List<string>();
92
+ if (bodyData != null && HasProperty(bodyData, "chunk") && bodyData.chunk != null)
93
+ {
94
+ foreach (var evt in bodyData.chunk)
95
+ {
96
+ var evtType = GetString(evt, "type");
97
+ if (evtType != "m.room.message") continue;
98
+
99
+ var content = evt?.content;
100
+ if (content == null) continue;
101
+
102
+ string body = GetString(content, "body");
103
+ string sender = GetString(evt, "sender");
104
+ if (!string.IsNullOrWhiteSpace(body) && !string.IsNullOrWhiteSpace(sender))
105
+ messages.Add(sender + ": " + body);
106
+ }
107
+ }
108
+
109
+ messages.Reverse();
110
+ result["lastRoomMessages"] = messages;
111
+ result["lastRoomMessagesSuccess"] = messages.Count > 0;
112
+ }
113
+ catch
114
+ {
115
+ result["lastRoomMessages"] = new List<string>();
116
+ result["lastRoomMessagesSuccess"] = false;
117
+ }
118
+
119
+ return Task.FromResult(new ScriptResponse { Data = result });
120
+ }
121
+
122
+ private string LookupUser(dynamic data, string chatRoomKey)
123
+ {
124
+ if (!HasProperty(data, "permanentChatRooms") || data.permanentChatRooms == null)
125
+ return null;
126
+
127
+ foreach (var room in data.permanentChatRooms)
128
+ {
129
+ var key = GetString(room, "chatRoomKey");
130
+ if (string.Equals(key, chatRoomKey, StringComparison.OrdinalIgnoreCase))
131
+ return GetString(room, "user");
132
+ }
133
+ return null;
134
+ }
135
+
136
+ private string GetString(dynamic obj, string name)
137
+ {
138
+ if (obj == null) return null;
139
+ try
140
+ {
141
+ if (HasProperty(obj, name))
142
+ {
143
+ var v = GetPropertyValue(obj, name);
144
+ return v?.ToString()?.Trim();
145
+ }
146
+ }
147
+ catch { }
148
+ return null;
149
+ }
150
+
151
+ private void CopyAllFields(Dictionary<string, object> result, dynamic data)
152
+ {
153
+ CopyIfPresent(result, data, "transferPlan");
154
+ CopyIfPresent(result, data, "validationResult");
155
+ CopyIfPresent(result, data, "sourceAdvisorId");
156
+ CopyIfPresent(result, data, "advisorType");
157
+ CopyIfPresent(result, data, "startDate");
158
+ CopyIfPresent(result, data, "endDate");
159
+ CopyIfPresent(result, data, "transferType");
160
+ CopyIfPresent(result, data, "enrichedRezervations");
161
+ CopyIfPresent(result, data, "rezChatRoomPlan");
162
+ CopyIfPresent(result, data, "permanentRoomPlan");
163
+ CopyIfPresent(result, data, "permanentChatRooms");
164
+ CopyIfPresent(result, data, "permanentProcessedIndex");
165
+ CopyIfPresent(result, data, "lastPermanentDeactivateSuccess");
166
+ CopyIfPresent(result, data, "lastDeactivatedRoomId");
167
+ }
168
+
169
+ private void CopyIfPresent(Dictionary<string, object> target, dynamic source, string name)
170
+ {
171
+ if (source == null) return;
172
+ try
173
+ {
174
+ if (HasProperty(source, name))
175
+ {
176
+ var v = GetPropertyValue(source, name);
177
+ if (v != null) target[name] = v;
178
+ }
179
+ }
180
+ catch { }
181
+ }
182
+ }
@@ -6,7 +6,7 @@ using BBT.Workflow.Definitions;
6
6
 
7
7
  /// <summary>
8
8
  /// Mapping for get-chat-room-data-for-rezervation DaprServiceTask.
9
- /// Calls api/v1/touch/workflows/chat-room/instances/{chatRoomInstanceKey}/functions/data
9
+ /// Calls api/v1/morph-touch/workflows/chat-room/instances/{chatRoomInstanceKey}/functions/data
10
10
  /// to get chat-room instance data (e.g. chatIntegration). Merges chatIntegration into flow instance for trigger-rezervation-to-in-meet.
11
11
  /// </summary>
12
12
  public class GetChatRoomDataForRezervationMapping : ScriptBase, IMapping
@@ -26,7 +26,7 @@ public class GetChatRoomDataForRezervationMapping : ScriptBase, IMapping
26
26
  if (string.IsNullOrWhiteSpace(chatRoomInstanceKey))
27
27
  throw new InvalidOperationException("chatRoomInstanceKey is required (set by previous start-chat-room-for-rezervation task)");
28
28
 
29
- var path = $"api/v1/touch/workflows/chat-room/instances/{Uri.EscapeDataString(chatRoomInstanceKey)}/functions/data";
29
+ var path = $"api/v1/morph-touch/workflows/chat-room/instances/{Uri.EscapeDataString(chatRoomInstanceKey)}/functions/data";
30
30
  serviceTask.SetMethodName(path);
31
31
 
32
32
  return Task.FromResult(new ScriptResponse());
@@ -25,7 +25,7 @@ public class GetRezervationDataForAddParticipantMapping : ScriptBase, IMapping
25
25
  if (string.IsNullOrWhiteSpace(randevuKey))
26
26
  throw new InvalidOperationException("randevuKey is required");
27
27
 
28
- var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
28
+ var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
29
29
  serviceTask.SetMethodName(path);
30
30
 
31
31
  return Task.FromResult(new ScriptResponse());
@@ -24,7 +24,7 @@ public class GetRezervationDataForRandevuUpdateMapping : ScriptBase, IMapping
24
24
  if (string.IsNullOrWhiteSpace(randevuKey))
25
25
  throw new InvalidOperationException("randevuKey is required");
26
26
 
27
- var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
27
+ var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
28
28
  serviceTask.SetMethodName(path);
29
29
 
30
30
  return Task.FromResult(new ScriptResponse());
@@ -6,7 +6,7 @@ using BBT.Workflow.Definitions;
6
6
 
7
7
  /// <summary>
8
8
  /// Mapping for get-rezervation-data-task DaprServiceTask.
9
- /// Calls api/v1/touch/workflows/rezervation/instances/{randevuKey}/functions/data
9
+ /// Calls api/v1/morph-touch/workflows/rezervation/instances/{randevuKey}/functions/data
10
10
  /// to get user, advisor, startDateTime, chatIntegration. Merges into flow instance.
11
11
  /// </summary>
12
12
  public class GetRezervationDataMapping : ScriptBase, IMapping
@@ -26,7 +26,7 @@ public class GetRezervationDataMapping : ScriptBase, IMapping
26
26
  if (string.IsNullOrWhiteSpace(randevuKey))
27
27
  throw new InvalidOperationException("randevuKey is required");
28
28
 
29
- var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
29
+ var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
30
30
  serviceTask.SetMethodName(path);
31
31
 
32
32
  return Task.FromResult(new ScriptResponse());
@@ -24,7 +24,7 @@ public class GetRezervationStateForRandevuUpdateMapping : ScriptBase, IMapping
24
24
  if (string.IsNullOrWhiteSpace(randevuKey))
25
25
  throw new InvalidOperationException("randevuKey is required");
26
26
 
27
- var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/state";
27
+ var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/state";
28
28
  serviceTask.SetMethodName(path);
29
29
 
30
30
  return Task.FromResult(new ScriptResponse());
@@ -6,7 +6,7 @@ using BBT.Workflow.Definitions;
6
6
 
7
7
  /// <summary>
8
8
  /// Mapping for get-rezervation-state-task DaprServiceTask.
9
- /// Calls api/v1/touch/workflows/rezervation/instances/{randevuKey}/functions/state
9
+ /// Calls api/v1/morph-touch/workflows/rezervation/instances/{randevuKey}/functions/state
10
10
  /// State response: { "state": "active", "status": "A", "transitions": [...], ... } - NO user, advisor, chatIntegration.
11
11
  /// Output: state only. Use get-rezervation-data-task for user, advisor, startDateTime, chatIntegration.
12
12
  /// </summary>
@@ -27,7 +27,7 @@ public class GetRezervationStateMapping : ScriptBase, IMapping
27
27
  if (string.IsNullOrWhiteSpace(randevuKey))
28
28
  throw new InvalidOperationException("randevuKey is required");
29
29
 
30
- var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/state";
30
+ var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/state";
31
31
  serviceTask.SetMethodName(path);
32
32
 
33
33
  return Task.FromResult(new ScriptResponse());
@@ -36,7 +36,7 @@ public class InvitedUserNotAllowedRule : ScriptBase, IConditionMapping
36
36
  if (!HasProperty(source, "invitedUser")) return new List<string>();
37
37
  var arr = source.invitedUser;
38
38
  if (arr == null) return new List<string>();
39
- var list = arr as IEnumerable;
39
+ var list = arr as System.Collections.IEnumerable;
40
40
  if (list == null || list is string) return new List<string>();
41
41
  var result = new List<string>();
42
42
  foreach (var item in list)
@@ -86,6 +86,8 @@ public class JoinUserToRoomMapping : ScriptBase, IMapping
86
86
  var startDateTime = GetString(data, "startDateTime");
87
87
  var endDateTime = GetString(data, "endDateTime");
88
88
 
89
+ var memberWithoutArray = BuildMemberWithoutArray(members);
90
+
89
91
  result.Data = new
90
92
  {
91
93
  user,
@@ -95,7 +97,8 @@ public class JoinUserToRoomMapping : ScriptBase, IMapping
95
97
  roomType,
96
98
  startDateTime,
97
99
  endDateTime,
98
- members = members
100
+ members = members,
101
+ memberWithoutArray = memberWithoutArray
99
102
  };
100
103
 
101
104
  return Task.FromResult(result);
@@ -115,4 +118,22 @@ public class JoinUserToRoomMapping : ScriptBase, IMapping
115
118
  catch { }
116
119
  return null;
117
120
  }
121
+
122
+ private static Dictionary<string, string> BuildMemberWithoutArray(IEnumerable<object> members)
123
+ {
124
+ var map = new Dictionary<string, string>();
125
+ if (members == null) return map;
126
+ foreach (dynamic m in members)
127
+ {
128
+ try
129
+ {
130
+ if (m == null) continue;
131
+ var mid = m.memberId?.ToString() ?? m.advisorId?.ToString();
132
+ if (string.IsNullOrWhiteSpace(mid)) continue;
133
+ map[mid] = m.role?.ToString() ?? "";
134
+ }
135
+ catch { }
136
+ }
137
+ return map;
138
+ }
118
139
  }
@@ -0,0 +1,19 @@
1
+ using System.Threading.Tasks;
2
+ using BBT.Workflow.Scripting;
3
+ using BBT.Workflow.Definitions;
4
+
5
+ /// <summary>
6
+ /// No-op mapping for temporary GetInstances (type 15) test tasks on absence-entry start.
7
+ /// </summary>
8
+ public class NoOpGetInstancesTestMapping : ScriptBase, IMapping
9
+ {
10
+ public Task<ScriptResponse> InputHandler(WorkflowTask task, ScriptContext context)
11
+ {
12
+ return Task.FromResult(new ScriptResponse());
13
+ }
14
+
15
+ public Task<ScriptResponse> OutputHandler(ScriptContext context)
16
+ {
17
+ return Task.FromResult(new ScriptResponse { Data = new { success = true, items = context.Body.data } });
18
+ }
19
+ }
@@ -0,0 +1,51 @@
1
+ using System;
2
+ using System.Threading.Tasks;
3
+ using BBT.Workflow.Scripting;
4
+
5
+ /// <summary>
6
+ /// Condition for process-next-permanent-termination auto transition in updating-permanent-chatrooms state.
7
+ /// Rule: transferType == "termination" AND permanentProcessedIndex less than permanentRoomPlan.Count
8
+ /// </summary>
9
+ public class PermanentProcessNextTerminationRule : ScriptBase, IConditionMapping
10
+ {
11
+ public Task<bool> Handler(ScriptContext context)
12
+ {
13
+ try
14
+ {
15
+ if (context?.Instance?.Data == null)
16
+ return Task.FromResult(false);
17
+
18
+ var data = context.Instance.Data;
19
+
20
+ if (!HasProperty(data, "transferType") || data.transferType == null)
21
+ return Task.FromResult(false);
22
+
23
+ var transferType = data.transferType?.ToString()?.Trim();
24
+ if (!string.Equals(transferType, "termination", StringComparison.OrdinalIgnoreCase))
25
+ return Task.FromResult(false);
26
+
27
+ if (!HasProperty(data, "permanentRoomPlan") || data.permanentRoomPlan == null)
28
+ return Task.FromResult(false);
29
+
30
+ var plan = data.permanentRoomPlan as System.Collections.IEnumerable;
31
+ if (plan == null)
32
+ return Task.FromResult(false);
33
+
34
+ int totalCount = 0;
35
+ foreach (var item in plan) totalCount++;
36
+
37
+ if (totalCount == 0)
38
+ return Task.FromResult(false);
39
+
40
+ int processedIndex = 0;
41
+ if (HasProperty(data, "permanentProcessedIndex"))
42
+ int.TryParse(data.permanentProcessedIndex?.ToString() ?? "0", out processedIndex);
43
+
44
+ return Task.FromResult(processedIndex < totalCount);
45
+ }
46
+ catch (Exception)
47
+ {
48
+ return Task.FromResult(false);
49
+ }
50
+ }
51
+ }
@@ -74,12 +74,12 @@ public class SendPushNotificationMapping : ScriptBase, IMapping
74
74
  content,
75
75
  customerNo,
76
76
  customParameters = (string)null,
77
- tags = new string[] { "touch", "notification", "reservation" },
77
+ tags = new string[] { "morph-touch", "notification", "reservation" },
78
78
  saveInbox = true,
79
79
  notificationType = "push",
80
80
  process = new
81
81
  {
82
- name = "touch",
82
+ name = "morph-touch",
83
83
  itemId = reservationKey ?? "",
84
84
  action = "notification-sender",
85
85
  identity = "system"
@@ -72,7 +72,7 @@ public class SendSmsNotificationMapping : ScriptBase, IMapping
72
72
  instantReminder = false,
73
73
  process = new
74
74
  {
75
- name = "touch",
75
+ name = "morph-touch",
76
76
  itemId = reservationKey ?? "",
77
77
  action = "notification-sender",
78
78
  identity = "system"