@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,367 @@
1
+ {
2
+ "key": "investment-advisor",
3
+ "flow": "sys-flows",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "new"
9
+ ],
10
+ "attributes": {
11
+ "type": "S",
12
+ "labels": [
13
+ {
14
+ "label": "Investment Advisor",
15
+ "language": "en-US"
16
+ },
17
+ {
18
+ "label": "Yatırım Danışmanı",
19
+ "language": "tr-TR"
20
+ }
21
+ ],
22
+ "functions": [],
23
+ "features": [],
24
+ "extensions": [],
25
+ "sharedTransitions": [
26
+ {
27
+ "key": "deactivate",
28
+ "target": "inactive",
29
+ "triggerType": 0,
30
+ "versionStrategy": "Minor",
31
+ "availableIn": [
32
+ "draft",
33
+ "online",
34
+ "offline",
35
+ "busy",
36
+ "away"
37
+ ],
38
+ "labels": [
39
+ {
40
+ "label": "Deactivate",
41
+ "language": "en-US"
42
+ },
43
+ {
44
+ "label": "Pasife Al",
45
+ "language": "tr-TR"
46
+ }
47
+ ]
48
+ }
49
+ ],
50
+ "startTransition": {
51
+ "key": "start",
52
+ "target": "draft",
53
+ "versionStrategy": "Major",
54
+ "triggerType": 0,
55
+ "labels": [
56
+ {
57
+ "label": "Start",
58
+ "language": "en-US"
59
+ },
60
+ {
61
+ "label": "Başla",
62
+ "language": "tr-TR"
63
+ }
64
+ ]
65
+ },
66
+ "states": [
67
+ {
68
+ "key": "draft",
69
+ "stateType": 1,
70
+ "versionStrategy": "Minor",
71
+ "labels": [
72
+ {
73
+ "label": "Draft",
74
+ "language": "en-US"
75
+ },
76
+ {
77
+ "label": "Taslak",
78
+ "language": "tr-TR"
79
+ }
80
+ ],
81
+ "onEntries": [
82
+ {
83
+ "order": 1,
84
+ "task": {
85
+ "domain": "touch",
86
+ "flow": "sys-tasks",
87
+ "key": "check-duplicate-portfolio-manager",
88
+ "version": "1.0.0"
89
+ },
90
+ "mapping": {
91
+ "location": "./src/CheckDuplicatePortfolioManagerMapping.csx",
92
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgQ2hlY2tEdXBsaWNhdGVQb3J0Zm9saW9NYW5hZ2VyIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpCi8vLyBRdWVyaWVzIHBvcnRmb2xpby1tYW5hZ2VyIHdvcmtmbG93IGluc3RhbmNlcyB0byBjaGVjayBpZiBhIHJlY29yZCBhbHJlYWR5IGV4aXN0cyAKLy8vIGZvciB0aGUgc2FtZSB1c2VyLiBVc2VkIGluIGRyYWZ0IHN0YXRlIG9uRW50cnkgd2l0aCBlcnJvckJvdW5kYXJ5LgovLy8gCi8vLyBGbG93OgovLy8gMS4gSW5wdXRIYW5kbGVyOiBCdWlsZHMgcXVlcnkgdG8gZmlsdGVyIGJ5IHVzZXIgYW5kIHN0YXRlIChleGNsdWRpbmcgZHJhZnQpCi8vLyAyLiBPdXRwdXRIYW5kbGVyOiBJZiBkdXBsaWNhdGUgZm91bmQsIHRocm93cyBleGNlcHRpb24g4oaSIGVycm9yQm91bmRhcnkgY2F0Y2hlcyDihpIgcmVqZWN0ZWQgc3RhdGUKLy8vIAovLy8gRmlsdGVyIGNyaXRlcmlhOgovLy8gLSBhdHRyaWJ1dGVzLnVzZXIgPSBjdXJyZW50IGluc3RhbmNlJ3MgdXNlciB2YWx1ZQovLy8gLSBrZXkgIT0gY3VycmVudCBpbnN0YW5jZSBrZXkKLy8vIC0gc3RhdHVzIG5vdCBkcmFmdCBhbmQgbm90IHJlamVjdGVkCi8vLyAtIGN1cnJlbnRTdGF0ZSBpbiAob25saW5lLCBvZmZsaW5lLCBidXN5LCBhd2F5LCBpbmFjdGl2ZSkgLSBleGNsdWRlcyBkcmFmdAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgQ2hlY2tEdXBsaWNhdGVQb3J0Zm9saW9NYW5hZ2VyTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzZXJ2aWNlVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgICAgIHZhciBhcHBJZCA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX0FQUF9JRCIpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgICAgIC8vIEdldCB1c2VyIGZyb20gY3VycmVudCBpbnN0YW5jZSBkYXRhCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCAhSGFzUHJvcGVydHkoZGF0YSwgInVzZXIiKSB8fCBkYXRhLnVzZXIgPT0gbnVsbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRVUExJQ0FURV9VU0VSOiBVc2VyIGZpZWxkIGlzIHJlcXVpcmVkIGZvciBkdXBsaWNhdGUgY2hlY2siKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHVzZXIgPSBkYXRhLnVzZXIuVG9TdHJpbmcoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEdldCBjdXJyZW50IGluc3RhbmNlIGtleSB0byBleGNsdWRlIGl0IGZyb20gcmVzdWx0cwogICAgICAgICAgICB2YXIgY3VycmVudEtleSA9IGNvbnRleHQuSW5zdGFuY2U/LktleTsKCiAgICAgICAgICAgIC8vIEJ1aWxkIHF1ZXJ5IHN0cmluZyBmb3IgZmlsdGVyaW5nCiAgICAgICAgICAgIC8vIEZpbHRlcjogdXNlciBtYXRjaGVzIEFORCBrZXkgIT0gY3VycmVudEtleSBBTkQgc3RhdHVzIG5vdCBkcmFmdC9yZWplY3RlZCBBTkQgc3RhdGUgaXMgbm90IGRyYWZ0IChvbmxpbmUsIG9mZmxpbmUsIGJ1c3ksIGF3YXksIGluYWN0aXZlKQogICAgICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJwYWdlU2l6ZT0xMCIsCiAgICAgICAgICAgICAgICAiY3VycmVudFN0YXRlPW9ubGluZSxvZmZsaW5lLGJ1c3ksYXdheSxpbmFjdGl2ZSIsCiAgICAgICAgICAgICAgICAkImZpbHRlcj17e1wiYW5kXCI6IFt7e1wiYXR0cmlidXRlc1wiOiB7e1widXNlclwiOiB7e1wiZXFcIjpcInt1c2VyfVwifX19fX19LCB7e1wia2V5XCI6IHt7XCJuZVwiOlwie2N1cnJlbnRLZXl9XCJ9fX19LCB7e1wiY3VycmVudFN0YXRlXCI6IHt7XCJuZVwiOlwiZHJhZnRcIn19fX0sIHt7XCJjdXJyZW50U3RhdGVcIjoge3tcIm5lXCI6XCJyZWplY3RlZFwifX19fV19fSIKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgLy8gUmUtdGhyb3cgdG8gdHJpZ2dlciBlcnJvckJvdW5kYXJ5CiAgICAgICAgICAgIHRocm93OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICAvLyBHZXQgRGFwciBTZXJ2aWNlIHJlc3BvbnNlCiAgICAgICAgICAgIHZhciByZXNwb25zZSA9IGNvbnRleHQuQm9keTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENoZWNrIGlmIHNlcnZpY2UgY2FsbCB3YXMgc3VjY2Vzc2Z1bAogICAgICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvck1lc3NhZ2U/LlRvU3RyaW5nKCkgPz8gIlNlcnZpY2UgY2FsbCBmYWlsZWQiOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkIlNFUlZJQ0VfRVJST1I6IHtlcnJvck1lc3NhZ2V9Iik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIEdldCBpdGVtcyBmcm9tIHNlcnZpY2UgcmVzcG9uc2UKICAgICAgICAgICAgLy8gUmVzcG9uc2Ugc3RydWN0dXJlOiB7IGRhdGE6IHsgaXRlbXM6IFsuLi5dIH0sIGlzU3VjY2VzczogdHJ1ZSwgLi4uIH0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlPy5kYXRhOwogICAgICAgICAgICB2YXIgaXRlbXMgPSByZXNwb25zZURhdGE/Lml0ZW1zOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ291bnQgZXhpc3RpbmcgcmVjb3JkcwogICAgICAgICAgICBpbnQgZXhpc3RpbmdDb3VudCA9IDA7CiAgICAgICAgICAgIHN0cmluZyBleGlzdGluZ0tleSA9IG51bGw7CiAgICAgICAgICAgIHN0cmluZyBleGlzdGluZ1N0YXRlID0gbnVsbDsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChpdGVtcyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihpdGVtcy5Db3VudD4wKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZXhpc3RpbmdDb3VudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiBkdXBsaWNhdGUgZm91bmQsIHRocm93IGV4Y2VwdGlvbiB0byB0cmlnZ2VyIGVycm9yQm91bmRhcnkKICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ291bnQgPiAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdXNlciA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE/LnVzZXI/LlRvU3RyaW5nKCkgPz8gInVua25vd24iOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkIkRVUExJQ0FURV9VU0VSOiBBIHBvcnRmb2xpbyBtYW5hZ2VyIHJlY29yZCBhbHJlYWR5IGV4aXN0cyBmb3IgdXNlciAne3VzZXJ9Jy4gRXhpc3RpbmcgcmVjb3JkOiB7ZXhpc3RpbmdLZXl9IChzdGF0ZToge2V4aXN0aW5nU3RhdGV9KSIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBObyBkdXBsaWNhdGUgZm91bmQgLSBjb250aW51ZSBub3JtYWxseQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3IHsgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIC8vIFJlLXRocm93IHRvIHRyaWdnZXIgZXJyb3JCb3VuZGFyeQogICAgICAgICAgICB0aHJvdzsKICAgICAgICB9CiAgICB9Cn0K"
93
+ },
94
+ "errorBoundary": {
95
+ "onError": [
96
+ {
97
+ "action": 2,
98
+ "errorCodes": [
99
+ "DUPLICATE_USER"
100
+ ],
101
+ "transition": "reject-duplicate",
102
+ "priority": 1
103
+ },
104
+ {
105
+ "action": 2,
106
+ "errorCodes": [
107
+ "*"
108
+ ],
109
+ "transition": "reject-duplicate",
110
+ "priority": 999
111
+ }
112
+ ]
113
+ }
114
+ }
115
+ ],
116
+ "transitions": [
117
+ {
118
+ "key": "activate",
119
+ "target": "online",
120
+ "triggerType": 0,
121
+ "versionStrategy": "Minor",
122
+ "labels": [
123
+ {
124
+ "label": "Activate",
125
+ "language": "en-US"
126
+ },
127
+ {
128
+ "label": "Aktifleştir",
129
+ "language": "tr-TR"
130
+ }
131
+ ],
132
+ "onExecutionTasks": []
133
+ },
134
+ {
135
+ "key": "reject-duplicate",
136
+ "target": "rejected",
137
+ "triggerType": 0,
138
+ "versionStrategy": "Minor",
139
+ "labels": [
140
+ {
141
+ "label": "Reject Duplicate",
142
+ "language": "en-US"
143
+ },
144
+ {
145
+ "label": "Mükerrer Reddet",
146
+ "language": "tr-TR"
147
+ }
148
+ ]
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "key": "online",
154
+ "stateType": 2,
155
+ "versionStrategy": "Minor",
156
+ "labels": [
157
+ {
158
+ "label": "Online",
159
+ "language": "en-US"
160
+ },
161
+ {
162
+ "label": "Çevrimiçi",
163
+ "language": "tr-TR"
164
+ }
165
+ ],
166
+ "transitions": [
167
+ {
168
+ "key": "update",
169
+ "target": "online",
170
+ "triggerType": 0,
171
+ "versionStrategy": "Minor",
172
+ "labels": [
173
+ {
174
+ "label": "Update",
175
+ "language": "en-US"
176
+ },
177
+ {
178
+ "label": "Güncelle",
179
+ "language": "tr-TR"
180
+ }
181
+ ]
182
+ },
183
+ {
184
+ "key": "go-offline",
185
+ "target": "offline",
186
+ "triggerType": 0,
187
+ "versionStrategy": "Minor",
188
+ "labels": [
189
+ {
190
+ "label": "Go Offline",
191
+ "language": "en-US"
192
+ },
193
+ {
194
+ "label": "Çevrimdışı Ol",
195
+ "language": "tr-TR"
196
+ }
197
+ ]
198
+ },
199
+ {
200
+ "key": "go-busy",
201
+ "target": "busy",
202
+ "triggerType": 0,
203
+ "versionStrategy": "Minor",
204
+ "labels": [
205
+ {
206
+ "label": "Go Busy",
207
+ "language": "en-US"
208
+ },
209
+ {
210
+ "label": "Meşgul Ol",
211
+ "language": "tr-TR"
212
+ }
213
+ ]
214
+ },
215
+ {
216
+ "key": "go-away",
217
+ "target": "away",
218
+ "triggerType": 0,
219
+ "versionStrategy": "Minor",
220
+ "labels": [
221
+ {
222
+ "label": "Go Away",
223
+ "language": "en-US"
224
+ },
225
+ {
226
+ "label": "Uzaklaş",
227
+ "language": "tr-TR"
228
+ }
229
+ ]
230
+ }
231
+ ]
232
+ },
233
+ {
234
+ "key": "offline",
235
+ "stateType": 2,
236
+ "versionStrategy": "Minor",
237
+ "labels": [
238
+ {
239
+ "label": "Offline",
240
+ "language": "en-US"
241
+ },
242
+ {
243
+ "label": "Çevrimdışı",
244
+ "language": "tr-TR"
245
+ }
246
+ ],
247
+ "transitions": [
248
+ {
249
+ "key": "go-online",
250
+ "target": "online",
251
+ "triggerType": 0,
252
+ "versionStrategy": "Minor",
253
+ "labels": [
254
+ {
255
+ "label": "Go Online",
256
+ "language": "en-US"
257
+ },
258
+ {
259
+ "label": "Çevrimiçi Ol",
260
+ "language": "tr-TR"
261
+ }
262
+ ]
263
+ }
264
+ ]
265
+ },
266
+ {
267
+ "key": "busy",
268
+ "stateType": 2,
269
+ "versionStrategy": "Minor",
270
+ "labels": [
271
+ {
272
+ "label": "Busy",
273
+ "language": "en-US"
274
+ },
275
+ {
276
+ "label": "Meşgul",
277
+ "language": "tr-TR"
278
+ }
279
+ ],
280
+ "transitions": [
281
+ {
282
+ "key": "available",
283
+ "target": "online",
284
+ "triggerType": 0,
285
+ "versionStrategy": "Minor",
286
+ "labels": [
287
+ {
288
+ "label": "Available",
289
+ "language": "en-US"
290
+ },
291
+ {
292
+ "label": "Müsait Ol",
293
+ "language": "tr-TR"
294
+ }
295
+ ]
296
+ }
297
+ ]
298
+ },
299
+ {
300
+ "key": "away",
301
+ "stateType": 2,
302
+ "versionStrategy": "Minor",
303
+ "labels": [
304
+ {
305
+ "label": "Away",
306
+ "language": "en-US"
307
+ },
308
+ {
309
+ "label": "Uzakta",
310
+ "language": "tr-TR"
311
+ }
312
+ ],
313
+ "transitions": [
314
+ {
315
+ "key": "return",
316
+ "target": "online",
317
+ "triggerType": 0,
318
+ "versionStrategy": "Minor",
319
+ "labels": [
320
+ {
321
+ "label": "Return",
322
+ "language": "en-US"
323
+ },
324
+ {
325
+ "label": "Geri Dön",
326
+ "language": "tr-TR"
327
+ }
328
+ ]
329
+ }
330
+ ]
331
+ },
332
+ {
333
+ "key": "inactive",
334
+ "stateType": 3,
335
+ "versionStrategy": "Minor",
336
+ "labels": [
337
+ {
338
+ "label": "Inactive",
339
+ "language": "en-US"
340
+ },
341
+ {
342
+ "label": "Pasif",
343
+ "language": "tr-TR"
344
+ }
345
+ ]
346
+ },
347
+ {
348
+ "key": "rejected",
349
+ "stateType": 3,
350
+ "versionStrategy": "Minor",
351
+ "labels": [
352
+ {
353
+ "label": "Rejected - Duplicate User",
354
+ "language": "en-US"
355
+ },
356
+ {
357
+ "label": "Reddedildi - Mükerrer Kullanıcı",
358
+ "language": "tr-TR"
359
+ }
360
+ ],
361
+ "transitions": []
362
+ }
363
+ ],
364
+ "subFlowType": "S",
365
+ "timeout": null
366
+ }
367
+ }
@@ -0,0 +1,299 @@
1
+ ###############################################################################
2
+ # Notification Sender Subprocess - HTTP Test File
3
+ #
4
+ # Subprocess triggered by reservation workflow to send notifications.
5
+ #
6
+ # States: pending (initial) -> sms-sending -> push-sending -> complete (finish)
7
+ # Auto-transitions based on channels and hasRegisteredDevice
8
+ #
9
+ # Key Convention: notification-{userType}-{reservationKey}
10
+ #
11
+ # Prerequisites:
12
+ # 1. vNext Runtime running on localhost:4201
13
+ # 2. notification-sender workflow definition published
14
+ ###############################################################################
15
+
16
+ @baseUrl = http://localhost:4201
17
+ @apiVersion = 1
18
+ @domain = touch
19
+ @workflow = notification-sender
20
+
21
+ ###############################################################################
22
+ # #
23
+ # SCENARIO 1: ADVISOR - SMS + PUSH (device registered) #
24
+ # #
25
+ ###############################################################################
26
+
27
+ ### Start Notification for Advisor (SMS + Push)
28
+ # @name startAdvisorSmsPush
29
+ POST {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/start?sync=true
30
+ Content-Type: application/json
31
+ Accept-Language: tr-TR
32
+ X-Request-Id: {{$guid}}
33
+
34
+ {
35
+ "key": "notification-advisor-rez-2026-01-28T14-00-00-pm001",
36
+ "tags": [
37
+ "notification",
38
+ "advisor"
39
+ ],
40
+ "attributes": {
41
+ "userType": "advisor",
42
+ "channels": {
43
+ "sms": true,
44
+ "push": true
45
+ },
46
+ "hasRegisteredDevice": true,
47
+ "recipient": {
48
+ "phone": {
49
+ "countryCode": "90",
50
+ "prefix": "532",
51
+ "number": "1234567"
52
+ },
53
+ "citizenshipNo": "12345678901",
54
+ "customerNo": 100001
55
+ },
56
+ "context": {
57
+ "reservationKey": "rez-2026-01-28T14-00-00-pm001",
58
+ "advisorName": "Ahmet Yılmaz",
59
+ "startDateTime": "2026-01-28T14:00:00",
60
+ "endDateTime": "2026-01-28T14:30:00"
61
+ }
62
+ }
63
+ }
64
+
65
+ ### Get Advisor SMS+Push Notification Instance
66
+ # @name getAdvisorSmsPush
67
+ GET {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/{{startAdvisorSmsPush.response.body.id}}
68
+ Accept: application/json
69
+ Accept-Language: tr-TR
70
+ X-Request-Id: {{$guid}}
71
+
72
+ ###############################################################################
73
+ # #
74
+ # SCENARIO 2: USER - SMS + PUSH (device registered) #
75
+ # #
76
+ ###############################################################################
77
+
78
+ ### Start Notification for User (SMS + Push)
79
+ # @name startUserSmsPush
80
+ POST {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/start?sync=true
81
+ Content-Type: application/json
82
+ Accept-Language: tr-TR
83
+ X-Request-Id: {{$guid}}
84
+
85
+ {
86
+ "key": "notification-user-rez-2026-01-28T14-00-00-pm001",
87
+ "tags": [
88
+ "notification",
89
+ "user"
90
+ ],
91
+ "attributes": {
92
+ "userType": "user",
93
+ "channels": {
94
+ "sms": true,
95
+ "push": true
96
+ },
97
+ "hasRegisteredDevice": true,
98
+ "recipient": {
99
+ "phone": {
100
+ "countryCode": "90",
101
+ "prefix": "555",
102
+ "number": "9876543"
103
+ },
104
+ "citizenshipNo": "98765432109",
105
+ "customerNo": 200001
106
+ },
107
+ "context": {
108
+ "reservationKey": "rez-2026-01-28T14-00-00-pm001",
109
+ "advisorName": "Ahmet Yılmaz",
110
+ "startDateTime": "2026-01-28T14:00:00",
111
+ "endDateTime": "2026-01-28T14:30:00"
112
+ }
113
+ }
114
+ }
115
+
116
+ ### Get User SMS+Push Notification Instance
117
+ # @name getUserSmsPush
118
+ GET {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/{{startUserSmsPush.response.body.id}}
119
+ Accept: application/json
120
+ Accept-Language: tr-TR
121
+ X-Request-Id: {{$guid}}
122
+
123
+ ###############################################################################
124
+ # #
125
+ # SCENARIO 3: ADVISOR - SMS ONLY #
126
+ # #
127
+ ###############################################################################
128
+
129
+ ### Start Notification for Advisor (SMS only)
130
+ # @name startAdvisorSmsOnly
131
+ POST {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/start?sync=true
132
+ Content-Type: application/json
133
+ Accept-Language: tr-TR
134
+ X-Request-Id: {{$guid}}
135
+
136
+ {
137
+ "key": "notification-advisor-rez-2026-01-29T10-00-00-pm002",
138
+ "tags": [
139
+ "notification",
140
+ "advisor"
141
+ ],
142
+ "attributes": {
143
+ "userType": "advisor",
144
+ "channels": {
145
+ "sms": true,
146
+ "push": false
147
+ },
148
+ "hasRegisteredDevice": false,
149
+ "recipient": {
150
+ "phone": {
151
+ "countryCode": "90",
152
+ "prefix": "533",
153
+ "number": "7654321"
154
+ },
155
+ "citizenshipNo": "",
156
+ "customerNo": 0
157
+ },
158
+ "context": {
159
+ "reservationKey": "rez-2026-01-29T10-00-00-pm002",
160
+ "advisorName": "Mehmet Kaya",
161
+ "startDateTime": "2026-01-29T10:00:00",
162
+ "endDateTime": "2026-01-29T10:30:00"
163
+ }
164
+ }
165
+ }
166
+
167
+ ###############################################################################
168
+ # #
169
+ # SCENARIO 4: USER - PUSH ONLY (device registered) #
170
+ # #
171
+ ###############################################################################
172
+
173
+ ### Start Notification for User (Push only, device registered)
174
+ # @name startUserPushOnly
175
+ POST {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/start?sync=true
176
+ Content-Type: application/json
177
+ Accept-Language: tr-TR
178
+ X-Request-Id: {{$guid}}
179
+
180
+ {
181
+ "key": "notification-user-rez-2026-01-29T10-00-00-pm002",
182
+ "tags": [
183
+ "notification",
184
+ "user"
185
+ ],
186
+ "attributes": {
187
+ "userType": "user",
188
+ "channels": {
189
+ "sms": false,
190
+ "push": true
191
+ },
192
+ "hasRegisteredDevice": true,
193
+ "recipient": {
194
+ "phone": null,
195
+ "citizenshipNo": "11223344556",
196
+ "customerNo": 300001
197
+ },
198
+ "context": {
199
+ "reservationKey": "rez-2026-01-29T10-00-00-pm002",
200
+ "advisorName": "Mehmet Kaya",
201
+ "startDateTime": "2026-01-29T10:00:00",
202
+ "endDateTime": "2026-01-29T10:30:00"
203
+ }
204
+ }
205
+ }
206
+
207
+ ###############################################################################
208
+ # #
209
+ # SCENARIO 5: PUSH REQUESTED BUT NO DEVICE #
210
+ # #
211
+ ###############################################################################
212
+
213
+ ### Start Notification (Push requested but no registered device - goes directly to complete)
214
+ # @name startNoPushDevice
215
+ POST {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/start?sync=true
216
+ Content-Type: application/json
217
+ Accept-Language: tr-TR
218
+ X-Request-Id: {{$guid}}
219
+
220
+ {
221
+ "key": "notification-user-rez-2026-01-30T09-00-00-pm001",
222
+ "tags": [
223
+ "notification",
224
+ "user"
225
+ ],
226
+ "attributes": {
227
+ "userType": "user",
228
+ "channels": {
229
+ "sms": false,
230
+ "push": true
231
+ },
232
+ "hasRegisteredDevice": false,
233
+ "recipient": {
234
+ "phone": null,
235
+ "citizenshipNo": "55667788990",
236
+ "customerNo": 400001
237
+ },
238
+ "context": {
239
+ "reservationKey": "rez-2026-01-30T09-00-00-pm001",
240
+ "advisorName": "Ahmet Yılmaz",
241
+ "startDateTime": "2026-01-30T09:00:00",
242
+ "endDateTime": "2026-01-30T09:30:00"
243
+ }
244
+ }
245
+ }
246
+
247
+ ### Get No-Push-Device Notification Instance (should be in complete state)
248
+ # @name getNoPushDevice
249
+ GET {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/{{startNoPushDevice.response.body.id}}
250
+ Accept: application/json
251
+ Accept-Language: tr-TR
252
+ X-Request-Id: {{$guid}}
253
+
254
+ ###############################################################################
255
+ # #
256
+ # SCENARIO 6: NO CHANNELS (goes directly to complete) #
257
+ # #
258
+ ###############################################################################
259
+
260
+ ### Start Notification with No Channels
261
+ # @name startNoChannels
262
+ POST {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/start?sync=true
263
+ Content-Type: application/json
264
+ Accept-Language: tr-TR
265
+ X-Request-Id: {{$guid}}
266
+
267
+ {
268
+ "key": "notification-user-rez-2026-01-31T11-00-00-pm001",
269
+ "tags": [
270
+ "notification",
271
+ "user"
272
+ ],
273
+ "attributes": {
274
+ "userType": "user",
275
+ "channels": {
276
+ "sms": false,
277
+ "push": false
278
+ },
279
+ "hasRegisteredDevice": false,
280
+ "recipient": {
281
+ "phone": null,
282
+ "citizenshipNo": "",
283
+ "customerNo": 0
284
+ },
285
+ "context": {
286
+ "reservationKey": "rez-2026-01-31T11-00-00-pm001",
287
+ "advisorName": "Ahmet Yılmaz",
288
+ "startDateTime": "2026-01-31T11:00:00",
289
+ "endDateTime": "2026-01-31T11:30:00"
290
+ }
291
+ }
292
+ }
293
+
294
+ ### Get No-Channels Notification Instance (should be in complete state)
295
+ # @name getNoChannels
296
+ GET {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/{{startNoChannels.response.body.id}}
297
+ Accept: application/json
298
+ Accept-Language: tr-TR
299
+ X-Request-Id: {{$guid}}