@burgan-tech/morph-touch-runtime 0.0.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.
Files changed (244) hide show
  1. package/LICENSE +21 -0
  2. package/burgan-tech-morph-touch-runtime-0.0.2.tgz +0 -0
  3. package/package.json +21 -0
  4. package/touch/Extensions/.gitkeep +0 -0
  5. package/touch/Functions/.gitkeep +0 -0
  6. package/touch/Functions/check-livekit-room-access.1.0.0.json +28 -0
  7. package/touch/Functions/check-livekit-room-access.http +44 -0
  8. package/touch/Functions/get-absence-entry.1.0.0.json +28 -0
  9. package/touch/Functions/get-advisor-stats.1.0.0.json +27 -0
  10. package/touch/Functions/get-available-slots.1.0.0.json +30 -0
  11. package/touch/Functions/get-available-slots.http +29 -0
  12. package/touch/Functions/get-chat-rooms.1.0.0.json +28 -0
  13. package/touch/Functions/get-chat-rooms.http +62 -0
  14. package/touch/Functions/get-customer-info.1.0.0.json +27 -0
  15. package/touch/Functions/get-matrix-sync.1.0.0.json +28 -0
  16. package/touch/Functions/get-rezervations.1.0.0.json +26 -0
  17. package/touch/Functions/get-rezervations.http +59 -0
  18. package/touch/Functions/get-room-messages.1.0.0.json +29 -0
  19. package/touch/Functions/get-room-messages.http +45 -0
  20. package/touch/Functions/rezervation-transfer.http +118 -0
  21. package/touch/Functions/send-room-message.1.0.0.json +29 -0
  22. package/touch/Functions/src/CheckLivekitRoomAccessMapping.csx +238 -0
  23. package/touch/Functions/src/GetAbsenceEntryMapping.csx +225 -0
  24. package/touch/Functions/src/GetAdvisorStatsMapping.csx +190 -0
  25. package/touch/Functions/src/GetAvailableSlotsMapping.csx +468 -0
  26. package/touch/Functions/src/GetChatRoomsMapping.csx +202 -0
  27. package/touch/Functions/src/GetCustomerInfoMapping.csx +140 -0
  28. package/touch/Functions/src/GetMatrixSyncMapping.csx +197 -0
  29. package/touch/Functions/src/GetRezervationsMapping.csx +162 -0
  30. package/touch/Functions/src/GetRoomMessagesMapping.csx +165 -0
  31. package/touch/Functions/src/SendCancelNotificationMapping.csx +63 -0
  32. package/touch/Functions/src/SendRoomMessageMapping.csx +131 -0
  33. package/touch/Schemas/.gitkeep +0 -0
  34. package/touch/Schemas/absence-entry.1.0.0.json +232 -0
  35. package/touch/Schemas/advisor-chat-rooms.1.0.0.json +62 -0
  36. package/touch/Schemas/chat-room.1.0.0.json +110 -0
  37. package/touch/Schemas/notification-sender.1.0.0.json +159 -0
  38. package/touch/Schemas/portfolio-manager.1.0.0.json +63 -0
  39. package/touch/Schemas/rezervation.1.0.0.json +102 -0
  40. package/touch/Tasks/.gitkeep +0 -0
  41. package/touch/Tasks/cancel-absence-entry-for-rezervation.1.0.0.json +21 -0
  42. package/touch/Tasks/check-already-completed-chat-room.1.0.0.json +24 -0
  43. package/touch/Tasks/check-duplicate-portfolio-manager.1.0.0.json +23 -0
  44. package/touch/Tasks/check-duplicate-rezervation.1.0.0.json +23 -0
  45. package/touch/Tasks/check-existing-permanent-chat-room.1.0.0.json +21 -0
  46. package/touch/Tasks/check-randevu-time.1.0.0.json +17 -0
  47. package/touch/Tasks/create-permanent-chat-room.1.0.0.json +28 -0
  48. package/touch/Tasks/determine-transfer-type.1.0.0.json +16 -0
  49. package/touch/Tasks/enrich-rezervations-for-transfer.1.0.0.json +23 -0
  50. package/touch/Tasks/execute-permanent-chatroom-update.1.0.0.json +21 -0
  51. package/touch/Tasks/execute-rez-chatroom-transfer.1.0.0.json +21 -0
  52. package/touch/Tasks/execute-rezervation-transfer.1.0.0.json +19 -0
  53. package/touch/Tasks/fetch-absence-entries-for-transfer.1.0.0.json +23 -0
  54. package/touch/Tasks/fetch-advisors-for-transfer.1.0.0.json +23 -0
  55. package/touch/Tasks/fetch-permanent-chatrooms-for-transfer.1.0.0.json +23 -0
  56. package/touch/Tasks/fetch-rez-chatrooms-for-transfer.1.0.0.json +23 -0
  57. package/touch/Tasks/fetch-rezervations-for-transfer.1.0.0.json +22 -0
  58. package/touch/Tasks/get-absence-entry-task.1.0.0.json +23 -0
  59. package/touch/Tasks/get-available-slots-http.1.0.0.json +27 -0
  60. package/touch/Tasks/get-available-slots.1.0.0.json +24 -0
  61. package/touch/Tasks/get-chat-room-data-for-rezervation.1.0.0.json +23 -0
  62. package/touch/Tasks/get-chat-token.1.0.0.json +27 -0
  63. package/touch/Tasks/get-matrix-room-messages.1.0.0.json +25 -0
  64. package/touch/Tasks/get-matrix-sync.1.0.0.json +25 -0
  65. package/touch/Tasks/get-rezervation-data-task.1.0.0.json +22 -0
  66. package/touch/Tasks/get-rezervation-state-task.1.0.0.json +22 -0
  67. package/touch/Tasks/get-rezervations-task.1.0.0.json +21 -0
  68. package/touch/Tasks/get-user-info-for-rezervation.1.0.0.json +24 -0
  69. package/touch/Tasks/get-video-call-url.1.0.0.json +17 -0
  70. package/touch/Tasks/invite-user-to-rezervation-room.1.0.0.json +27 -0
  71. package/touch/Tasks/join-chat-room-for-rezervation.1.0.0.json +28 -0
  72. package/touch/Tasks/join-matrix-room.1.0.0.json +27 -0
  73. package/touch/Tasks/join-user-to-room.1.0.0.json +27 -0
  74. package/touch/Tasks/merge-invited-user.1.0.0.json +17 -0
  75. package/touch/Tasks/merge-rezervation-update.1.0.0.json +16 -0
  76. package/touch/Tasks/merge-target-advisor-for-transfer.1.0.0.json +17 -0
  77. package/touch/Tasks/merge-update-body-for-randevu-update.1.0.0.json +16 -0
  78. package/touch/Tasks/merge-video-call-urls.1.0.0.json +17 -0
  79. package/touch/Tasks/query-chat-room-instances.1.0.0.json +23 -0
  80. package/touch/Tasks/remove-member-from-room.1.0.0.json +28 -0
  81. package/touch/Tasks/send-matrix-room-message.1.0.0.json +26 -0
  82. package/touch/Tasks/send-push-notification.1.0.0.json +26 -0
  83. package/touch/Tasks/send-sms-notification.1.0.0.json +26 -0
  84. package/touch/Tasks/set-chat-room-status-active.1.0.0.json +16 -0
  85. package/touch/Tasks/set-chat-room-status-deactive.1.0.0.json +16 -0
  86. package/touch/Tasks/set-previous-advisor.1.0.0.json +16 -0
  87. package/touch/Tasks/set-user-from-headers-for-rezervation.1.0.0.json +17 -0
  88. package/touch/Tasks/start-absence-entry-for-rezervation.1.0.0.json +21 -0
  89. package/touch/Tasks/start-chat-room-for-rezervation.1.0.0.json +20 -0
  90. package/touch/Tasks/start-notification-sender.1.0.0.json +20 -0
  91. package/touch/Tasks/start-permanent-chat-room.1.0.0.json +21 -0
  92. package/touch/Tasks/start-transfer-from-absence-entry.1.0.0.json +19 -0
  93. package/touch/Tasks/start-video-call.1.0.0.json +22 -0
  94. package/touch/Tasks/trigger-chat-room-deactivate.1.0.0.json +21 -0
  95. package/touch/Tasks/trigger-chat-room-transfer.1.0.0.json +21 -0
  96. package/touch/Tasks/trigger-chat-room-update.1.0.0.json +20 -0
  97. package/touch/Tasks/trigger-rezervation-add-invited-participant.1.0.0.json +20 -0
  98. package/touch/Tasks/trigger-rezervation-apply-update.1.0.0.json +20 -0
  99. package/touch/Tasks/trigger-rezervation-to-in-meet.1.0.0.json +20 -0
  100. package/touch/Tasks/trigger-rezervation-video-call-update.1.0.0.json +21 -0
  101. package/touch/Tasks/validate-date-for-rezervation.1.0.0.json +18 -0
  102. package/touch/Tasks/validate-slot-for-rezervation.1.0.0.json +24 -0
  103. package/touch/Tasks/validate-transfer-availability.1.0.0.json +23 -0
  104. package/touch/Views/.gitkeep +0 -0
  105. package/touch/Workflows/.gitkeep +0 -0
  106. package/touch/Workflows/absence-entry.http +458 -0
  107. package/touch/Workflows/absence-entry.json +179 -0
  108. package/touch/Workflows/add-participant-to-rezervation.http +47 -0
  109. package/touch/Workflows/add-participant-to-rezervation.json +340 -0
  110. package/touch/Workflows/chat-room.http +207 -0
  111. package/touch/Workflows/chat-room.json +452 -0
  112. package/touch/Workflows/investment-advisor.json +367 -0
  113. package/touch/Workflows/notification-sender.http +299 -0
  114. package/touch/Workflows/notification-sender.json +262 -0
  115. package/touch/Workflows/portfolio-manager.json +367 -0
  116. package/touch/Workflows/randevu-update.http +87 -0
  117. package/touch/Workflows/rezervation-start.json +467 -0
  118. package/touch/Workflows/rezervation-transfer.json +512 -0
  119. package/touch/Workflows/rezervation-update.http +87 -0
  120. package/touch/Workflows/rezervation-update.json +485 -0
  121. package/touch/Workflows/rezervation.http +214 -0
  122. package/touch/Workflows/rezervation.json +726 -0
  123. package/touch/Workflows/src/AllChatRoomsSuccessRule.csx +65 -0
  124. package/touch/Workflows/src/AlwaysTrueRule.csx +13 -0
  125. package/touch/Workflows/src/AnyChatRoomFailedRule.csx +64 -0
  126. package/touch/Workflows/src/AutoProcessRule.csx +38 -0
  127. package/touch/Workflows/src/BuildRezChatRoomPlanMapping.csx +160 -0
  128. package/touch/Workflows/src/CanStartRezervationTimerMapping.csx +48 -0
  129. package/touch/Workflows/src/CanStartTransferMapping.csx +14 -0
  130. package/touch/Workflows/src/CancelAbsenceEntryForRezervationMapping.csx +48 -0
  131. package/touch/Workflows/src/CancelAbsenceForRandevuUpdateMapping.csx +62 -0
  132. package/touch/Workflows/src/ChatRoomCreatedFailedRule.csx +54 -0
  133. package/touch/Workflows/src/ChatRoomCreatedSuccessRule.csx +54 -0
  134. package/touch/Workflows/src/ChatRoomRemoveMapping.csx +104 -0
  135. package/touch/Workflows/src/ChatRoomTransferInviteMapping.csx +109 -0
  136. package/touch/Workflows/src/ChatRoomTransferRemoveMapping.csx +71 -0
  137. package/touch/Workflows/src/ChatRoomUpdateMapping.csx +107 -0
  138. package/touch/Workflows/src/CheckAlreadyCompletedChatRoomMapping.csx +100 -0
  139. package/touch/Workflows/src/CheckDuplicatePortfolioManagerMapping.csx +119 -0
  140. package/touch/Workflows/src/CheckDuplicateRezervationMapping.csx +150 -0
  141. package/touch/Workflows/src/CheckExistingPermanentChatRoomMapping.csx +169 -0
  142. package/touch/Workflows/src/CheckRandevuTimeMapping.csx +67 -0
  143. package/touch/Workflows/src/CheckRezervationStateActiveOrInMeetRule.csx +14 -0
  144. package/touch/Workflows/src/CreateAbsenceEntryForRezervationMapping.csx +111 -0
  145. package/touch/Workflows/src/CreateAbsenceForRandevuUpdateMapping.csx +108 -0
  146. package/touch/Workflows/src/CreateChatRoomForRezervationMapping.csx +122 -0
  147. package/touch/Workflows/src/CreatePermanentChatRoomMapping.csx +140 -0
  148. package/touch/Workflows/src/CustomerControlToEndRule.csx +14 -0
  149. package/touch/Workflows/src/DetermineTransferTypeMapping.csx +92 -0
  150. package/touch/Workflows/src/EnrichRezervationsForTransferMapping.csx +495 -0
  151. package/touch/Workflows/src/ExecutePermanentChatRoomUpdateMapping.csx +124 -0
  152. package/touch/Workflows/src/ExecuteRezChatRoomTransferMapping.csx +95 -0
  153. package/touch/Workflows/src/ExecuteTransferMapping.csx +152 -0
  154. package/touch/Workflows/src/FetchAbsenceEntriesForTransferMapping.csx +116 -0
  155. package/touch/Workflows/src/FetchAdvisorsForTransferMapping.csx +145 -0
  156. package/touch/Workflows/src/FetchPermanentChatRoomsMapping.csx +128 -0
  157. package/touch/Workflows/src/FetchRezervationsForTransferMapping.csx +124 -0
  158. package/touch/Workflows/src/GetChatRoomDataForRezervationMapping.csx +100 -0
  159. package/touch/Workflows/src/GetChatTokenMapping.csx +85 -0
  160. package/touch/Workflows/src/GetRezervationDataForAddParticipantMapping.csx +105 -0
  161. package/touch/Workflows/src/GetRezervationDataForRandevuUpdateMapping.csx +110 -0
  162. package/touch/Workflows/src/GetRezervationDataMapping.csx +111 -0
  163. package/touch/Workflows/src/GetRezervationStateForRandevuUpdateMapping.csx +80 -0
  164. package/touch/Workflows/src/GetRezervationStateMapping.csx +92 -0
  165. package/touch/Workflows/src/GetUserInfoForRezervationMapping.csx +63 -0
  166. package/touch/Workflows/src/GetVideoCallUrlMapping.csx +62 -0
  167. package/touch/Workflows/src/HasChangedAdvisorRule.csx +28 -0
  168. package/touch/Workflows/src/HasChatIntegrationRule.csx +41 -0
  169. package/touch/Workflows/src/HasExistingPermanentRoomRule.csx +28 -0
  170. package/touch/Workflows/src/InviteAdvisorForRandevuUpdateMapping.csx +86 -0
  171. package/touch/Workflows/src/InviteNewAdvisorToRezervationRoomMapping.csx +78 -0
  172. package/touch/Workflows/src/InviteNewParticipantToRandevuRoomMapping.csx +88 -0
  173. package/touch/Workflows/src/InvitedUserMergeMapping.csx +77 -0
  174. package/touch/Workflows/src/InvitedUserNotAllowedRule.csx +71 -0
  175. package/touch/Workflows/src/InvitedUserNotInMeetRule.csx +19 -0
  176. package/touch/Workflows/src/IsNotfSentRule.csx +36 -0
  177. package/touch/Workflows/src/JoinChatRoomForAddParticipantMapping.csx +118 -0
  178. package/touch/Workflows/src/JoinChatRoomForRandevuStartMapping.csx +119 -0
  179. package/touch/Workflows/src/JoinChatRoomForRezervationMapping.csx +118 -0
  180. package/touch/Workflows/src/JoinMatrixRoomMapping.csx +100 -0
  181. package/touch/Workflows/src/JoinUserToRoomMapping.csx +118 -0
  182. package/touch/Workflows/src/LoginForAddParticipantChatMapping.csx +102 -0
  183. package/touch/Workflows/src/LoginForRandevuStartChatMapping.csx +96 -0
  184. package/touch/Workflows/src/MergeRezervationUpdateMapping.csx +82 -0
  185. package/touch/Workflows/src/MergeTargetAdvisorForTransferMapping.csx +79 -0
  186. package/touch/Workflows/src/MergeUpdateBodyForRandevuUpdateMapping.csx +91 -0
  187. package/touch/Workflows/src/NoExistingPermanentRoomRule.csx +23 -0
  188. package/touch/Workflows/src/NotificationCompleteAlwaysRule.csx +14 -0
  189. package/touch/Workflows/src/NotificationCompleteFromPendingRule.csx +41 -0
  190. package/touch/Workflows/src/NotificationCompleteFromSmsRule.csx +36 -0
  191. package/touch/Workflows/src/NotificationPushFromPendingRule.csx +42 -0
  192. package/touch/Workflows/src/NotificationPushFromSmsRule.csx +36 -0
  193. package/touch/Workflows/src/NotificationSmsPendingRule.csx +32 -0
  194. package/touch/Workflows/src/PermanentDoneRule.csx +44 -0
  195. package/touch/Workflows/src/PermanentProcessNextRule.csx +44 -0
  196. package/touch/Workflows/src/RezChatRoomProcessNextRule.csx +44 -0
  197. package/touch/Workflows/src/RezChatRoomsDoneRule.csx +44 -0
  198. package/touch/Workflows/src/SendPushNotificationMapping.csx +146 -0
  199. package/touch/Workflows/src/SendSmsNotificationMapping.csx +138 -0
  200. package/touch/Workflows/src/SetChatRoomStatusActiveMapping.csx +22 -0
  201. package/touch/Workflows/src/SetChatRoomStatusDeactiveMapping.csx +22 -0
  202. package/touch/Workflows/src/SetPreviousAdvisorMapping.csx +28 -0
  203. package/touch/Workflows/src/SetUserFromHeadersForRezervationMapping.csx +24 -0
  204. package/touch/Workflows/src/SlotAvailableRule.csx +33 -0
  205. package/touch/Workflows/src/SlotUnavailableRule.csx +33 -0
  206. package/touch/Workflows/src/StartChatRoomForRezervationMapping.csx +100 -0
  207. package/touch/Workflows/src/StartGetChatTokenForRezervationMapping.csx +71 -0
  208. package/touch/Workflows/src/StartNotificationForAdvisorMapping.csx +117 -0
  209. package/touch/Workflows/src/StartNotificationForRezervationFromUserInfoMapping.csx +128 -0
  210. package/touch/Workflows/src/StartNotificationForUserMapping.csx +117 -0
  211. package/touch/Workflows/src/StartPermanentChatRoomMapping.csx +92 -0
  212. package/touch/Workflows/src/StartTransferFromAbsenceEntryMapping.csx +94 -0
  213. package/touch/Workflows/src/StartVideoCallCustomerSubFlowMapping.csx +37 -0
  214. package/touch/Workflows/src/StartVideoCallForInvitedParticipantMapping.csx +54 -0
  215. package/touch/Workflows/src/StartVideoCallForRandevuStartMapping.csx +70 -0
  216. package/touch/Workflows/src/StartVideoCallStaffSubFlowMapping.csx +37 -0
  217. package/touch/Workflows/src/StateActiveForUpdateRule.csx +14 -0
  218. package/touch/Workflows/src/StateActiveRule.csx +14 -0
  219. package/touch/Workflows/src/StateInMeetRule.csx +14 -0
  220. package/touch/Workflows/src/StateNotActiveForUpdateRule.csx +14 -0
  221. package/touch/Workflows/src/StateNotActiveOrInMeetRule.csx +14 -0
  222. package/touch/Workflows/src/StatusCustomerEnterRule.csx +25 -0
  223. package/touch/Workflows/src/StatusStaffEnterRule.csx +25 -0
  224. package/touch/Workflows/src/SyncWorkingHoursRule.csx +46 -0
  225. package/touch/Workflows/src/TokenSuccessRule.csx +24 -0
  226. package/touch/Workflows/src/TransferAllDoneRule.csx +50 -0
  227. package/touch/Workflows/src/TransferHasInvalidRule.csx +34 -0
  228. package/touch/Workflows/src/TransferProcessNextRule.csx +50 -0
  229. package/touch/Workflows/src/TriggerChatRoomDeactivateMapping.csx +77 -0
  230. package/touch/Workflows/src/TriggerChatRoomTransferMapping.csx +93 -0
  231. package/touch/Workflows/src/TriggerChatRoomUpdateMapping.csx +99 -0
  232. package/touch/Workflows/src/TriggerRezervationAddInvitedParticipantMapping.csx +77 -0
  233. package/touch/Workflows/src/TriggerRezervationApplyUpdateMapping.csx +66 -0
  234. package/touch/Workflows/src/TriggerRezervationToInMeetMapping.csx +69 -0
  235. package/touch/Workflows/src/TriggerRezervationVideoCallUpdateMapping.csx +67 -0
  236. package/touch/Workflows/src/ValidateDateForRezervationMapping.csx +60 -0
  237. package/touch/Workflows/src/ValidateSlotForRandevuUpdateMapping.csx +211 -0
  238. package/touch/Workflows/src/ValidateSlotForRezervationMapping.csx +246 -0
  239. package/touch/Workflows/src/ValidateTransferMapping.csx +243 -0
  240. package/touch/Workflows/src/VideoCallUrlUpdateMergeMapping.csx +141 -0
  241. package/touch/Workflows/start-chat.json +217 -0
  242. package/touch/Workflows/start-video-call.http +93 -0
  243. package/touch/Workflows/start-video-call.json +206 -0
  244. package/vnext.config.json +58 -0
