ecoportal-api-graphql 1.3.16 → 2.2.0

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 (482) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +746 -6
  3. data/LICENSE +21 -21
  4. data/README.md +24 -24
  5. data/lib/ecoportal/api/common/graphql/auth_service.rb +115 -115
  6. data/lib/ecoportal/api/common/graphql/class_helpers.rb +46 -46
  7. data/lib/ecoportal/api/common/graphql/client.rb +69 -69
  8. data/lib/ecoportal/api/common/graphql/hash_helpers.rb +105 -105
  9. data/lib/ecoportal/api/common/graphql/http_client.rb +85 -2
  10. data/lib/ecoportal/api/common/graphql/model/as_input.rb +54 -54
  11. data/lib/ecoportal/api/common/graphql/model/diffable/classic_diff_service.rb +49 -49
  12. data/lib/ecoportal/api/common/graphql/model/diffable/diff_service.rb +188 -188
  13. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff.rb +55 -55
  14. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff_nesting.rb +295 -295
  15. data/lib/ecoportal/api/common/graphql/model/diffable/leaf_diff_service.rb +97 -0
  16. data/lib/ecoportal/api/common/graphql/model/diffable.rb +1 -0
  17. data/lib/ecoportal/api/common/graphql/model.rb +17 -17
  18. data/lib/ecoportal/api/common/graphql/patches.rb +1 -1
  19. data/lib/ecoportal/api/common/graphql/query_integration.rb +45 -45
  20. data/lib/ecoportal/api/common/graphql.rb +16 -16
  21. data/lib/ecoportal/api/common.graphql.rb +8 -8
  22. data/lib/ecoportal/api/graphql/base/action.rb +1 -1
  23. data/lib/ecoportal/api/graphql/base/action_category.rb +15 -15
  24. data/lib/ecoportal/api/graphql/base/action_event.rb +23 -0
  25. data/lib/ecoportal/api/graphql/base/action_event_page.rb +16 -0
  26. data/lib/ecoportal/api/graphql/base/activity.rb +38 -0
  27. data/lib/ecoportal/api/graphql/base/activity_log.rb +38 -0
  28. data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +13 -8
  29. data/lib/ecoportal/api/graphql/base/auth_log.rb +24 -0
  30. data/lib/ecoportal/api/graphql/base/authorization_result.rb +20 -0
  31. data/lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb +17 -5
  32. data/lib/ecoportal/api/graphql/base/contractor_entity.rb +24 -24
  33. data/lib/ecoportal/api/graphql/base/date_time.rb +12 -12
  34. data/lib/ecoportal/api/graphql/base/delta_result.rb +16 -16
  35. data/lib/ecoportal/api/graphql/base/field.rb +12 -12
  36. data/lib/ecoportal/api/graphql/base/file_attachment.rb +15 -15
  37. data/lib/ecoportal/api/graphql/base/file_container.rb +12 -4
  38. data/lib/ecoportal/api/graphql/base/location_classification_type.rb +2 -0
  39. data/lib/ecoportal/api/graphql/base/location_node.rb +14 -14
  40. data/lib/ecoportal/api/graphql/base/location_structure/draft/structure.rb +37 -37
  41. data/lib/ecoportal/api/graphql/base/location_structure/draft.rb +93 -93
  42. data/lib/ecoportal/api/graphql/base/location_structure.rb +3 -0
  43. data/lib/ecoportal/api/graphql/base/minimal_dashboard.rb +25 -0
  44. data/lib/ecoportal/api/graphql/base/organization.rb +2 -0
  45. data/lib/ecoportal/api/graphql/base/page/data_field/actions_list.rb +9 -9
  46. data/lib/ecoportal/api/graphql/base/page/data_field/ai_summary.rb +18 -18
  47. data/lib/ecoportal/api/graphql/base/page/data_field/checklist.rb +29 -29
  48. data/lib/ecoportal/api/graphql/base/page/data_field/contractor_entities.rb +26 -3
  49. data/lib/ecoportal/api/graphql/base/page/data_field/cross_reference.rb +1 -1
  50. data/lib/ecoportal/api/graphql/base/page/data_field/date_field.rb +23 -23
  51. data/lib/ecoportal/api/graphql/base/page/data_field/file_field.rb +47 -8
  52. data/lib/ecoportal/api/graphql/base/page/data_field/geo.rb +24 -24
  53. data/lib/ecoportal/api/graphql/base/page/data_field/image_gallery.rb +6 -3
  54. data/lib/ecoportal/api/graphql/base/page/data_field/law.rb +8 -8
  55. data/lib/ecoportal/api/graphql/base/page/data_field/mailbox.rb +9 -9
  56. data/lib/ecoportal/api/graphql/base/page/data_field/people.rb +50 -12
  57. data/lib/ecoportal/api/graphql/base/page/data_field/plain_text.rb +17 -17
  58. data/lib/ecoportal/api/graphql/base/page/data_field/rich_text.rb +26 -26
  59. data/lib/ecoportal/api/graphql/base/page/data_field/signature.rb +9 -9
  60. data/lib/ecoportal/api/graphql/base/page/data_field/smart_fill.rb +17 -17
  61. data/lib/ecoportal/api/graphql/base/page/data_field/table.rb +9 -9
  62. data/lib/ecoportal/api/graphql/base/page/data_field/tag_field.rb +21 -21
  63. data/lib/ecoportal/api/graphql/base/page/data_field.rb +12 -18
  64. data/lib/ecoportal/api/graphql/base/page/phased/stage.rb +51 -0
  65. data/lib/ecoportal/api/graphql/base/page/phased.rb +15 -15
  66. data/lib/ecoportal/api/graphql/base/page/section.rb +48 -48
  67. data/lib/ecoportal/api/graphql/base/page_info.rb +12 -12
  68. data/lib/ecoportal/api/graphql/base/pages_workflow/operation_interface.rb +39 -39
  69. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/assign_to.rb +27 -27
  70. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/send_notification.rb +30 -30
  71. data/lib/ecoportal/api/graphql/base/pages_workflow/recipient_config.rb +34 -34
  72. data/lib/ecoportal/api/graphql/base/pages_workflow.rb +35 -35
  73. data/lib/ecoportal/api/graphql/base/permissions.rb +15 -0
  74. data/lib/ecoportal/api/graphql/base/person_member.rb +22 -22
  75. data/lib/ecoportal/api/graphql/base/person_member_changelog.rb +23 -0
  76. data/lib/ecoportal/api/graphql/base/preset_view.rb +136 -1
  77. data/lib/ecoportal/api/graphql/base/preview_page.rb +23 -23
  78. data/lib/ecoportal/api/graphql/base/register.rb +6 -1
  79. data/lib/ecoportal/api/graphql/base/resource.rb +13 -13
  80. data/lib/ecoportal/api/graphql/base/template/change_log_entry.rb +118 -0
  81. data/lib/ecoportal/api/graphql/base/template.rb +2 -0
  82. data/lib/ecoportal/api/graphql/base.rb +9 -0
  83. data/lib/ecoportal/api/graphql/builder/action.rb +41 -41
  84. data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +10 -0
  85. data/lib/ecoportal/api/graphql/builder/location_structure/draft.rb +64 -64
  86. data/lib/ecoportal/api/graphql/builder/location_structure.rb +40 -40
  87. data/lib/ecoportal/api/graphql/builder/page.rb +0 -16
  88. data/lib/ecoportal/api/graphql/builder/register/preset_view.rb +84 -84
  89. data/lib/ecoportal/api/graphql/builder/register.rb +49 -49
  90. data/lib/ecoportal/api/graphql/builder/template.rb +46 -0
  91. data/lib/ecoportal/api/graphql/builder/template_builder.rb +21 -2
  92. data/lib/ecoportal/api/graphql/compat/page_reference.rb +23 -23
  93. data/lib/ecoportal/api/graphql/compat/pages.rb +7 -2
  94. data/lib/ecoportal/api/graphql/compat/registers.rb +84 -84
  95. data/lib/ecoportal/api/graphql/compat/response.rb +14 -0
  96. data/lib/ecoportal/api/graphql/compat/search_results.rb +33 -33
  97. data/lib/ecoportal/api/graphql/compat.rb +17 -17
  98. data/lib/ecoportal/api/graphql/concerns/data_field_access.rb +71 -71
  99. data/lib/ecoportal/api/graphql/concerns/fragment_definitions.rb +68 -68
  100. data/lib/ecoportal/api/graphql/concerns/snake_camel_access.rb +60 -60
  101. data/lib/ecoportal/api/graphql/concerns/threadable.rb +58 -0
  102. data/lib/ecoportal/api/graphql/concerns.rb +1 -0
  103. data/lib/ecoportal/api/graphql/connection/action.rb +1 -1
  104. data/lib/ecoportal/api/graphql/connection/action_category.rb +1 -1
  105. data/lib/ecoportal/api/graphql/connection/activity.rb +11 -0
  106. data/lib/ecoportal/api/graphql/connection/activity_log.rb +11 -0
  107. data/lib/ecoportal/api/graphql/connection/auth_log.rb +11 -0
  108. data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +1 -1
  109. data/lib/ecoportal/api/graphql/connection/minimal_dashboard.rb +11 -0
  110. data/lib/ecoportal/api/graphql/connection/page.rb +1 -1
  111. data/lib/ecoportal/api/graphql/connection/pages_workflow_command.rb +1 -1
  112. data/lib/ecoportal/api/graphql/connection/person_member.rb +1 -1
  113. data/lib/ecoportal/api/graphql/connection/person_member_changelog.rb +11 -0
  114. data/lib/ecoportal/api/graphql/connection/preset_view.rb +11 -11
  115. data/lib/ecoportal/api/graphql/connection/preview_page.rb +1 -1
  116. data/lib/ecoportal/api/graphql/connection/template_change_log.rb +19 -0
  117. data/lib/ecoportal/api/graphql/connection.rb +6 -0
  118. data/lib/ecoportal/api/graphql/diff/change.rb +7 -2
  119. data/lib/ecoportal/api/graphql/diff/command_synthesizer.rb +19 -1
  120. data/lib/ecoportal/api/graphql/diff/pairing/signals.rb +21 -1
  121. data/lib/ecoportal/api/graphql/diff/version_diff.rb +13 -6
  122. data/lib/ecoportal/api/graphql/error/locations_error/fetch_nested.rb +51 -51
  123. data/lib/ecoportal/api/graphql/error/locations_error.rb +28 -28
  124. data/lib/ecoportal/api/graphql/error/locations_validation_error.rb +20 -20
  125. data/lib/ecoportal/api/graphql/error/validation_errors.rb +28 -28
  126. data/lib/ecoportal/api/graphql/error.rb +12 -12
  127. data/lib/ecoportal/api/graphql/file_upload/client.rb +199 -140
  128. data/lib/ecoportal/api/graphql/file_upload.rb +10 -10
  129. data/lib/ecoportal/api/graphql/fragment/action.rb +65 -65
  130. data/lib/ecoportal/api/graphql/fragment/action_category.rb +17 -17
  131. data/lib/ecoportal/api/graphql/fragment/activity.rb +84 -0
  132. data/lib/ecoportal/api/graphql/fragment/activity_log.rb +75 -0
  133. data/lib/ecoportal/api/graphql/fragment/auth_log.rb +29 -0
  134. data/lib/ecoportal/api/graphql/fragment/authorization_result.rb +14 -0
  135. data/lib/ecoportal/api/graphql/fragment/contractor_entity.rb +20 -20
  136. data/lib/ecoportal/api/graphql/fragment/location_node.rb +1 -0
  137. data/lib/ecoportal/api/graphql/fragment/locations_error.rb +19 -19
  138. data/lib/ecoportal/api/graphql/fragment/minimal_dashboard.rb +31 -0
  139. data/lib/ecoportal/api/graphql/fragment/page.rb +1 -0
  140. data/lib/ecoportal/api/graphql/fragment/pages/common_page_union.rb +23 -0
  141. data/lib/ecoportal/api/graphql/fragment/pages.rb +15 -15
  142. data/lib/ecoportal/api/graphql/fragment/pagination.rb +17 -17
  143. data/lib/ecoportal/api/graphql/fragment/permissions.rb +98 -0
  144. data/lib/ecoportal/api/graphql/fragment/person_member_changelog.rb +33 -0
  145. data/lib/ecoportal/api/graphql/fragment/template_change_log.rb +102 -0
  146. data/lib/ecoportal/api/graphql/fragment.rb +8 -0
  147. data/lib/ecoportal/api/graphql/helpers/locations_tree.rb +41 -41
  148. data/lib/ecoportal/api/graphql/helpers.rb +10 -10
  149. data/lib/ecoportal/api/graphql/input/action/archive.rb +14 -14
  150. data/lib/ecoportal/api/graphql/input/action/create.rb +13 -13
  151. data/lib/ecoportal/api/graphql/input/action/update.rb +12 -0
  152. data/lib/ecoportal/api/graphql/input/action.rb +14 -14
  153. data/lib/ecoportal/api/graphql/input/contractor_entity/create.rb +14 -14
  154. data/lib/ecoportal/api/graphql/input/contractor_entity/destroy.rb +13 -13
  155. data/lib/ecoportal/api/graphql/input/contractor_entity/manager_settings.rb +20 -0
  156. data/lib/ecoportal/api/graphql/input/contractor_entity/update.rb +6 -27
  157. data/lib/ecoportal/api/graphql/input/contractor_entity.rb +1 -0
  158. data/lib/ecoportal/api/graphql/input/date_range.rb +16 -0
  159. data/lib/ecoportal/api/graphql/input/delta_input.rb +16 -16
  160. data/lib/ecoportal/api/graphql/input/id_diff.rb +11 -11
  161. data/lib/ecoportal/api/graphql/input/location_structure/apply_commands.rb +2 -2
  162. data/lib/ecoportal/api/graphql/input/location_structure/archive_command.rb +13 -13
  163. data/lib/ecoportal/api/graphql/input/location_structure/delete_command.rb +13 -13
  164. data/lib/ecoportal/api/graphql/input/location_structure/draft/add_commands.rb +2 -2
  165. data/lib/ecoportal/api/graphql/input/location_structure/draft/create.rb +15 -15
  166. data/lib/ecoportal/api/graphql/input/location_structure/draft/delete.rb +15 -15
  167. data/lib/ecoportal/api/graphql/input/location_structure/draft/drop_bad_commands.rb +16 -16
  168. data/lib/ecoportal/api/graphql/input/location_structure/draft/publish.rb +16 -16
  169. data/lib/ecoportal/api/graphql/input/location_structure/draft.rb +19 -19
  170. data/lib/ecoportal/api/graphql/input/location_structure/insert_command.rb +21 -13
  171. data/lib/ecoportal/api/graphql/input/location_structure/move_command.rb +14 -14
  172. data/lib/ecoportal/api/graphql/input/location_structure/reorder_command.rb +13 -13
  173. data/lib/ecoportal/api/graphql/input/location_structure/unarchive_command.rb +13 -13
  174. data/lib/ecoportal/api/graphql/input/location_structure/update_command.rb +6 -2
  175. data/lib/ecoportal/api/graphql/input/location_structure.rb +20 -20
  176. data/lib/ecoportal/api/graphql/input/page/archive.rb +14 -14
  177. data/lib/ecoportal/api/graphql/input/page/build_from_template.rb +13 -13
  178. data/lib/ecoportal/api/graphql/input/page/create_draft.rb +13 -13
  179. data/lib/ecoportal/api/graphql/input/page/create_from_template.rb +18 -18
  180. data/lib/ecoportal/api/graphql/input/page/delete_draft.rb +13 -13
  181. data/lib/ecoportal/api/graphql/input/page/publish_draft.rb +13 -13
  182. data/lib/ecoportal/api/graphql/input/page/review_task.rb +27 -14
  183. data/lib/ecoportal/api/graphql/input/page/unarchive.rb +14 -14
  184. data/lib/ecoportal/api/graphql/input/page.rb +26 -26
  185. data/lib/ecoportal/api/graphql/input/preset_view/create.rb +18 -18
  186. data/lib/ecoportal/api/graphql/input/preset_view/permission.rb +16 -16
  187. data/lib/ecoportal/api/graphql/input/preset_view/update.rb +17 -2
  188. data/lib/ecoportal/api/graphql/input/preset_view.rb +14 -14
  189. data/lib/ecoportal/api/graphql/input/register/create.rb +18 -18
  190. data/lib/ecoportal/api/graphql/input/register/update.rb +15 -15
  191. data/lib/ecoportal/api/graphql/input/register.rb +13 -13
  192. data/lib/ecoportal/api/graphql/input/search.rb +13 -13
  193. data/lib/ecoportal/api/graphql/input/search_conf/ai_generator.rb +234 -234
  194. data/lib/ecoportal/api/graphql/input/search_filter.rb +12 -12
  195. data/lib/ecoportal/api/graphql/input/search_sorter.rb +11 -11
  196. data/lib/ecoportal/api/graphql/input/workflow_command/add_action_tag.rb +18 -18
  197. data/lib/ecoportal/api/graphql/input/workflow_command/add_binding.rb +18 -18
  198. data/lib/ecoportal/api/graphql/input/workflow_command/add_checklist_field_item.rb +19 -0
  199. data/lib/ecoportal/api/graphql/input/workflow_command/add_comment_tagging_user_group.rb +18 -18
  200. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_direct_strategy_user.rb +18 -18
  201. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_strategy.rb +18 -18
  202. data/lib/ecoportal/api/graphql/input/workflow_command/add_direct_strategy_user.rb +18 -18
  203. data/lib/ecoportal/api/graphql/input/workflow_command/add_field.rb +10 -9
  204. data/lib/ecoportal/api/graphql/input/workflow_command/add_force.rb +18 -18
  205. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_field_config.rb +23 -23
  206. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_helper.rb +18 -18
  207. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation.rb +18 -18
  208. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_direct_strategy_user.rb +18 -18
  209. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_strategy.rb +18 -18
  210. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_action_type.rb +18 -18
  211. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_filter.rb +18 -18
  212. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_people_field.rb +18 -18
  213. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_task_config.rb +18 -18
  214. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_user.rb +18 -18
  215. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback.rb +23 -23
  216. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback_action.rb +18 -18
  217. data/lib/ecoportal/api/graphql/input/workflow_command/add_section.rb +18 -18
  218. data/lib/ecoportal/api/graphql/input/workflow_command/add_select_field_option.rb +25 -19
  219. data/lib/ecoportal/api/graphql/input/workflow_command/add_smart_fill_config.rb +23 -0
  220. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +3 -2
  221. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_section.rb +18 -18
  222. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_tag.rb +18 -18
  223. data/lib/ecoportal/api/graphql/input/workflow_command/add_strategy.rb +18 -18
  224. data/lib/ecoportal/api/graphql/input/workflow_command/add_task.rb +18 -18
  225. data/lib/ecoportal/api/graphql/input/workflow_command/add_task_assignment_user_group.rb +18 -18
  226. data/lib/ecoportal/api/graphql/input/workflow_command/add_viewable_field.rb +45 -0
  227. data/lib/ecoportal/api/graphql/input/workflow_command/add_workflow_callback.rb +18 -18
  228. data/lib/ecoportal/api/graphql/input/workflow_command/archive_public_config.rb +19 -0
  229. data/lib/ecoportal/api/graphql/input/workflow_command/collapse_section.rb +18 -18
  230. data/lib/ecoportal/api/graphql/input/workflow_command/create_public_config.rb +19 -0
  231. data/lib/ecoportal/api/graphql/input/workflow_command/edit_binding.rb +18 -18
  232. data/lib/ecoportal/api/graphql/input/workflow_command/edit_checklist_field_item.rb +19 -0
  233. data/lib/ecoportal/api/graphql/input/workflow_command/edit_creator_permissions.rb +18 -18
  234. data/lib/ecoportal/api/graphql/input/workflow_command/edit_default_strategy.rb +18 -18
  235. data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +17 -2
  236. data/lib/ecoportal/api/graphql/input/workflow_command/edit_force.rb +21 -18
  237. data/lib/ecoportal/api/graphql/input/workflow_command/edit_gauge_field_stop.rb +19 -19
  238. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_field_config.rb +19 -19
  239. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_helper.rb +18 -18
  240. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation.rb +18 -18
  241. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation_strategy.rb +18 -18
  242. data/lib/ecoportal/api/graphql/input/workflow_command/edit_public_config.rb +19 -0
  243. data/lib/ecoportal/api/graphql/input/workflow_command/edit_reminder.rb +18 -18
  244. data/lib/ecoportal/api/graphql/input/workflow_command/edit_required_sign_offs.rb +18 -18
  245. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_comment_tagging.rb +18 -18
  246. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_task_assignment.rb +18 -18
  247. data/lib/ecoportal/api/graphql/input/workflow_command/edit_scheduled_callback.rb +22 -22
  248. data/lib/ecoportal/api/graphql/input/workflow_command/edit_section_header.rb +18 -18
  249. data/lib/ecoportal/api/graphql/input/workflow_command/edit_select_field_option.rb +23 -19
  250. data/lib/ecoportal/api/graphql/input/workflow_command/edit_smart_fill_config.rb +21 -0
  251. data/lib/ecoportal/api/graphql/input/workflow_command/edit_stage.rb +18 -18
  252. data/lib/ecoportal/api/graphql/input/workflow_command/edit_strategy.rb +18 -18
  253. data/lib/ecoportal/api/graphql/input/workflow_command/edit_task_due.rb +18 -18
  254. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_advanced_settings.rb +19 -0
  255. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_basic_settings.rb +32 -0
  256. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_container_uid.rb +45 -0
  257. data/lib/ecoportal/api/graphql/input/workflow_command/{edit_page_creator_permissions.rb → edit_template_creator_permissions.rb} +3 -2
  258. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_descriptions.rb +19 -0
  259. data/lib/ecoportal/api/graphql/input/workflow_command/edit_trigger.rb +18 -18
  260. data/lib/ecoportal/api/graphql/input/workflow_command/expand_section.rb +18 -18
  261. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/action_list.rb +31 -0
  262. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/contractor_entities.rb +28 -24
  263. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +9 -1
  264. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +15 -2
  265. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/file.rb +21 -0
  266. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/gauge.rb +20 -20
  267. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +3 -2
  268. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/location_field.rb +24 -24
  269. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/people.rb +27 -3
  270. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +9 -2
  271. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +3 -2
  272. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +3 -2
  273. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/signature.rb +20 -20
  274. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/table.rb +25 -25
  275. data/lib/ecoportal/api/graphql/input/workflow_command/manage_copy_page_configuration.rb +47 -0
  276. data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +3 -2
  277. data/lib/ecoportal/api/graphql/input/workflow_command/move_stage.rb +18 -18
  278. data/lib/ecoportal/api/graphql/input/workflow_command/move_viewable_field.rb +33 -0
  279. data/lib/ecoportal/api/graphql/input/workflow_command/remove_action_tag.rb +18 -18
  280. data/lib/ecoportal/api/graphql/input/workflow_command/remove_binding.rb +18 -18
  281. data/lib/ecoportal/api/graphql/input/workflow_command/remove_callback.rb +18 -18
  282. data/lib/ecoportal/api/graphql/input/workflow_command/remove_checklist_field_item.rb +19 -0
  283. data/lib/ecoportal/api/graphql/input/workflow_command/remove_comment_tagging_user_group.rb +18 -18
  284. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_direct_strategy_user.rb +18 -18
  285. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_strategy.rb +18 -18
  286. data/lib/ecoportal/api/graphql/input/workflow_command/remove_direct_strategy_user.rb +18 -18
  287. data/lib/ecoportal/api/graphql/input/workflow_command/remove_field.rb +18 -18
  288. data/lib/ecoportal/api/graphql/input/workflow_command/remove_force.rb +18 -18
  289. data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_helper.rb +18 -18
  290. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation.rb +18 -18
  291. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_direct_strategy_user.rb +18 -18
  292. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_strategy.rb +18 -18
  293. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_action_type.rb +18 -18
  294. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_filter.rb +18 -18
  295. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_people_field.rb +18 -18
  296. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_task_config.rb +18 -18
  297. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_user.rb +18 -18
  298. data/lib/ecoportal/api/graphql/input/workflow_command/remove_scheduled_callback.rb +18 -18
  299. data/lib/ecoportal/api/graphql/input/workflow_command/remove_section.rb +18 -18
  300. data/lib/ecoportal/api/graphql/input/workflow_command/remove_smart_fill_config.rb +19 -0
  301. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage.rb +18 -18
  302. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_section.rb +18 -18
  303. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_tag.rb +18 -18
  304. data/lib/ecoportal/api/graphql/input/workflow_command/remove_strategy.rb +18 -18
  305. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task.rb +18 -18
  306. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_assignment_user_group.rb +18 -18
  307. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_due.rb +18 -18
  308. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_priority_level.rb +18 -18
  309. data/lib/ecoportal/api/graphql/input/workflow_command/remove_viewable_field.rb +21 -0
  310. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +3 -2
  311. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +3 -2
  312. data/lib/ecoportal/api/graphql/input/workflow_command.rb +46 -5
  313. data/lib/ecoportal/api/graphql/input.rb +1 -0
  314. data/lib/ecoportal/api/graphql/interface/base_page.rb +50 -3
  315. data/lib/ecoportal/api/graphql/interface/location_structure/command.rb +2 -1
  316. data/lib/ecoportal/api/graphql/interface/location_structure/node.rb +43 -43
  317. data/lib/ecoportal/api/graphql/interface/location_structure.rb +14 -14
  318. data/lib/ecoportal/api/graphql/interface.rb +11 -11
  319. data/lib/ecoportal/api/graphql/logic/base_model.rb +15 -15
  320. data/lib/ecoportal/api/graphql/logic/base_query.rb +260 -193
  321. data/lib/ecoportal/api/graphql/logic/connection.rb +17 -0
  322. data/lib/ecoportal/api/graphql/logic/input.rb +127 -0
  323. data/lib/ecoportal/api/graphql/logic/mutation.rb +59 -59
  324. data/lib/ecoportal/api/graphql/logic/payload.rb +42 -42
  325. data/lib/ecoportal/api/graphql/logic/query.rb +23 -23
  326. data/lib/ecoportal/api/graphql/logic/query_array.rb +30 -30
  327. data/lib/ecoportal/api/graphql/logic/query_connection.rb +48 -48
  328. data/lib/ecoportal/api/graphql/logic.rb +18 -18
  329. data/lib/ecoportal/api/graphql/model/account.rb +15 -15
  330. data/lib/ecoportal/api/graphql/model/action.rb +22 -22
  331. data/lib/ecoportal/api/graphql/model/action_event.rb +14 -0
  332. data/lib/ecoportal/api/graphql/model/action_event_page.rb +10 -0
  333. data/lib/ecoportal/api/graphql/model/activity.rb +14 -0
  334. data/lib/ecoportal/api/graphql/model/activity_log.rb +31 -0
  335. data/lib/ecoportal/api/graphql/model/ai_summary_version.rb +10 -10
  336. data/lib/ecoportal/api/graphql/model/auth_log.rb +11 -0
  337. data/lib/ecoportal/api/graphql/model/authorization_result.rb +12 -0
  338. data/lib/ecoportal/api/graphql/model/contractor_entity.rb +12 -12
  339. data/lib/ecoportal/api/graphql/model/field.rb +10 -10
  340. data/lib/ecoportal/api/graphql/model/file_attachment.rb +10 -10
  341. data/lib/ecoportal/api/graphql/model/file_container.rb +11 -11
  342. data/lib/ecoportal/api/graphql/model/location_node.rb +14 -14
  343. data/lib/ecoportal/api/graphql/model/location_structure/draft/structure.rb +15 -15
  344. data/lib/ecoportal/api/graphql/model/location_structure/draft.rb +15 -15
  345. data/lib/ecoportal/api/graphql/model/location_structure.rb +16 -16
  346. data/lib/ecoportal/api/graphql/model/minimal_dashboard.rb +14 -0
  347. data/lib/ecoportal/api/graphql/model/organization.rb +36 -0
  348. data/lib/ecoportal/api/graphql/model/page/basic.rb +14 -14
  349. data/lib/ecoportal/api/graphql/model/page/data_field.rb +12 -12
  350. data/lib/ecoportal/api/graphql/model/page/phased/stage.rb +14 -14
  351. data/lib/ecoportal/api/graphql/model/page/phased.rb +17 -0
  352. data/lib/ecoportal/api/graphql/model/page/section.rb +12 -12
  353. data/lib/ecoportal/api/graphql/model/page_union.rb +21 -21
  354. data/lib/ecoportal/api/graphql/model/pages_workflow.rb +20 -20
  355. data/lib/ecoportal/api/graphql/model/permissions.rb +179 -0
  356. data/lib/ecoportal/api/graphql/model/person_member.rb +7 -0
  357. data/lib/ecoportal/api/graphql/model/person_member_changelog.rb +15 -0
  358. data/lib/ecoportal/api/graphql/model/preset_view.rb +10 -10
  359. data/lib/ecoportal/api/graphql/model/preview_page.rb +10 -10
  360. data/lib/ecoportal/api/graphql/model/register.rb +10 -10
  361. data/lib/ecoportal/api/graphql/model/resource.rb +13 -13
  362. data/lib/ecoportal/api/graphql/model/template/change_log_entry.rb +19 -0
  363. data/lib/ecoportal/api/graphql/model/template.rb +4 -1
  364. data/lib/ecoportal/api/graphql/model/user.rb +14 -14
  365. data/lib/ecoportal/api/graphql/model.rb +9 -0
  366. data/lib/ecoportal/api/graphql/mutation/action/archive.rb +41 -41
  367. data/lib/ecoportal/api/graphql/mutation/action/create.rb +40 -40
  368. data/lib/ecoportal/api/graphql/mutation/action/update.rb +40 -40
  369. data/lib/ecoportal/api/graphql/mutation/action.rb +14 -14
  370. data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +21 -11
  371. data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +26 -11
  372. data/lib/ecoportal/api/graphql/mutation/ai_summary.rb +13 -13
  373. data/lib/ecoportal/api/graphql/mutation/contractor_entity/create.rb +40 -40
  374. data/lib/ecoportal/api/graphql/mutation/contractor_entity/destroy.rb +40 -40
  375. data/lib/ecoportal/api/graphql/mutation/contractor_entity/update.rb +40 -40
  376. data/lib/ecoportal/api/graphql/mutation/contractor_entity/update_manager_settings.rb +37 -0
  377. data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +1 -0
  378. data/lib/ecoportal/api/graphql/mutation/file_container/upload.rb +78 -0
  379. data/lib/ecoportal/api/graphql/mutation/file_container.rb +15 -0
  380. data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +54 -54
  381. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/add_commands.rb +55 -55
  382. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/create.rb +54 -54
  383. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/delete.rb +43 -43
  384. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/drop_bad_commands.rb +56 -56
  385. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/publish.rb +66 -66
  386. data/lib/ecoportal/api/graphql/mutation/location_structure/draft.rb +18 -18
  387. data/lib/ecoportal/api/graphql/mutation/location_structure.rb +13 -13
  388. data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +1 -1
  389. data/lib/ecoportal/api/graphql/mutation/page/archive.rb +40 -40
  390. data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +1 -1
  391. data/lib/ecoportal/api/graphql/mutation/page/build_from_template.rb +50 -50
  392. data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +1 -1
  393. data/lib/ecoportal/api/graphql/mutation/page/create_from_template.rb +43 -43
  394. data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +1 -1
  395. data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +1 -1
  396. data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +1 -1
  397. data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +1 -1
  398. data/lib/ecoportal/api/graphql/mutation/page/unarchive.rb +40 -40
  399. data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +1 -1
  400. data/lib/ecoportal/api/graphql/mutation/page/update.rb +40 -40
  401. data/lib/ecoportal/api/graphql/mutation/page.rb +28 -28
  402. data/lib/ecoportal/api/graphql/mutation/preset_view/create.rb +35 -35
  403. data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +1 -1
  404. data/lib/ecoportal/api/graphql/mutation/preset_view/permission.rb +37 -37
  405. data/lib/ecoportal/api/graphql/mutation/preset_view/update.rb +35 -35
  406. data/lib/ecoportal/api/graphql/mutation/preset_view.rb +15 -15
  407. data/lib/ecoportal/api/graphql/mutation/register/create.rb +35 -35
  408. data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +1 -1
  409. data/lib/ecoportal/api/graphql/mutation/register/update.rb +35 -35
  410. data/lib/ecoportal/api/graphql/mutation/register.rb +14 -14
  411. data/lib/ecoportal/api/graphql/mutation/template/update_related_page.rb +79 -0
  412. data/lib/ecoportal/api/graphql/mutation/template.rb +1 -0
  413. data/lib/ecoportal/api/graphql/mutation.rb +1 -1
  414. data/lib/ecoportal/api/graphql/payload/action/archive.rb +13 -13
  415. data/lib/ecoportal/api/graphql/payload/action/create.rb +13 -13
  416. data/lib/ecoportal/api/graphql/payload/action/update.rb +13 -13
  417. data/lib/ecoportal/api/graphql/payload/action.rb +14 -14
  418. data/lib/ecoportal/api/graphql/payload/ai_summary_generate.rb +12 -12
  419. data/lib/ecoportal/api/graphql/payload/contractor_entity/create.rb +13 -13
  420. data/lib/ecoportal/api/graphql/payload/contractor_entity/destroy.rb +12 -12
  421. data/lib/ecoportal/api/graphql/payload/contractor_entity/manager_settings.rb +20 -0
  422. data/lib/ecoportal/api/graphql/payload/contractor_entity/update.rb +12 -12
  423. data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +1 -0
  424. data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_jobs.rb +2 -2
  425. data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_workflows.rb +2 -2
  426. data/lib/ecoportal/api/graphql/payload/location_structure/apply_commands.rb +51 -51
  427. data/lib/ecoportal/api/graphql/payload/location_structure/command_execution_result.rb +50 -50
  428. data/lib/ecoportal/api/graphql/payload/location_structure/draft/add_commands.rb +30 -30
  429. data/lib/ecoportal/api/graphql/payload/location_structure/draft/delete.rb +30 -30
  430. data/lib/ecoportal/api/graphql/payload/location_structure/draft/drop_bad_commands.rb +43 -43
  431. data/lib/ecoportal/api/graphql/payload/location_structure/draft/publish.rb +63 -63
  432. data/lib/ecoportal/api/graphql/payload/location_structure/draft.rb +18 -18
  433. data/lib/ecoportal/api/graphql/payload/location_structure.rb +14 -14
  434. data/lib/ecoportal/api/graphql/payload/ok_payload.rb +1 -1
  435. data/lib/ecoportal/api/graphql/payload/page/archive.rb +13 -13
  436. data/lib/ecoportal/api/graphql/payload/page/build_from_template.rb +13 -13
  437. data/lib/ecoportal/api/graphql/payload/page/create_from_template.rb +13 -13
  438. data/lib/ecoportal/api/graphql/payload/page/draft.rb +1 -1
  439. data/lib/ecoportal/api/graphql/payload/page/review_task.rb +1 -1
  440. data/lib/ecoportal/api/graphql/payload/page/unarchive.rb +13 -13
  441. data/lib/ecoportal/api/graphql/payload/page/update.rb +13 -13
  442. data/lib/ecoportal/api/graphql/payload/preset_view.rb +1 -1
  443. data/lib/ecoportal/api/graphql/payload/register.rb +1 -1
  444. data/lib/ecoportal/api/graphql/payload/template/update_related_page.rb +15 -0
  445. data/lib/ecoportal/api/graphql/payload/template.rb +1 -0
  446. data/lib/ecoportal/api/graphql/payload/upload.rb +12 -0
  447. data/lib/ecoportal/api/graphql/payload.rb +1 -0
  448. data/lib/ecoportal/api/graphql/query/action.rb +33 -33
  449. data/lib/ecoportal/api/graphql/query/action_categories.rb +53 -53
  450. data/lib/ecoportal/api/graphql/query/actions.rb +43 -43
  451. data/lib/ecoportal/api/graphql/query/activity_logs.rb +78 -0
  452. data/lib/ecoportal/api/graphql/query/auth_logs.rb +51 -0
  453. data/lib/ecoportal/api/graphql/query/contractor_entities.rb +53 -53
  454. data/lib/ecoportal/api/graphql/query/dashboard_search.rb +57 -0
  455. data/lib/ecoportal/api/graphql/query/file_upload_signature.rb +76 -76
  456. data/lib/ecoportal/api/graphql/query/location_classifications.rb +39 -39
  457. data/lib/ecoportal/api/graphql/query/location_structure.rb +2 -0
  458. data/lib/ecoportal/api/graphql/query/location_structures.rb +2 -0
  459. data/lib/ecoportal/api/graphql/query/page.rb +6 -1
  460. data/lib/ecoportal/api/graphql/query/page_activities.rb +56 -0
  461. data/lib/ecoportal/api/graphql/query/page_delta.rb +47 -47
  462. data/lib/ecoportal/api/graphql/query/pages.rb +59 -59
  463. data/lib/ecoportal/api/graphql/query/permissions.rb +35 -0
  464. data/lib/ecoportal/api/graphql/query/person_member_changelogs.rb +53 -0
  465. data/lib/ecoportal/api/graphql/query/person_members.rb +76 -0
  466. data/lib/ecoportal/api/graphql/query/register_preset_views.rb +1 -1
  467. data/lib/ecoportal/api/graphql/query/register_preview_pages.rb +83 -83
  468. data/lib/ecoportal/api/graphql/query/template_change_log.rb +118 -0
  469. data/lib/ecoportal/api/graphql/query/templates.rb +53 -53
  470. data/lib/ecoportal/api/graphql/query.rb +8 -0
  471. data/lib/ecoportal/api/graphql_version.rb +1 -1
  472. data/lib/ecoportal/api-graphql.rb +10 -10
  473. metadata +82 -19
  474. data/lib/ecoportal/api/common/graphql/CLAUDE.md +0 -36
  475. data/lib/ecoportal/api/common/graphql/model/CLAUDE.md +0 -28
  476. data/lib/ecoportal/api/graphql/CLAUDE.md +0 -37
  477. data/lib/ecoportal/api/graphql/base/CLAUDE.md +0 -50
  478. data/lib/ecoportal/api/graphql/builder/CLAUDE.md +0 -65
  479. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +0 -28
  480. data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +0 -36
  481. data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +0 -40
  482. data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +0 -13
@@ -1,39 +1,39 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- class PagesWorkflow
6
- class OperationInterface < Logic::BaseModel
7
- SCHEMA_VERSION = '20260605'.freeze
8
-
9
- passkey :id
10
- passdate :delayedExecuteAt
11
- passboolean :timeDelayPassed
12
-
13
- class_resolver :time_delay_config_class,
14
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::TimeDelayConfig'
15
-
16
- embeds_one :timeDelayConfig, klass: :time_delay_config_class
17
-
18
- require_relative 'operations/assign_to'
19
- require_relative 'operations/create_page'
20
- require_relative 'operations/send_notification'
21
-
22
- def self.from_doc(raw_doc)
23
- case raw_doc&.fetch('__typename', nil)
24
- when 'PagesWorkflowOperationsAssignTo'
25
- Operations::AssignTo.new(raw_doc)
26
- when 'PagesWorkflowOperationsCreatePage'
27
- Operations::CreatePage.new(raw_doc)
28
- when 'PagesWorkflowOperationsSendNotification'
29
- Operations::SendNotification.new(raw_doc)
30
- else
31
- new(raw_doc)
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ class PagesWorkflow
6
+ class OperationInterface < Logic::BaseModel
7
+ SCHEMA_VERSION = '20260605'.freeze
8
+
9
+ passkey :id
10
+ passdate :delayedExecuteAt
11
+ passboolean :timeDelayPassed
12
+
13
+ class_resolver :time_delay_config_class,
14
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::TimeDelayConfig'
15
+
16
+ embeds_one :timeDelayConfig, klass: :time_delay_config_class
17
+
18
+ require_relative 'operations/assign_to'
19
+ require_relative 'operations/create_page'
20
+ require_relative 'operations/send_notification'
21
+
22
+ def self.from_doc(raw_doc)
23
+ case raw_doc&.fetch('__typename', nil)
24
+ when 'PagesWorkflowOperationsAssignTo'
25
+ Operations::AssignTo.new(raw_doc)
26
+ when 'PagesWorkflowOperationsCreatePage'
27
+ Operations::CreatePage.new(raw_doc)
28
+ when 'PagesWorkflowOperationsSendNotification'
29
+ Operations::SendNotification.new(raw_doc)
30
+ else
31
+ new(raw_doc)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,27 +1,27 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- class PagesWorkflow
6
- module Operations
7
- class AssignTo < OperationInterface
8
- SCHEMA_VERSION = '20260605'.freeze
9
-
10
- passthrough :targetTaskType
11
- passboolean :lastFulfilled
12
-
13
- class_resolver :escalation_level_class,
14
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::EscalationLevel'
15
-
16
- embeds_many :escalationLevels, klass: :escalation_level_class, read_only: true
17
-
18
- def strategies
19
- @strategies ||= Array(doc['strategies'] || [])
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ class PagesWorkflow
6
+ module Operations
7
+ class AssignTo < OperationInterface
8
+ SCHEMA_VERSION = '20260605'.freeze
9
+
10
+ passthrough :targetTaskType
11
+ passboolean :lastFulfilled
12
+
13
+ class_resolver :escalation_level_class,
14
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::EscalationLevel'
15
+
16
+ embeds_many :escalationLevels, klass: :escalation_level_class, read_only: true
17
+
18
+ def strategies
19
+ @strategies ||= Array(doc['strategies'] || [])
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,30 +1,30 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- class PagesWorkflow
6
- module Operations
7
- class SendNotification < OperationInterface
8
- SCHEMA_VERSION = '20260605'.freeze
9
-
10
- passboolean :recurring, :recurrenceActive
11
- passthrough :recurrenceCount, :recurrenceEndCount, :recurrenceEndType
12
- passdate :nextRecurrenceAt
13
-
14
- class_resolver :email_config_class,
15
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::EmailConfig'
16
- class_resolver :in_system_config_class,
17
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::InSystemConfig'
18
- class_resolver :recipient_config_class,
19
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::RecipientConfig'
20
-
21
- embeds_one :emailConfig, klass: :email_config_class
22
- embeds_one :inSystemConfig, klass: :in_system_config_class
23
- embeds_one :recipientConfig, klass: :recipient_config_class
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ class PagesWorkflow
6
+ module Operations
7
+ class SendNotification < OperationInterface
8
+ SCHEMA_VERSION = '20260605'.freeze
9
+
10
+ passboolean :recurring, :recurrenceActive
11
+ passthrough :recurrenceCount, :recurrenceEndCount, :recurrenceEndType
12
+ passdate :nextRecurrenceAt
13
+
14
+ class_resolver :email_config_class,
15
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::EmailConfig'
16
+ class_resolver :in_system_config_class,
17
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::InSystemConfig'
18
+ class_resolver :recipient_config_class,
19
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::RecipientConfig'
20
+
21
+ embeds_one :emailConfig, klass: :email_config_class
22
+ embeds_one :inSystemConfig, klass: :in_system_config_class
23
+ embeds_one :recipientConfig, klass: :recipient_config_class
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,34 +1,34 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- class PagesWorkflow
6
- class RecipientConfig < Logic::BaseModel
7
- SCHEMA_VERSION = '20260605'.freeze
8
-
9
- passboolean :allActiveUsers, :includeActionAssignees, :includeMailboxFields
10
- passboolean :includePageCreator, :includePeopleFields, :includeTaskAssignees
11
- passboolean :limitByPageTags
12
-
13
- class_resolver :action_type_selection_class,
14
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::ActionTypeSelection'
15
- class_resolver :mailbox_field_selection_class,
16
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::MailboxFieldSelection'
17
- class_resolver :people_field_selection_class,
18
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::PeopleFieldSelection'
19
- class_resolver :task_config_selection_class,
20
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::TaskConfigSelection'
21
- class_resolver :user_selection_class,
22
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::UserSelection'
23
-
24
- embeds_many :actionTypeSelections, klass: :action_type_selection_class, read_only: true
25
- embeds_many :mailboxFieldSelections, klass: :mailbox_field_selection_class, read_only: true
26
- embeds_many :peopleFieldSelections, klass: :people_field_selection_class, read_only: true
27
- embeds_many :taskConfigSelections, klass: :task_config_selection_class, read_only: true
28
- embeds_many :userSelections, klass: :user_selection_class, read_only: true
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ class PagesWorkflow
6
+ class RecipientConfig < Logic::BaseModel
7
+ SCHEMA_VERSION = '20260605'.freeze
8
+
9
+ passboolean :allActiveUsers, :includeActionAssignees, :includeMailboxFields
10
+ passboolean :includePageCreator, :includePeopleFields, :includeTaskAssignees
11
+ passboolean :limitByPageTags
12
+
13
+ class_resolver :action_type_selection_class,
14
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::ActionTypeSelection'
15
+ class_resolver :mailbox_field_selection_class,
16
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::MailboxFieldSelection'
17
+ class_resolver :people_field_selection_class,
18
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::PeopleFieldSelection'
19
+ class_resolver :task_config_selection_class,
20
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::TaskConfigSelection'
21
+ class_resolver :user_selection_class,
22
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::UserSelection'
23
+
24
+ embeds_many :actionTypeSelections, klass: :action_type_selection_class, read_only: true
25
+ embeds_many :mailboxFieldSelections, klass: :mailbox_field_selection_class, read_only: true
26
+ embeds_many :peopleFieldSelections, klass: :people_field_selection_class, read_only: true
27
+ embeds_many :taskConfigSelections, klass: :task_config_selection_class, read_only: true
28
+ embeds_many :userSelections, klass: :user_selection_class, read_only: true
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,35 +1,35 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- class PagesWorkflow < Logic::BaseModel
6
- SCHEMA_VERSION = '20260605'.freeze
7
-
8
- passboolean :autoPageCreationEnabled
9
- passarray :stages
10
-
11
- class_resolver :register_field_class,
12
- 'Ecoportal::API::GraphQL::Base::PagesWorkflow::RegisterField'
13
-
14
- embeds_many :fields, klass: :register_field_class, read_only: true
15
-
16
- require_relative 'pages_workflow/register_field'
17
- require_relative 'pages_workflow/time_delay_config'
18
- require_relative 'pages_workflow/escalation_level'
19
- require_relative 'pages_workflow/user_selection'
20
- require_relative 'pages_workflow/mailbox_field_selection'
21
- require_relative 'pages_workflow/people_field_selection'
22
- require_relative 'pages_workflow/task_config_selection'
23
- require_relative 'pages_workflow/action_type_selection'
24
- require_relative 'pages_workflow/email_config'
25
- require_relative 'pages_workflow/in_system_config'
26
- require_relative 'pages_workflow/recipient_config'
27
- require_relative 'pages_workflow/trigger_interface'
28
- require_relative 'pages_workflow/operation_interface'
29
- require_relative 'pages_workflow/callback_type'
30
- require_relative 'pages_workflow/command_interface'
31
- end
32
- end
33
- end
34
- end
35
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ class PagesWorkflow < Logic::BaseModel
6
+ SCHEMA_VERSION = '20260605'.freeze
7
+
8
+ passboolean :autoPageCreationEnabled
9
+ passarray :stages
10
+
11
+ class_resolver :register_field_class,
12
+ 'Ecoportal::API::GraphQL::Base::PagesWorkflow::RegisterField'
13
+
14
+ embeds_many :fields, klass: :register_field_class, read_only: true
15
+
16
+ require_relative 'pages_workflow/register_field'
17
+ require_relative 'pages_workflow/time_delay_config'
18
+ require_relative 'pages_workflow/escalation_level'
19
+ require_relative 'pages_workflow/user_selection'
20
+ require_relative 'pages_workflow/mailbox_field_selection'
21
+ require_relative 'pages_workflow/people_field_selection'
22
+ require_relative 'pages_workflow/task_config_selection'
23
+ require_relative 'pages_workflow/action_type_selection'
24
+ require_relative 'pages_workflow/email_config'
25
+ require_relative 'pages_workflow/in_system_config'
26
+ require_relative 'pages_workflow/recipient_config'
27
+ require_relative 'pages_workflow/trigger_interface'
28
+ require_relative 'pages_workflow/operation_interface'
29
+ require_relative 'pages_workflow/callback_type'
30
+ require_relative 'pages_workflow/command_interface'
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,15 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ # Permissions ? the org-level ability set (Organization.permissions).
6
+ # Every field is a `canXXX: AuthorizationResult!` permission check. Read-only.
7
+ # The concrete embeds_one declarations live on Model::Permissions (they reference
8
+ # Model::AuthorizationResult).
9
+ class Permissions < Logic::BaseModel
10
+ read_only!
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,22 +1,22 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- class PersonMember < Logic::BaseModel
6
- root!
7
-
8
- passkey :id
9
- passthrough :name, :email
10
- passarray :tagRestrict, :userGroupIds
11
-
12
- passthrough :personSchemaId
13
-
14
- passthrough :contractorOrganizationId
15
- passthrough :userId
16
-
17
- passboolean :tracingAdmin
18
- end
19
- end
20
- end
21
- end
22
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ class PersonMember < Logic::BaseModel
6
+ root!
7
+
8
+ passkey :id
9
+ passthrough :name, :email
10
+ passarray :tagRestrict, :userGroupIds
11
+
12
+ passthrough :personSchemaId
13
+
14
+ passthrough :contractorOrganizationId
15
+ passthrough :userId
16
+
17
+ passboolean :tracingAdmin
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ # A single audit entry in a person member's changelog history, returned by
6
+ # `PersonMember.changelogs` / `Organization.personMemberChangelogs`. Read-only.
7
+ #
8
+ # Enum-valued fields are exposed as plain strings:
9
+ # - operation / accountOperation: 'CREATE' | 'UPDATE' | 'DESTROY'
10
+ class PersonMemberChangelog < Logic::BaseModel
11
+ read_only!
12
+
13
+ passkey :id
14
+ passthrough :operation, :accountOperation
15
+ passthrough :personMemberId, :apiKeyPrefix
16
+ passboolean :changedByApi
17
+ passarray :humanReadableDifferences
18
+ embeds_one :createdAt, klass: Base::DateTime
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,15 +1,150 @@
1
- module Ecoportal
1
+ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Base
5
5
  # A register preset view — saved column/sort/filter configuration for previewPages.