@@ -0,0 +1,159 @@
1
+ {
2
+ "key": "notification-sender",
3
+ "version": "1.0.0",
4
+ "domain": "touch",
5
+ "flow": "sys-schemas",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "new"
9
+ ],
10
+ "attributes": {
11
+ "type": "schema",
12
+ "schema": {
13
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
14
+ "$id": "https://schemas.touch.domain/notification-sender",
15
+ "title": "Notification Sender",
16
+ "type": "object",
17
+ "description": "Schema for notification-sender subprocess. Sends SMS and/or Push notifications to a single recipient (advisor or user) after reservation confirmation.",
18
+ "properties": {
19
+ "userType": {
20
+ "type": "string",
21
+ "description": "Type of recipient for the notification",
22
+ "oneOf": [
23
+ {
24
+ "const": "advisor",
25
+ "description": "Notification target is the advisor (Portfolio Manager or Investment Advisor)"
26
+ },
27
+ {
28
+ "const": "user",
29
+ "description": "Notification target is the customer/user"
30
+ }
31
+ ]
32
+ },
33
+ "channels": {
34
+ "type": "object",
35
+ "description": "Which notification channels to use",
36
+ "properties": {
37
+ "sms": {
38
+ "type": "boolean",
39
+ "description": "Whether to send SMS notification"
40
+ },
41
+ "push": {
42
+ "type": "boolean",
43
+ "description": "Whether to send Push notification"
44
+ }
45
+ },
46
+ "required": [
47
+ "sms",
48
+ "push"
49
+ ]
50
+ },
51
+ "hasRegisteredDevice": {
52
+ "type": "boolean",
53
+ "description": "Whether the recipient has a registered mobile device for push notifications. Push is skipped if false."
54
+ },
55
+ "recipient": {
56
+ "type": "object",
57
+ "description": "Recipient contact information provided by the caller",
58
+ "properties": {
59
+ "phone": {
60
+ "type": "object",
61
+ "description": "Phone number for SMS delivery",
62
+ "properties": {
63
+ "countryCode": {
64
+ "type": "string",
65
+ "description": "Country code (e.g., '90' for Turkey)"
66
+ },
67
+ "prefix": {
68
+ "type": "string",
69
+ "description": "Phone prefix (e.g., '555')"
70
+ },
71
+ "number": {
72
+ "type": "string",
73
+ "description": "Phone number (e.g., '1234567')"
74
+ }
75
+ },
76
+ "required": [
77
+ "countryCode",
78
+ "prefix",
79
+ "number"
80
+ ]
81
+ },
82
+ "citizenshipNo": {
83
+ "type": "string",
84
+ "description": "TC Kimlik numarasi for push notification targeting"
85
+ },
86
+ "customerNo": {
87
+ "type": "integer",
88
+ "description": "Customer number (optional, used for push notifications)"
89
+ }
90
+ }
91
+ },
92
+ "context": {
93
+ "type": "object",
94
+ "description": "Reservation context used to build notification content",
95
+ "properties": {
96
+ "reservationKey": {
97
+ "type": "string",
98
+ "description": "Key of the reservation instance that triggered this notification"
99
+ },
100
+ "advisorName": {
101
+ "type": "string",
102
+ "description": "Display name of the advisor"
103
+ },
104
+ "startDateTime": {
105
+ "type": "string",
106
+ "format": "date-time",
107
+ "description": "Appointment start date-time (ISO 8601)"
108
+ },
109
+ "endDateTime": {
110
+ "type": "string",
111
+ "format": "date-time",
112
+ "description": "Appointment end date-time (ISO 8601)"
113
+ }
114
+ },
115
+ "required": [
116
+ "reservationKey",
117
+ "startDateTime",
118
+ "endDateTime"
119
+ ]
120
+ },
121
+ "notificationResults": {
122
+ "type": "object",
123
+ "description": "Results of notification delivery attempts (populated by mappings)",
124
+ "properties": {
125
+ "smsResult": {
126
+ "type": "object",
127
+ "properties": {
128
+ "sent": {
129
+ "type": "boolean"
130
+ },
131
+ "error": {
132
+ "type": "string"
133
+ }
134
+ }
135
+ },
136
+ "pushResult": {
137
+ "type": "object",
138
+ "properties": {
139
+ "sent": {
140
+ "type": "boolean"
141
+ },
142
+ "error": {
143
+ "type": "string"
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+ },
150
+ "required": [
151
+ "userType",
152
+ "channels",
153
+ "hasRegisteredDevice",
154
+ "context"
155
+ ],
156
+ "additionalProperties": false
157
+ }
158
+ }
159
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "key": "portfolio-manager",
3
+ "version": "1.0.0",
4
+ "domain": "touch",
5
+ "flow": "sys-schemas",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "new"
9
+ ],
10
+ "attributes": {
11
+ "type": "schema",
12
+ "schema": {
13
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
14
+ "$id": "https://schemas.touch.domain/portfolio-manager",
15
+ "title": "Portfolio Manager",
16
+ "type": "object",
17
+ "description": "Portfolio Manager master schema",
18
+ "properties": {
19
+ "user": {
20
+ "type": "string",
21
+ "description": "Reference to User entity in different domain for portfolio manager's personal information (name, surname, phone, etc.) (format: domain:workflow:key or domain:workflow:id)"
22
+ },
23
+ "person": {
24
+ "type": "string",
25
+ "description": "Reference to Person entity in different domain for portfolio manager's personal information (format: domain:workflow:key or domain:workflow:id)"
26
+ },
27
+ "delegates": {
28
+ "type": "array",
29
+ "description": "Array of Portfolio Manager references who can respond on behalf when this manager is unavailable. System will automatically route requests to delegates when manager is offline, busy, or away.",
30
+ "items": {
31
+ "type": "string",
32
+ "description": "Reference to another Portfolio Manager (format: touch:portfolio-manager:key or touch:portfolio-manager:id)"
33
+ },
34
+ "uniqueItems": true
35
+ },
36
+ "availableSlotDurations": {
37
+ "type": "array",
38
+ "description": "Available appointment slot durations in minutes (must be multiples of 15, e.g., 15, 30, 60)",
39
+ "items": {
40
+ "type": "integer",
41
+ "minimum": 15,
42
+ "multipleOf": 15,
43
+ "description": "Slot duration in minutes (must be a multiple of 15)"
44
+ },
45
+ "minItems": 1,
46
+ "uniqueItems": true
47
+ },
48
+ "breakDurationBetweenAppointments": {
49
+ "type": "integer",
50
+ "description": "Break duration between two consecutive appointments in minutes (must be a multiple of 15, 0 means no break)",
51
+ "minimum": 0,
52
+ "multipleOf": 15,
53
+ "default": 0
54
+ }
55
+ },
56
+ "required": [
57
+ "user",
58
+ "person"
59
+ ],
60
+ "additionalProperties": false
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "key": "rezervation",
3
+ "version": "1.0.0",
4
+ "domain": "touch",
5
+ "flow": "sys-schemas",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "new"
9
+ ],
10
+ "attributes": {
11
+ "type": "schema",
12
+ "schema": {
13
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
14
+ "$id": "https://schemas.touch.domain/rezervation",
15
+ "title": "Reservation",
16
+ "type": "object",
17
+ "description": "Reservation schema for appointments between customers and advisors (Portfolio Manager or Investment Advisor)",
18
+ "properties": {
19
+ "user": {
20
+ "type": "string",
21
+ "description": "Reference to User entity (customer) in different domain (format: domain:workflow:key or domain:workflow:id)"
22
+ },
23
+ "advisor": {
24
+ "type": "string",
25
+ "description": "Reference to Advisor (Portfolio Manager or Investment Advisor) (format: touch:portfolio-manager:key, touch:portfolio-manager:id, touch:investment-advisor:key, or touch:investment-advisor:id)"
26
+ },
27
+ "startDateTime": {
28
+ "type": "string",
29
+ "format": "date-time",
30
+ "description": "Start date and time of the appointment (ISO 8601 format)"
31
+ },
32
+ "endDateTime": {
33
+ "type": "string",
34
+ "format": "date-time",
35
+ "description": "End date and time of the appointment (ISO 8601 format)"
36
+ },
37
+ "webrtcIntegration": {
38
+ "type": "object",
39
+ "description": "WebRTC video call integration information (e.g., LiveKit, Jitsi, etc.)",
40
+ "properties": {
41
+ "roomName": {
42
+ "type": "string",
43
+ "description": "Video call room name for the meeting"
44
+ },
45
+ "roomId": {
46
+ "type": "string",
47
+ "description": "Video call room ID for the meeting"
48
+ },
49
+ "created": {
50
+ "type": "boolean",
51
+ "description": "Whether the video call room has been created"
52
+ }
53
+ },
54
+ "required": [
55
+ "created"
56
+ ]
57
+ },
58
+ "chatIntegration": {
59
+ "type": "object",
60
+ "description": "Chat integration information for this meeting (e.g., Synapse/Matrix, Slack, etc.)",
61
+ "properties": {
62
+ "roomId": {
63
+ "type": "string",
64
+ "description": "Chat room ID (e.g., Matrix room ID)"
65
+ },
66
+ "sessionStartMarker": {
67
+ "type": "string",
68
+ "description": "Session start marker event ID (for daily session grouping)"
69
+ },
70
+ "sessionEndMarker": {
71
+ "type": "string",
72
+ "description": "Session end marker event ID (if session is closed)"
73
+ },
74
+ "error": {
75
+ "type": "string",
76
+ "description": "Last error message returned from chat integration"
77
+ },
78
+ "errorCode": {
79
+ "type": "string",
80
+ "description": "Last error code returned from chat integration"
81
+ }
82
+ }
83
+ },
84
+ "cancellationReason": {
85
+ "type": "string",
86
+ "description": "Reason for cancellation (if appointment was cancelled by user or advisor)"
87
+ },
88
+ "previousAdvisor": {
89
+ "type": "string",
90
+ "description": "Last known advisor before update; used to detect advisor changes (set by set-previous-advisor script)"
91
+ }
92
+ },
93
+ "required": [
94
+ "user",
95
+ "advisor",
96
+ "startDateTime",
97
+ "endDateTime"
98
+ ],
99
+ "additionalProperties": false
100
+ }
101
+ }
102
+ }
File without changes
@@ -0,0 +1,21 @@
1
+ {
2
+ "key": "cancel-absence-entry-for-rezervation",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "rezervation",
9
+ "absence-entry",
10
+ "cancel",
11
+ "trigger"
12
+ ],
13
+ "attributes": {
14
+ "type": "12",
15
+ "config": {
16
+ "domain": "touch",
17
+ "flow": "absence-entry",
18
+ "transitionName": "cancel"
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "key": "check-already-completed-chat-room",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "validation",
9
+ "advisor",
10
+ "chat",
11
+ "dapr",
12
+ "service",
13
+ "permanent"
14
+ ],
15
+ "attributes": {
16
+ "type": "3",
17
+ "config": {
18
+ "appId": "vnext-app-touch",
19
+ "methodName": "api/v1/touch/workflows/chat-room/instances",
20
+ "httpVerb": "GET",
21
+ "timeoutSeconds": 30
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "key": "check-duplicate-portfolio-manager",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "validation",
9
+ "duplicate-check",
10
+ "portfolio-manager",
11
+ "dapr",
12
+ "service"
13
+ ],
14
+ "attributes": {
15
+ "type": "3",
16
+ "config": {
17
+ "appId": "vnext-app-touch",
18
+ "methodName": "api/v1/touch/workflows/portfolio-manager/instances",
19
+ "httpVerb": "GET",
20
+ "timeoutSeconds": 30
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "key": "check-duplicate-rezervation",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "validation",
9
+ "duplicate-check",
10
+ "rezervation",
11
+ "dapr",
12
+ "service"
13
+ ],
14
+ "attributes": {
15
+ "type": "3",
16
+ "config": {
17
+ "appId": "vnext-app-touch",
18
+ "methodName": "api/v1/touch/workflows/rezervation/instances",
19
+ "httpVerb": "GET",
20
+ "timeoutSeconds": 30
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "key": "check-existing-permanent-chat-room",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "chat-room",
9
+ "permanent",
10
+ "start-chat"
11
+ ],
12
+ "attributes": {
13
+ "type": "3",
14
+ "config": {
15
+ "appId": "vnext-app-touch",
16
+ "methodName": "api/v1/touch/workflows/chat-room/functions/get-chat-rooms",
17
+ "httpVerb": "GET",
18
+ "timeoutSeconds": 30
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "key": "check-randevu-time",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "rezervation",
9
+ "randevu",
10
+ "script",
11
+ "validation"
12
+ ],
13
+ "attributes": {
14
+ "type": "7",
15
+ "config": {}
16
+ }
17
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "key": "create-permanent-chat-room",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "advisor",
9
+ "chat",
10
+ "matrix",
11
+ "room",
12
+ "permanent",
13
+ "http"
14
+ ],
15
+ "attributes": {
16
+ "type": "6",
17
+ "config": {
18
+ "method": "POST",
19
+ "url": "/_matrix/client/v3/createRoom",
20
+ "headers": {
21
+ "Content-Type": "application/json",
22
+ "Accept": "application/json"
23
+ },
24
+ "timeoutSeconds": 30,
25
+ "validateSsl": true
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "key": "determine-transfer-type",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "rezervation",
9
+ "transfer",
10
+ "script"
11
+ ],
12
+ "attributes": {
13
+ "type": "7",
14
+ "config": {}
15
+ }
16
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "key": "enrich-rezervations-for-transfer",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "rezervation",
9
+ "transfer",
10
+ "dapr",
11
+ "service",
12
+ "enrichment"
13
+ ],
14
+ "attributes": {
15
+ "type": "3",
16
+ "config": {
17
+ "appId": "vnext-app-touch",
18
+ "methodName": "api/v1/touch/workflows/rezervation/instances",
19
+ "httpVerb": "GET",
20
+ "timeoutSeconds": 30
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "key": "execute-permanent-chatroom-update",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "chat-room",
9
+ "transfer",
10
+ "trigger",
11
+ "permanent"
12
+ ],
13
+ "attributes": {
14
+ "type": "12",
15
+ "config": {
16
+ "domain": "touch",
17
+ "flow": "chat-room",
18
+ "transitionName": "transfer"
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "key": "execute-rez-chatroom-transfer",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "chat-room",
9
+ "transfer",
10
+ "trigger",
11
+ "rezervation"
12
+ ],
13
+ "attributes": {
14
+ "type": "12",
15
+ "config": {
16
+ "domain": "touch",
17
+ "flow": "chat-room",
18
+ "transitionName": "transfer"
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "key": "execute-rezervation-transfer",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "rezervation",
9
+ "transfer",
10
+ "start-task"
11
+ ],
12
+ "attributes": {
13
+ "type": "11",
14
+ "config": {
15
+ "domain": "touch",
16
+ "flow": "rezervation-update"
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "key": "fetch-absence-entries-for-transfer",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "rezervation",
9
+ "transfer",
10
+ "absence-entry",
11
+ "dapr",
12
+ "service"
13
+ ],
14
+ "attributes": {
15
+ "type": "3",
16
+ "config": {
17
+ "appId": "vnext-app-touch",
18
+ "methodName": "api/v1/touch/workflows/absence-entry/instances",
19
+ "httpVerb": "GET",
20
+ "timeoutSeconds": 30
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "key": "fetch-advisors-for-transfer",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "rezervation",
9
+ "transfer",
10
+ "dapr",
11
+ "service",
12
+ "advisor"
13
+ ],
14
+ "attributes": {
15
+ "type": "3",
16
+ "config": {
17
+ "appId": "vnext-app-touch",
18
+ "methodName": "api/v1/touch/workflows/portfolio-manager/instances",
19
+ "httpVerb": "GET",
20
+ "timeoutSeconds": 30
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "key": "fetch-permanent-chatrooms-for-transfer",
3
+ "flow": "sys-tasks",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "chat-room",
9
+ "transfer",
10
+ "dapr",
11
+ "service",
12
+ "permanent"
13
+ ],
14
+ "attributes": {
15
+ "type": "3",
16
+ "config": {
17
+ "appId": "vnext-app-touch",
18
+ "methodName": "api/v1/touch/workflows/chat-room/instances",
19
+ "httpVerb": "GET",
20
+ "timeoutSeconds": 30
21
+ }
22
+ }
23
+ }