6
6
  # Scripts use the id as `presetViewId` in register.previewPages queries.
7
7
  class PresetView < Logic::BaseModel
8
+ # `fieldConfigurations` is a passarray (leaf) invisible to the default
9
+ # DiffService; LeafDiffService detects it as a full-set replace, which is what
10
+ # makes a columns-only change reach `#as_input` at all (before it, the array was
11
+ # dropped from the flat diff and no mutation was issued). The read-key/shape
12
+ # conversion that change then needs is handled below — the GAP-P1 that comment
13
+ # referred to as a separate pending converter is closed by it.
14
+ # See Diffable::LeafDiffService.
15
+ DIFF_CLASS = Ecoportal::API::Common::GraphQL::Model::Diffable::LeafDiffService
16
+
17
+ # READ key vs WRITE key — and, on update, read SHAPE vs write SHAPE.
18
+ #
19
+ # The API RETURNS the collection as `fieldConfigurations`, a plain list (see the
20
+ # `passarray` below — that stays as-is, consumers read it). The mutations call it
21
+ # `fieldConfigs`, and the two mutations do NOT agree on its shape. Schema-verified
22
+ # against the live introspection dump (20260730):
23
+ #
24
+ # CreatePresetViewInput.fieldConfigs : [FieldConfigurationInput!]!
25
+ # UpdatePresetViewInput.fieldConfigs : FieldConfigurationOneToManyInput!
26
+ # { additions:, deletions:, updates: }
27
+ #
28
+ # Both are NON_NULL with no default value — i.e. REQUIRED on every call — while the
29
+ # `FieldConfigurationOneToManyInput` members each default to `[]`, so `{}` is a
30
+ # valid no-op value for an update that does not touch the columns.
31
+ #
32
+ # Emitting the read key `fieldConfigurations` is an unknown-argument error, and
33
+ # emitting the read LIST under `fieldConfigs` is a type error: either one rejects
34
+ # the WHOLE mutation, a `name`-only edit included.
35
+ #
36
+ # `#as_input` emits the UPDATE shape. `Logic::Mutation#as_input` hands a read model
37
+ # straight to `model.as_input` without telling it which mutation it feeds, and the
38
+ # only model-driven path is `register.preset_view.update`: a read model carries an
39
+ # `id`, which `CreatePresetViewInput` does not even accept. Create is built from a
40
+ # caller-supplied Hash (see Builder::Register::PresetView) whose `fieldConfigs` is
41
+ # already the plain array the schema wants — it needs no conversion.
42
+ READ_KEY = 'fieldConfigurations'.freeze
43
+
44
+ # The fields `FieldConfigurationInput` accepts (same dump). The read nodes also
45
+ # carry `__typename` — the read side is a union, see Fragment::FieldConfiguration —
46
+ # which the input type does NOT accept, so nodes are whitelisted through this list
47
+ # rather than passed along verbatim.
48
+ FIELD_CONFIG_INPUT_KEYS = %i[
49
+ id key name weight dataFieldLabel type showTime valueToShow mode displayUid
50
+ ].freeze
51
+
8
52
  passkey :id
9
53
  passthrough :name, :registerId
10
54
  passboolean :global
11
55
  passarray :fieldConfigurations
12
56
  passthrough :sorter # { key:, direction:, missing: }
57
+
58
+ class << self
59
+ # Turns a raw mutation-input diff into a valid `UpdatePresetViewInput`: drops the
60
+ # read key and sets `fieldConfigs` to the one-to-many delta.
61
+ #
62
+ # Idempotent — the read key is deleted and the delta is recomputed from
63
+ # `doc`/`original_doc`, so a second application yields the same Hash. That is what
64
+ # makes it safe for both seams (`#as_input` and `Input::PresetView::Update
65
+ # .from_model`) to call it on the same Hash.
66
+ #
67
+ # @param model [PresetView] the subject (read) model.
68
+ # @param input [Hash, nil] the mutation input hash so far (nil when nothing in the
69
+ # flat diff changed).
70
+ # @return [Hash, nil] +input+ with a schema-valid `fieldConfigs`, or nil when
71
+ # neither the flat diff nor the columns changed (no mutation to send).
72
+ def build_update_input(model, input)
73
+ return input unless model.respond_to?(:field_configs_delta)
74
+
75
+ delta = model.field_configs_delta
76
+ return input if input.nil? && delta.empty?
77
+
78
+ input ||= {}
79
+ input.delete(:fieldConfigurations)
80
+ input.delete(READ_KEY)
81
+ input[:id] ||= model.id if model.respond_to?(:id)
82
+ input[:fieldConfigs] = delta
83
+ input
84
+ end
85
+
86
+ # @param node [Hash] one `fieldConfigurations` read node.
87
+ # @return [Hash] the node reduced to the keys `FieldConfigurationInput` accepts,
88
+ # symbol-keyed. Keys the read selection did not ask for are simply absent.
89
+ def field_config_input(node)
90
+ FIELD_CONFIG_INPUT_KEYS.each_with_object({}) do |key, out|
91
+ str = key.to_s
92
+ out[key] = node[str] if node.key?(str)
93
+ out[key] = node[key] if node.key?(key)
94
+ end
95
+ end
96
+ end
97
+
98
+ # The `FieldConfigurationOneToManyInput` delta between the server baseline
99
+ # (`original_doc`) and the current `doc`, matched on the config `id`:
100
+ # `additions` = nodes with no known id, `deletions` = baseline ids that are gone,
101
+ # `updates` = known nodes whose (input-visible) content changed. Empty members are
102
+ # omitted, so an untouched collection yields `{}` — the valid no-op.
103
+ #
104
+ # Computed DIRECTLY from the docs rather than from the flat diff, for the same
105
+ # reason as {Logic::Input::IdDiffFields}: `passarray` leaves are dropped by the
106
+ # cascaded DiffService.
107
+ #
108
+ # @return [Hash] `{ additions:, deletions:, updates: }`, empty members omitted.
109
+ def field_configs_delta
110
+ current = field_config_nodes(doc)
111
+ original = field_config_nodes(original_doc)
112
+ known = original.filter_map {|node| node[:id]}
113
+
114
+ additions = current.reject {|node| node[:id] && known.include?(node[:id])}
115
+ updates = (current - additions) - original
116
+ deletions = known - current.filter_map {|node| node[:id]}
117
+
118
+ {}.tap do |delta|
119
+ delta[:additions] = additions unless additions.empty?
120
+ delta[:deletions] = deletions unless deletions.empty?
121
+ delta[:updates] = updates unless updates.empty?
122
+ end
123
+ end
124
+
125
+ # Mutation input for this preset view, shaped for `updatePresetView`.
126
+ # @see .build_update_input
127
+ def as_input(target_class: nil, clientMutationId: '')
128
+ input = self.class.build_update_input(self, super)
129
+ return input if input.nil? || target_class
130
+
131
+ # `super` merges it only when it built the Hash itself; a columns-only change
132
+ # synthesises the Hash here, so keep the wire payload identical either way.
133
+ input[:clientMutationId] = clientMutationId.to_s unless input.key?(:clientMutationId)
134
+ input
135
+ end
136
+
137
+ private
138
+
139
+ # @param source_doc [Hash, nil] `doc` or `original_doc`.
140
+ # @return [Array<Hash>] the read nodes, each reduced to input-accepted keys.
141
+ def field_config_nodes(source_doc)
142
+ return [] if source_doc.nil?
143
+
144
+ Array(source_doc[READ_KEY]).
145
+ grep(Hash).
146
+ map {|node| self.class.field_config_input(node)}
147
+ end
13
148
  end
14
149
  end
15
150
  end
@@ -1,23 +1,23 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- # Elasticsearch-backed preview of a page, returned by register.previewPages.
6
- # Read-only. No patchVer, no typed data field models, no field IDs.
7
- # Use for fast metadata lookup only — switch to org search (pages) for full data.
8
- class PreviewPage < Logic::BaseModel
9
- read_only!
10
-
11
- passkey :id
12
- passthrough :uid, :name, :state, :archived
13
- passthrough :creatorName, :externalId
14
- passdate :createdAt, :updatedAt
15
-
16
- # locations, dataFields, stages returned as raw arrays — typed access not needed
17
- # for a read-only ES-backed preview model. Use org search for typed field access.
18
- passarray :locations, :dataFields, :stages, :tags
19
- end
20
- end
21
- end
22
- end
23
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ # Elasticsearch-backed preview of a page, returned by register.previewPages.
6
+ # Read-only. No patchVer, no typed data field models, no field IDs.
7
+ # Use for fast metadata lookup only — switch to org search (pages) for full data.
8
+ class PreviewPage < Logic::BaseModel
9
+ read_only!
10
+
11
+ passkey :id
12
+ passthrough :uid, :name, :state, :archived
13
+ passthrough :creatorName, :externalId
14
+ passdate :createdAt, :updatedAt
15
+
16
+ # locations, dataFields, stages returned as raw arrays — typed access not needed
17
+ # for a read-only ES-backed preview model. Use org search for typed field access.
18
+ passarray :locations, :dataFields, :stages, :tags
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,8 +1,13 @@
1
- module Ecoportal
1
+ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Base
5
5
  class Register < Logic::BaseModel
6
+ # `filterTags` is a passarray (leaf) that the default DiffService cannot
7
+ # diff; LeafDiffService detects it as a full-set replace. See
8
+ # Diffable::LeafDiffService.
9
+ DIFF_CLASS = Ecoportal::API::Common::GraphQL::Model::Diffable::LeafDiffService
10
+
6
11
  passkey :id
7
12
  passthrough :name, :iconName, :moduleType, :registerStatus
8
13
  passthrough :descriptionText, :descriptionImageUrl