ecoportal-api-graphql 1.3.5 → 1.3.16

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 (434) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +934 -477
  3. data/lib/ecoportal/api/common/graphql/CLAUDE.md +36 -0
  4. data/lib/ecoportal/api/common/graphql/client.rb +1 -1
  5. data/lib/ecoportal/api/common/graphql/http_client.rb +195 -145
  6. data/lib/ecoportal/api/common/graphql/model/CLAUDE.md +28 -0
  7. data/lib/ecoportal/api/common/graphql/model/as_input.rb +8 -5
  8. data/lib/ecoportal/api/common/graphql/model/diffable/classic_diff_service.rb +3 -1
  9. data/lib/ecoportal/api/common/graphql/model/diffable/diff_service.rb +31 -23
  10. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff_nesting.rb +54 -1
  11. data/lib/ecoportal/api/common/graphql/model/diffable.rb +54 -54
  12. data/lib/ecoportal/api/graphql/CLAUDE.md +37 -0
  13. data/lib/ecoportal/api/graphql/base/CLAUDE.md +50 -0
  14. data/lib/ecoportal/api/graphql/base/action.rb +43 -43
  15. data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +17 -0
  16. data/lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb +67 -67
  17. data/lib/ecoportal/api/graphql/base/delta_result.rb +16 -0
  18. data/lib/ecoportal/api/graphql/base/file_container.rb +14 -14
  19. data/lib/ecoportal/api/graphql/base/force/binding.rb +19 -0
  20. data/lib/ecoportal/api/graphql/base/force/binding_collection.rb +62 -0
  21. data/lib/ecoportal/api/graphql/base/force/collection.rb +47 -0
  22. data/lib/ecoportal/api/graphql/base/force.rb +65 -0
  23. data/lib/ecoportal/api/graphql/base/kickstand/job.rb +17 -0
  24. data/lib/ecoportal/api/graphql/base/kickstand/workflow.rb +18 -0
  25. data/lib/ecoportal/api/graphql/base/kickstand.rb +13 -0
  26. data/lib/ecoportal/api/graphql/base/location_classification_type.rb +15 -15
  27. data/lib/ecoportal/api/graphql/base/location_structure.rb +27 -27
  28. data/lib/ecoportal/api/graphql/base/organization.rb +15 -15
  29. data/lib/ecoportal/api/graphql/base/page/basic.rb +38 -0
  30. data/lib/ecoportal/api/graphql/base/page/data_field/actions_list.rb +9 -0
  31. data/lib/ecoportal/api/graphql/base/page/data_field/ai_summary.rb +18 -0
  32. data/lib/ecoportal/api/graphql/base/page/data_field/checklist.rb +29 -0
  33. data/lib/ecoportal/api/graphql/base/page/data_field/collection.rb +119 -0
  34. data/lib/ecoportal/api/graphql/base/page/data_field/contractor_entities.rb +28 -0
  35. data/lib/ecoportal/api/graphql/base/page/data_field/cross_reference.rb +54 -0
  36. data/lib/ecoportal/api/graphql/base/page/data_field/date_field.rb +23 -0
  37. data/lib/ecoportal/api/graphql/base/page/data_field/file_field.rb +25 -0
  38. data/lib/ecoportal/api/graphql/base/page/data_field/gauge.rb +19 -0
  39. data/lib/ecoportal/api/graphql/base/page/data_field/geo.rb +24 -0
  40. data/lib/ecoportal/api/graphql/base/page/data_field/image_gallery.rb +24 -0
  41. data/lib/ecoportal/api/graphql/base/page/data_field/law.rb +8 -0
  42. data/lib/ecoportal/api/graphql/base/page/data_field/mailbox.rb +9 -0
  43. data/lib/ecoportal/api/graphql/base/page/data_field/number.rb +20 -0
  44. data/lib/ecoportal/api/graphql/base/page/data_field/people.rb +35 -0
  45. data/lib/ecoportal/api/graphql/base/page/data_field/plain_text.rb +17 -0
  46. data/lib/ecoportal/api/graphql/base/page/data_field/rich_text.rb +26 -0
  47. data/lib/ecoportal/api/graphql/base/page/data_field/select.rb +41 -0
  48. data/lib/ecoportal/api/graphql/base/page/data_field/signature.rb +9 -0
  49. data/lib/ecoportal/api/graphql/base/page/data_field/smart_fill.rb +17 -0
  50. data/lib/ecoportal/api/graphql/base/page/data_field/table.rb +9 -0
  51. data/lib/ecoportal/api/graphql/base/page/data_field/tag_field.rb +21 -0
  52. data/lib/ecoportal/api/graphql/base/page/data_field.rb +137 -12
  53. data/lib/ecoportal/api/graphql/base/page/phased/stage.rb +68 -14
  54. data/lib/ecoportal/api/graphql/base/page/phased.rb +1 -0
  55. data/lib/ecoportal/api/graphql/base/page/section.rb +36 -0
  56. data/lib/ecoportal/api/graphql/base/page/section_collection.rb +85 -0
  57. data/lib/ecoportal/api/graphql/base/page/task.rb +24 -0
  58. data/lib/ecoportal/api/graphql/base/page.rb +17 -14
  59. data/lib/ecoportal/api/graphql/base/pages_workflow/action_type_selection.rb +17 -0
  60. data/lib/ecoportal/api/graphql/base/pages_workflow/callback_type.rb +28 -0
  61. data/lib/ecoportal/api/graphql/base/pages_workflow/command_change.rb +17 -0
  62. data/lib/ecoportal/api/graphql/base/pages_workflow/command_change_message.rb +15 -0
  63. data/lib/ecoportal/api/graphql/base/pages_workflow/command_es_change.rb +17 -0
  64. data/lib/ecoportal/api/graphql/base/pages_workflow/command_interface.rb +36 -0
  65. data/lib/ecoportal/api/graphql/base/pages_workflow/email_config.rb +18 -0
  66. data/lib/ecoportal/api/graphql/base/pages_workflow/escalation_level.rb +19 -0
  67. data/lib/ecoportal/api/graphql/base/pages_workflow/in_system_config.rb +16 -0
  68. data/lib/ecoportal/api/graphql/base/pages_workflow/mailbox_field_selection.rb +17 -0
  69. data/lib/ecoportal/api/graphql/base/pages_workflow/operation_interface.rb +39 -0
  70. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/assign_to.rb +27 -0
  71. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/create_page.rb +21 -0
  72. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/send_notification.rb +30 -0
  73. data/lib/ecoportal/api/graphql/base/pages_workflow/people_field_selection.rb +17 -0
  74. data/lib/ecoportal/api/graphql/base/pages_workflow/recipient_config.rb +34 -0
  75. data/lib/ecoportal/api/graphql/base/pages_workflow/register_field.rb +17 -0
  76. data/lib/ecoportal/api/graphql/base/pages_workflow/task_config_selection.rb +17 -0
  77. data/lib/ecoportal/api/graphql/base/pages_workflow/time_delay_config.rb +16 -0
  78. data/lib/ecoportal/api/graphql/base/pages_workflow/trigger_interface.rb +26 -0
  79. data/lib/ecoportal/api/graphql/base/pages_workflow/triggers/conditional_logic.rb +17 -0
  80. data/lib/ecoportal/api/graphql/base/pages_workflow/user_selection.rb +16 -0
  81. data/lib/ecoportal/api/graphql/base/pages_workflow.rb +35 -0
  82. data/lib/ecoportal/api/graphql/base/preset_view.rb +17 -0
  83. data/lib/ecoportal/api/graphql/base/preview_page.rb +23 -0
  84. data/lib/ecoportal/api/graphql/base/register.rb +18 -0
  85. data/lib/ecoportal/api/graphql/base/template.rb +35 -0
  86. data/lib/ecoportal/api/graphql/base.rb +37 -24
  87. data/lib/ecoportal/api/graphql/builder/CLAUDE.md +65 -0
  88. data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +41 -41
  89. data/lib/ecoportal/api/graphql/builder/kickstand.rb +73 -0
  90. data/lib/ecoportal/api/graphql/builder/page.rb +210 -41
  91. data/lib/ecoportal/api/graphql/builder/register/preset_view.rb +84 -0
  92. data/lib/ecoportal/api/graphql/builder/register.rb +27 -19
  93. data/lib/ecoportal/api/graphql/builder/template.rb +80 -0
  94. data/lib/ecoportal/api/graphql/builder/template_builder.rb +174 -0
  95. data/lib/ecoportal/api/graphql/builder.rb +17 -14
  96. data/lib/ecoportal/api/graphql/compat/filter_translator.rb +142 -0
  97. data/lib/ecoportal/api/graphql/compat/page_reference.rb +23 -0
  98. data/lib/ecoportal/api/graphql/compat/pages.rb +212 -0
  99. data/lib/ecoportal/api/graphql/compat/registers.rb +84 -0
  100. data/lib/ecoportal/api/graphql/compat/response.rb +35 -0
  101. data/lib/ecoportal/api/graphql/compat/search_results.rb +33 -0
  102. data/lib/ecoportal/api/graphql/compat/stage_collection.rb +70 -0
  103. data/lib/ecoportal/api/graphql/compat/stage_view.rb +76 -0
  104. data/lib/ecoportal/api/graphql/compat.rb +17 -0
  105. data/lib/ecoportal/api/graphql/concerns/data_field_access.rb +71 -0
  106. data/lib/ecoportal/api/graphql/concerns/deprecation.rb +20 -0
  107. data/lib/ecoportal/api/graphql/concerns/fragment_definitions.rb +21 -28
  108. data/lib/ecoportal/api/graphql/concerns/page_compat.rb +51 -0
  109. data/lib/ecoportal/api/graphql/concerns/snake_camel_access.rb +60 -0
  110. data/lib/ecoportal/api/graphql/concerns.rb +14 -10
  111. data/lib/ecoportal/api/graphql/connection/action.rb +11 -11
  112. data/lib/ecoportal/api/graphql/connection/action_category.rb +11 -11
  113. data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +11 -11
  114. data/lib/ecoportal/api/graphql/connection/page.rb +11 -0
  115. data/lib/ecoportal/api/graphql/connection/pages_workflow_command.rb +13 -0
  116. data/lib/ecoportal/api/graphql/connection/person_member.rb +11 -11
  117. data/lib/ecoportal/api/graphql/connection/preset_view.rb +11 -0
  118. data/lib/ecoportal/api/graphql/connection/preview_page.rb +11 -0
  119. data/lib/ecoportal/api/graphql/connection.rb +17 -13
  120. data/lib/ecoportal/api/graphql/diff/change.rb +59 -0
  121. data/lib/ecoportal/api/graphql/diff/command_synthesizer.rb +329 -0
  122. data/lib/ecoportal/api/graphql/diff/cross_object_diff.rb +165 -0
  123. data/lib/ecoportal/api/graphql/diff/deploy.rb +121 -0
  124. data/lib/ecoportal/api/graphql/diff/id_resolver.rb +64 -0
  125. data/lib/ecoportal/api/graphql/diff/pairing/candidate.rb +32 -0
  126. data/lib/ecoportal/api/graphql/diff/pairing/engine.rb +173 -0
  127. data/lib/ecoportal/api/graphql/diff/pairing/ledger.rb +119 -0
  128. data/lib/ecoportal/api/graphql/diff/pairing/signals.rb +104 -0
  129. data/lib/ecoportal/api/graphql/diff/strategy.rb +113 -0
  130. data/lib/ecoportal/api/graphql/diff/version_diff.rb +332 -0
  131. data/lib/ecoportal/api/graphql/diff.rb +34 -0
  132. data/lib/ecoportal/api/graphql/file_upload/client.rb +192 -0
  133. data/lib/ecoportal/api/graphql/file_upload.rb +10 -0
  134. data/lib/ecoportal/api/graphql/fragment/action.rb +1 -1
  135. data/lib/ecoportal/api/graphql/fragment/action_category.rb +1 -1
  136. data/lib/ecoportal/api/graphql/fragment/contractor_entity.rb +1 -1
  137. data/lib/ecoportal/api/graphql/fragment/field_configuration.rb +38 -0
  138. data/lib/ecoportal/api/graphql/fragment/force.rb +34 -0
  139. data/lib/ecoportal/api/graphql/fragment/location_draft.rb +53 -53
  140. data/lib/ecoportal/api/graphql/fragment/location_node.rb +26 -26
  141. data/lib/ecoportal/api/graphql/fragment/locations_error.rb +1 -1
  142. data/lib/ecoportal/api/graphql/fragment/page.rb +85 -0
  143. data/lib/ecoportal/api/graphql/fragment/page_task.rb +39 -0
  144. data/lib/ecoportal/api/graphql/fragment/pages/common_page_union.rb +396 -0
  145. data/lib/ecoportal/api/graphql/fragment/pages.rb +15 -0
  146. data/lib/ecoportal/api/graphql/fragment/pages_workflow.rb +172 -0
  147. data/lib/ecoportal/api/graphql/fragment/pagination.rb +1 -1
  148. data/lib/ecoportal/api/graphql/fragment/template.rb +51 -0
  149. data/lib/ecoportal/api/graphql/fragment.rb +40 -27
  150. data/lib/ecoportal/api/graphql/input/action/update.rb +14 -14
  151. data/lib/ecoportal/api/graphql/input/contractor_entity/update.rb +41 -16
  152. data/lib/ecoportal/api/graphql/input/contractor_entity.rb +14 -14
  153. data/lib/ecoportal/api/graphql/input/delta_input.rb +16 -0
  154. data/lib/ecoportal/api/graphql/input/location_structure/apply_commands.rb +47 -47
  155. data/lib/ecoportal/api/graphql/input/location_structure/draft/add_commands.rb +49 -49
  156. data/lib/ecoportal/api/graphql/input/location_structure/update_command.rb +27 -27
  157. data/lib/ecoportal/api/graphql/input/page/archive.rb +14 -0
  158. data/lib/ecoportal/api/graphql/input/page/build_from_template.rb +13 -0
  159. data/lib/ecoportal/api/graphql/input/page/create_draft.rb +13 -0
  160. data/lib/ecoportal/api/graphql/input/page/create_from_template.rb +18 -0
  161. data/lib/ecoportal/api/graphql/input/page/delete_draft.rb +13 -0
  162. data/lib/ecoportal/api/graphql/input/page/publish_draft.rb +13 -0
  163. data/lib/ecoportal/api/graphql/input/page/review_task.rb +14 -0
  164. data/lib/ecoportal/api/graphql/input/page/unarchive.rb +14 -0
  165. data/lib/ecoportal/api/graphql/input/page/update.rb +140 -0
  166. data/lib/ecoportal/api/graphql/input/page.rb +26 -0
  167. data/lib/ecoportal/api/graphql/input/preset_view/create.rb +18 -0
  168. data/lib/ecoportal/api/graphql/input/preset_view/permission.rb +16 -0
  169. data/lib/ecoportal/api/graphql/input/preset_view/update.rb +16 -0
  170. data/lib/ecoportal/api/graphql/input/preset_view.rb +14 -0
  171. data/lib/ecoportal/api/graphql/input/register/create.rb +18 -0
  172. data/lib/ecoportal/api/graphql/input/register/update.rb +15 -0
  173. data/lib/ecoportal/api/graphql/input/register.rb +13 -0
  174. data/lib/ecoportal/api/graphql/input/search_conf/ai_generator.rb +234 -0
  175. data/lib/ecoportal/api/graphql/input/search_conf.rb +436 -0
  176. data/lib/ecoportal/api/graphql/input/variable_binding.rb +20 -0
  177. data/lib/ecoportal/api/graphql/input/workflow_command/add_action_tag.rb +18 -0
  178. data/lib/ecoportal/api/graphql/input/workflow_command/add_binding.rb +18 -0
  179. data/lib/ecoportal/api/graphql/input/workflow_command/add_comment_tagging_user_group.rb +18 -0
  180. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_direct_strategy_user.rb +18 -0
  181. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_strategy.rb +18 -0
  182. data/lib/ecoportal/api/graphql/input/workflow_command/add_direct_strategy_user.rb +18 -0
  183. data/lib/ecoportal/api/graphql/input/workflow_command/add_field.rb +27 -0
  184. data/lib/ecoportal/api/graphql/input/workflow_command/add_force.rb +18 -0
  185. data/lib/ecoportal/api/graphql/input/workflow_command/add_gauge_field_stop.rb +19 -0
  186. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_field_config.rb +23 -0
  187. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_helper.rb +18 -0
  188. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation.rb +18 -0
  189. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_direct_strategy_user.rb +18 -0
  190. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_strategy.rb +18 -0
  191. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_action_type.rb +18 -0
  192. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_filter.rb +18 -0
  193. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_people_field.rb +18 -0
  194. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_task_config.rb +18 -0
  195. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_user.rb +18 -0
  196. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback.rb +23 -0
  197. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback_action.rb +18 -0
  198. data/lib/ecoportal/api/graphql/input/workflow_command/add_section.rb +18 -0
  199. data/lib/ecoportal/api/graphql/input/workflow_command/add_select_field_option.rb +19 -0
  200. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +18 -0
  201. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_section.rb +18 -0
  202. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_tag.rb +18 -0
  203. data/lib/ecoportal/api/graphql/input/workflow_command/add_strategy.rb +18 -0
  204. data/lib/ecoportal/api/graphql/input/workflow_command/add_task.rb +18 -0
  205. data/lib/ecoportal/api/graphql/input/workflow_command/add_task_assignment_user_group.rb +18 -0
  206. data/lib/ecoportal/api/graphql/input/workflow_command/add_workflow_callback.rb +18 -0
  207. data/lib/ecoportal/api/graphql/input/workflow_command/collapse_section.rb +18 -0
  208. data/lib/ecoportal/api/graphql/input/workflow_command/edit_binding.rb +18 -0
  209. data/lib/ecoportal/api/graphql/input/workflow_command/edit_creator_permissions.rb +18 -0
  210. data/lib/ecoportal/api/graphql/input/workflow_command/edit_default_strategy.rb +18 -0
  211. data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +21 -0
  212. data/lib/ecoportal/api/graphql/input/workflow_command/edit_force.rb +18 -0
  213. data/lib/ecoportal/api/graphql/input/workflow_command/edit_gauge_field_stop.rb +19 -0
  214. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_field_config.rb +19 -0
  215. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_helper.rb +18 -0
  216. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation.rb +18 -0
  217. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation_strategy.rb +18 -0
  218. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +28 -0
  219. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page_creator_permissions.rb +18 -0
  220. data/lib/ecoportal/api/graphql/input/workflow_command/edit_reminder.rb +18 -0
  221. data/lib/ecoportal/api/graphql/input/workflow_command/edit_required_sign_offs.rb +18 -0
  222. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_comment_tagging.rb +18 -0
  223. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_task_assignment.rb +18 -0
  224. data/lib/ecoportal/api/graphql/input/workflow_command/edit_scheduled_callback.rb +22 -0
  225. data/lib/ecoportal/api/graphql/input/workflow_command/edit_section_header.rb +18 -0
  226. data/lib/ecoportal/api/graphql/input/workflow_command/edit_select_field_option.rb +19 -0
  227. data/lib/ecoportal/api/graphql/input/workflow_command/edit_stage.rb +18 -0
  228. data/lib/ecoportal/api/graphql/input/workflow_command/edit_strategy.rb +18 -0
  229. data/lib/ecoportal/api/graphql/input/workflow_command/edit_task_due.rb +18 -0
  230. data/lib/ecoportal/api/graphql/input/workflow_command/edit_trigger.rb +18 -0
  231. data/lib/ecoportal/api/graphql/input/workflow_command/expand_section.rb +18 -0
  232. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/contractor_entities.rb +24 -0
  233. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +23 -0
  234. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +20 -0
  235. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/gauge.rb +20 -0
  236. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +20 -0
  237. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/location_field.rb +24 -0
  238. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/people.rb +24 -0
  239. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +20 -0
  240. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +20 -0
  241. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +20 -0
  242. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/signature.rb +20 -0
  243. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/table.rb +25 -0
  244. data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +18 -0
  245. data/lib/ecoportal/api/graphql/input/workflow_command/move_stage.rb +18 -0
  246. data/lib/ecoportal/api/graphql/input/workflow_command/remove_action_tag.rb +18 -0
  247. data/lib/ecoportal/api/graphql/input/workflow_command/remove_binding.rb +18 -0
  248. data/lib/ecoportal/api/graphql/input/workflow_command/remove_callback.rb +18 -0
  249. data/lib/ecoportal/api/graphql/input/workflow_command/remove_comment_tagging_user_group.rb +18 -0
  250. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_direct_strategy_user.rb +18 -0
  251. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_strategy.rb +18 -0
  252. data/lib/ecoportal/api/graphql/input/workflow_command/remove_direct_strategy_user.rb +18 -0
  253. data/lib/ecoportal/api/graphql/input/workflow_command/remove_field.rb +18 -0
  254. data/lib/ecoportal/api/graphql/input/workflow_command/remove_force.rb +18 -0
  255. data/lib/ecoportal/api/graphql/input/workflow_command/remove_gauge_field_stop.rb +17 -0
  256. data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_field_config.rb +17 -0
  257. data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_helper.rb +18 -0
  258. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation.rb +18 -0
  259. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_direct_strategy_user.rb +18 -0
  260. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_strategy.rb +18 -0
  261. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_action_type.rb +18 -0
  262. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_filter.rb +18 -0
  263. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_people_field.rb +18 -0
  264. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_task_config.rb +18 -0
  265. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_user.rb +18 -0
  266. data/lib/ecoportal/api/graphql/input/workflow_command/remove_scheduled_callback.rb +18 -0
  267. data/lib/ecoportal/api/graphql/input/workflow_command/remove_section.rb +18 -0
  268. data/lib/ecoportal/api/graphql/input/workflow_command/remove_select_field_option.rb +17 -0
  269. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage.rb +18 -0
  270. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_section.rb +18 -0
  271. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_tag.rb +18 -0
  272. data/lib/ecoportal/api/graphql/input/workflow_command/remove_strategy.rb +18 -0
  273. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task.rb +18 -0
  274. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_assignment_user_group.rb +18 -0
  275. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_due.rb +18 -0
  276. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_priority_level.rb +18 -0
  277. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +18 -0
  278. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +18 -0
  279. data/lib/ecoportal/api/graphql/input/workflow_command.rb +251 -0
  280. data/lib/ecoportal/api/graphql/input.rb +24 -16
  281. data/lib/ecoportal/api/graphql/interface/base_page.rb +100 -58
  282. data/lib/ecoportal/api/graphql/interface/location_structure/command.rb +30 -30
  283. data/lib/ecoportal/api/graphql/interface/location_structure/nodes.rb +27 -28
  284. data/lib/ecoportal/api/graphql/logic/base_model.rb +2 -0
  285. data/lib/ecoportal/api/graphql/logic/base_query.rb +45 -2
  286. data/lib/ecoportal/api/graphql/logic/connection.rb +34 -34
  287. data/lib/ecoportal/api/graphql/logic/input.rb +26 -11
  288. data/lib/ecoportal/api/graphql/model/ai_summary_version.rb +10 -0
  289. data/lib/ecoportal/api/graphql/model/organization.rb +65 -55
  290. data/lib/ecoportal/api/graphql/model/page/basic.rb +14 -0
  291. data/lib/ecoportal/api/graphql/model/page/phased.rb +82 -20
  292. data/lib/ecoportal/api/graphql/model/page/task.rb +16 -0
  293. data/lib/ecoportal/api/graphql/model/page.rb +16 -14
  294. data/lib/ecoportal/api/graphql/model/page_union.rb +21 -0
  295. data/lib/ecoportal/api/graphql/model/pages_workflow.rb +20 -0
  296. data/lib/ecoportal/api/graphql/model/person_member.rb +15 -15
  297. data/lib/ecoportal/api/graphql/model/preset_view.rb +10 -0
  298. data/lib/ecoportal/api/graphql/model/preview_page.rb +10 -0
  299. data/lib/ecoportal/api/graphql/model/register.rb +10 -0
  300. data/lib/ecoportal/api/graphql/model/template.rb +15 -0
  301. data/lib/ecoportal/api/graphql/model.rb +32 -22
  302. data/lib/ecoportal/api/graphql/mutation/action/archive.rb +1 -1
  303. data/lib/ecoportal/api/graphql/mutation/action/create.rb +1 -1
  304. data/lib/ecoportal/api/graphql/mutation/action/update.rb +1 -1
  305. data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +45 -0
  306. data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +40 -0
  307. data/lib/ecoportal/api/graphql/mutation/ai_summary.rb +13 -0
  308. data/lib/ecoportal/api/graphql/mutation/contractor_entity/create.rb +1 -1
  309. data/lib/ecoportal/api/graphql/mutation/contractor_entity/destroy.rb +1 -1
  310. data/lib/ecoportal/api/graphql/mutation/contractor_entity/update.rb +1 -1
  311. data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +14 -14
  312. data/lib/ecoportal/api/graphql/mutation/kickstand/bulk_update_jobs.rb +43 -0
  313. data/lib/ecoportal/api/graphql/mutation/kickstand/bulk_update_workflows.rb +43 -0
  314. data/lib/ecoportal/api/graphql/mutation/kickstand/fail_job.rb +39 -0
  315. data/lib/ecoportal/api/graphql/mutation/kickstand/fail_workflow.rb +39 -0
  316. data/lib/ecoportal/api/graphql/mutation/kickstand/start_job.rb +39 -0
  317. data/lib/ecoportal/api/graphql/mutation/kickstand/start_workflow.rb +39 -0
  318. data/lib/ecoportal/api/graphql/mutation/kickstand/stop_workflow.rb +39 -0
  319. data/lib/ecoportal/api/graphql/mutation/kickstand.rb +18 -0
  320. data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +3 -3
  321. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/add_commands.rb +2 -2
  322. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/create.rb +2 -2
  323. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/drop_bad_commands.rb +3 -3
  324. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/publish.rb +3 -3
  325. data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +40 -0
  326. data/lib/ecoportal/api/graphql/mutation/page/archive.rb +40 -0
  327. data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +38 -0
  328. data/lib/ecoportal/api/graphql/mutation/page/build_from_template.rb +50 -0
  329. data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +38 -0
  330. data/lib/ecoportal/api/graphql/mutation/page/create_from_template.rb +43 -0
  331. data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +38 -0
  332. data/lib/ecoportal/api/graphql/mutation/page/execute_force_commands.rb +69 -0
  333. data/lib/ecoportal/api/graphql/mutation/page/execute_workflow_commands.rb +52 -0
  334. data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +38 -0
  335. data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +40 -0
  336. data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +40 -0
  337. data/lib/ecoportal/api/graphql/mutation/page/unarchive.rb +40 -0
  338. data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +40 -0
  339. data/lib/ecoportal/api/graphql/mutation/page/update.rb +40 -0
  340. data/lib/ecoportal/api/graphql/mutation/page/update_variable_bindings.rb +44 -0
  341. data/lib/ecoportal/api/graphql/mutation/page.rb +28 -0
  342. data/lib/ecoportal/api/graphql/mutation/preset_view/create.rb +35 -0
  343. data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +34 -0
  344. data/lib/ecoportal/api/graphql/mutation/preset_view/permission.rb +37 -0
  345. data/lib/ecoportal/api/graphql/mutation/preset_view/update.rb +35 -0
  346. data/lib/ecoportal/api/graphql/mutation/preset_view.rb +15 -0
  347. data/lib/ecoportal/api/graphql/mutation/register/create.rb +35 -0
  348. data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +35 -0
  349. data/lib/ecoportal/api/graphql/mutation/register/update.rb +35 -0
  350. data/lib/ecoportal/api/graphql/mutation/register.rb +14 -0
  351. data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +36 -0
  352. data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +40 -0
  353. data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +13 -0
  354. data/lib/ecoportal/api/graphql/mutation/template/create.rb +39 -0
  355. data/lib/ecoportal/api/graphql/mutation/template/create_related_page.rb +46 -0
  356. data/lib/ecoportal/api/graphql/mutation/template/destroy_related_page.rb +43 -0
  357. data/lib/ecoportal/api/graphql/mutation/template/publish.rb +39 -0
  358. data/lib/ecoportal/api/graphql/mutation/template/unpublish.rb +39 -0
  359. data/lib/ecoportal/api/graphql/mutation/template/update.rb +43 -0
  360. data/lib/ecoportal/api/graphql/mutation/template/update_information.rb +43 -0
  361. data/lib/ecoportal/api/graphql/mutation/template.rb +18 -0
  362. data/lib/ecoportal/api/graphql/mutation.rb +20 -12
  363. data/lib/ecoportal/api/graphql/payload/ai_summary_generate.rb +12 -0
  364. data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +14 -14
  365. data/lib/ecoportal/api/graphql/payload/execute_workflow_commands.rb +36 -0
  366. data/lib/ecoportal/api/graphql/payload/force_commands.rb +31 -0
  367. data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_jobs.rb +36 -0
  368. data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_workflows.rb +36 -0
  369. data/lib/ecoportal/api/graphql/payload/kickstand/job.rb +13 -0
  370. data/lib/ecoportal/api/graphql/payload/kickstand/workflow.rb +13 -0
  371. data/lib/ecoportal/api/graphql/payload/kickstand.rb +15 -0
  372. data/lib/ecoportal/api/graphql/payload/location_structure/draft/create.rb +33 -34
  373. data/lib/ecoportal/api/graphql/payload/ok_payload.rb +36 -0
  374. data/lib/ecoportal/api/graphql/payload/page/archive.rb +13 -0
  375. data/lib/ecoportal/api/graphql/payload/page/build_from_template.rb +13 -0
  376. data/lib/ecoportal/api/graphql/payload/page/create_from_template.rb +13 -0
  377. data/lib/ecoportal/api/graphql/payload/page/draft.rb +26 -0
  378. data/lib/ecoportal/api/graphql/payload/page/review_task.rb +13 -0
  379. data/lib/ecoportal/api/graphql/payload/page/review_task_batch.rb +23 -0
  380. data/lib/ecoportal/api/graphql/payload/page/unarchive.rb +13 -0
  381. data/lib/ecoportal/api/graphql/payload/page/update.rb +13 -0
  382. data/lib/ecoportal/api/graphql/payload/page/update_variable_bindings.rb +13 -0
  383. data/lib/ecoportal/api/graphql/payload/page.rb +20 -0
  384. data/lib/ecoportal/api/graphql/payload/preset_view.rb +15 -0
  385. data/lib/ecoportal/api/graphql/payload/register.rb +15 -0
  386. data/lib/ecoportal/api/graphql/payload/template/create.rb +13 -0
  387. data/lib/ecoportal/api/graphql/payload/template/create_related_page.rb +13 -0
  388. data/lib/ecoportal/api/graphql/payload/template/destroy_related_page.rb +13 -0
  389. data/lib/ecoportal/api/graphql/payload/template/publish.rb +13 -0
  390. data/lib/ecoportal/api/graphql/payload/template/unpublish.rb +13 -0
  391. data/lib/ecoportal/api/graphql/payload/template/update.rb +13 -0
  392. data/lib/ecoportal/api/graphql/payload/template/update_information.rb +13 -0
  393. data/lib/ecoportal/api/graphql/payload/template.rb +18 -0
  394. data/lib/ecoportal/api/graphql/payload.rb +23 -12
  395. data/lib/ecoportal/api/graphql/query/action.rb +1 -1
  396. data/lib/ecoportal/api/graphql/query/action_categories.rb +1 -1
  397. data/lib/ecoportal/api/graphql/query/actions.rb +2 -2
  398. data/lib/ecoportal/api/graphql/query/contractor_entities.rb +1 -1
  399. data/lib/ecoportal/api/graphql/query/file_upload_signature.rb +76 -0
  400. data/lib/ecoportal/api/graphql/query/location_structure/draft.rb +62 -62
  401. data/lib/ecoportal/api/graphql/query/location_structure.rb +61 -61
  402. data/lib/ecoportal/api/graphql/query/location_structures.rb +57 -57
  403. data/lib/ecoportal/api/graphql/query/page.rb +45 -0
  404. data/lib/ecoportal/api/graphql/query/page_delta.rb +47 -0
  405. data/lib/ecoportal/api/graphql/query/page_with_forces.rb +49 -0
  406. data/lib/ecoportal/api/graphql/query/pages.rb +59 -0
  407. data/lib/ecoportal/api/graphql/query/pages_workflow_commands.rb +65 -0
  408. data/lib/ecoportal/api/graphql/query/register_preset_views.rb +78 -0
  409. data/lib/ecoportal/api/graphql/query/register_preview_pages.rb +83 -0
  410. data/lib/ecoportal/api/graphql/query/templates.rb +53 -0
  411. data/lib/ecoportal/api/graphql/query.rb +27 -16
  412. data/lib/ecoportal/api/graphql.rb +143 -80
  413. data/lib/ecoportal/api/graphql_version.rb +5 -5
  414. metadata +333 -25
  415. data/.gitignore +0 -24
  416. data/.markdownlint.json +0 -4
  417. data/.rspec +0 -3
  418. data/.rubocop.yml +0 -97
  419. data/.ruby-version +0 -1
  420. data/.yardopts +0 -10
  421. data/Gemfile +0 -6
  422. data/Rakefile +0 -38
  423. data/bin/console +0 -14
  424. data/bin/setup +0 -8
  425. data/bin/setup.ps1 +0 -6
  426. data/ecoportal-api-graphql.gemspec +0 -40
  427. data/tests/actions_get.rb +0 -7
  428. data/tests/contractor_entities_get.rb +0 -20
  429. data/tests/contractor_entity_create.rb +0 -19
  430. data/tests/contractor_entity_udpate.rb +0 -20
  431. data/tests/loc_structure_get.rb +0 -11
  432. data/tests/loc_structure_update.rb +0 -51
  433. data/tests/loc_structures_get.rb +0 -15
  434. data/tests/local_libs.rb +0 -20
@@ -0,0 +1,396 @@
1
+ # CommonPageUnion — unified page fragment for all customer integration patterns.
2
+ #
3
+ # Covers three core use cases via boolean query variables:
4
+ #
5
+ # CREATE sequence (2-step):
6
+ # (a) buildFromTemplate → fetch built draft with ($fields: true) to get
7
+ # server-assigned data field IDs
8
+ # (b) fill in values → createFromTemplate
9
+ #
10
+ # UPDATE sequence (2-step):
11
+ # (a) fetch current page with ($content: true, $fields: true) to get patchVer
12
+ # + current field IDs/values (IDs change after DB creation — must be read)
13
+ # (b) build update operations → updatePage
14
+ #
15
+ # VERIFY after create/update:
16
+ # fetch with ($content: true, $only_content: true) to confirm result
17
+ #
18
+ # Variables:
19
+ # $content — include field values, stage completions, files, people
20
+ # $only_content — exclude structural/config fields; content values only
21
+ # $fields — include data field definitions (labels, options, structure)
22
+ #
23
+ # Documented in Jira API Docs space (Confluence APIDOCS).
24
+ # Access: fragment.pages.assemble(:CommonPageUnion)
25
+ module Ecoportal
26
+ module API
27
+ class GraphQL
28
+ class Fragment
29
+ class Pages
30
+ fragment :CommonPageUnion, <<~GRAPHQL
31
+ fragment CommonPageUnion on PageUnion {
32
+ ...corePageData
33
+ ... on PhasedPage {
34
+ stages { ...stageAttrs }
35
+ attachedFiles @include(if: $content) {
36
+ id @skip(if: $only_content)
37
+ activeFileAttachment { downloadUrl }
38
+ }
39
+ activeStages {
40
+ id
41
+ name
42
+ ordering
43
+ }
44
+ }
45
+ ... on BasicPage {
46
+ sections { ...sectionUnion }
47
+ }
48
+ }
49
+
50
+ fragment taskInterface on TaskInterface {
51
+ id
52
+ fromPublicTemplate
53
+ complete
54
+ completedAt { dateTime }
55
+ completedBy { name email }
56
+ due { dateTime }
57
+ overdue
58
+ users { name email }
59
+ }
60
+
61
+ fragment stageAttrs on Stage {
62
+ id @skip(if: $only_content)
63
+ name
64
+ ...sectionsFragment
65
+ active
66
+ started
67
+ state
68
+ completedBy @include(if: $content) { name email }
69
+ activeTask @include(if: $content) { ...taskInterface }
70
+ }
71
+
72
+ fragment locationNode on LocationNodeInterface {
73
+ id
74
+ name
75
+ archived
76
+ classifications { name }
77
+ ancestors { id name }
78
+ }
79
+
80
+ fragment corePageData on BasePageInterface {
81
+ __typename
82
+ id
83
+ patchVer
84
+ externalId
85
+ name
86
+ uid
87
+ locations { ...locationNode }
88
+ otherTags @include(if: $content)
89
+ timeZone
90
+ updatedAt { dateTime }
91
+ createdAt { dateTime }
92
+ creator { name email }
93
+ state
94
+ archived
95
+ }
96
+
97
+ fragment sectionsFragment on Stage {
98
+ ... on HasSectionsInterface {
99
+ sections { ...sectionUnion }
100
+ }
101
+ }
102
+
103
+ fragment sectionUnion on SectionUnion {
104
+ __typename
105
+ ... on ContentSection {
106
+ id
107
+ heading
108
+ dataFields @include(if: $fields) { ...dataField }
109
+ }
110
+ ... on SplitSection {
111
+ id
112
+ heading
113
+ leftDataFields @include(if: $fields) { ...dataField }
114
+ rightDataFields @include(if: $fields) { ...dataField }
115
+ }
116
+ }
117
+
118
+ fragment dataFieldInterface on DataFieldsInterface {
119
+ __typename
120
+ id @skip(if: $only_content)
121
+ label
122
+ genomeSignature @skip(if: $only_content)
123
+ deindex @include(if: $content)
124
+ linkedFieldConfig @skip(if: $only_content) {
125
+ crossReferenceId
126
+ crossReferenceField { label }
127
+ sourceFieldKey
128
+ }
129
+ }
130
+
131
+ fragment dataField on DataFieldUnion {
132
+ ...dataFieldInterface
133
+ ...locationField
134
+ ...geoField
135
+ ...numberField
136
+ ...gaugeField
137
+ ...dateField
138
+ ...plainTextField
139
+ ...richTextField
140
+ ...selectField
141
+ ...checklistField
142
+ ...signatureField
143
+ ...imageGalleryField
144
+ ...fileField
145
+ ...peopleField
146
+ ...contractorEntitiesField
147
+ ...crossReferenceField
148
+ ...mailboxField
149
+ ...lawField
150
+ ...aiSummaryField @include(if: $content)
151
+ ...actionsListField
152
+ }
153
+
154
+ fragment locationField on TagField {
155
+ required @skip(if: $only_content)
156
+ restrictByClassification @skip(if: $only_content)
157
+ allowedClassifications @skip(if: $only_content)
158
+ singleSelect @skip(if: $only_content)
159
+ locations @include(if: $content) { ...locationNode }
160
+ }
161
+
162
+ fragment geoField on Geo {
163
+ required @skip(if: $only_content)
164
+ address @include(if: $content)
165
+ coordinates @include(if: $content)
166
+ }
167
+
168
+ fragment numberField on Number {
169
+ required @skip(if: $only_content)
170
+ value @include(if: $content)
171
+ }
172
+
173
+ fragment gaugeField on Gauge {
174
+ max @skip(if: $only_content)
175
+ value @include(if: $content)
176
+ }
177
+
178
+ fragment dateField on Date {
179
+ required @skip(if: $only_content)
180
+ pastOnly @skip(if: $only_content)
181
+ showTime @skip(if: $only_content)
182
+ value @include(if: $content) { dateTime }
183
+ }
184
+
185
+ fragment plainTextField on PlainText {
186
+ required @skip(if: $only_content)
187
+ multiline @skip(if: $only_content)
188
+ value @include(if: $content)
189
+ }
190
+
191
+ fragment richTextField on RichText {
192
+ required @skip(if: $only_content)
193
+ content @include(if: $content)
194
+ }
195
+
196
+ fragment selectField on Select {
197
+ required @skip(if: $only_content)
198
+ multiple @skip(if: $only_content)
199
+ dataType
200
+ options {
201
+ id
202
+ selected @include(if: $content)
203
+ value
204
+ name
205
+ }
206
+ other
207
+ otherDesc @include(if: $content)
208
+ }
209
+
210
+ fragment checklistField on Checklist {
211
+ complete
212
+ items { checked label }
213
+ }
214
+
215
+ fragment signatureField on Signature {
216
+ required @skip(if: $only_content)
217
+ signedByName @include(if: $content)
218
+ signatureUpdatedAt { dateTime }
219
+ signedById @include(if: $content)
220
+ }
221
+
222
+ fragment imageGalleryField on ImageGallery {
223
+ images @include(if: $content) {
224
+ downloadUrl
225
+ caption
226
+ fileName
227
+ fileSize
228
+ uploadId @skip(if: $only_content)
229
+ }
230
+ }
231
+
232
+ fragment fileField on File {
233
+ required @skip(if: $only_content)
234
+ items @include(if: $content) {
235
+ fileContainer { ...fileContainerAttrs }
236
+ }
237
+ }
238
+
239
+ fragment fileContainerAttrs on FileContainer {
240
+ id
241
+ activeFileAttachment {
242
+ downloadUrl
243
+ id @skip(if: $only_content)
244
+ fileSize
245
+ fileName
246
+ userName
247
+ fileUpdatedAt { dateTime }
248
+ }
249
+ }
250
+
251
+ fragment peopleField on People {
252
+ required @skip(if: $only_content)
253
+ singular @skip(if: $only_content)
254
+ attachMode
255
+ cachedPeople @include(if: $content) {
256
+ id
257
+ email
258
+ name
259
+ externalId
260
+ privateFields
261
+ publicFields
262
+ }
263
+ peopleIds @include(if: $content)
264
+ people @include(if: $content) {
265
+ id
266
+ name
267
+ externalId
268
+ email
269
+ }
270
+ }
271
+
272
+ fragment contractorEntitiesField on ContractorEntities {
273
+ required @skip(if: $only_content)
274
+ contractorEntities(
275
+ includeDeleted: true
276
+ ) @include(if: $content) {
277
+ id
278
+ name
279
+ externalId
280
+ approved
281
+ active
282
+ }
283
+ }
284
+
285
+ fragment crossReferenceField on CrossReference {
286
+ required @skip(if: $only_content)
287
+ references(
288
+ first: 25
289
+ ) @include(if: $content) {
290
+ nodes { ...referenceAttrs }
291
+ totalCount
292
+ pageInfo {
293
+ hasNextPage
294
+ endCursor
295
+ }
296
+ }
297
+ }
298
+
299
+ fragment referenceAttrs on Reference {
300
+ id
301
+ name
302
+ uid
303
+ state
304
+ locations { ...locationNode }
305
+ createdAt { dateTime }
306
+ updatedAt { dateTime }
307
+ creator { name }
308
+ }
309
+
310
+ fragment mailboxField on Mailbox {
311
+ address @skip(if: $only_content)
312
+ emails @include(if: $content) {
313
+ nodes {
314
+ subject
315
+ body
316
+ recipients
317
+ cc
318
+ bcc
319
+ senderName
320
+ senderEmail
321
+ createdAt { dateTime }
322
+ fileContainers { ...fileContainerAttrs }
323
+ }
324
+ }
325
+ }
326
+
327
+ fragment lawField on Law {
328
+ snippets @include(if: $content) {
329
+ category
330
+ content
331
+ legislation
332
+ product
333
+ title
334
+ topic
335
+ sources
336
+ updatedAt { dateTime }
337
+ }
338
+ }
339
+
340
+ fragment aiSummaryField on AiSummary {
341
+ alreadyRated
342
+ aiSummary
343
+ aiSummaryGeneratedAt { dateTime }
344
+ currentVersionId
345
+ triggerStageIds
346
+ textFormat
347
+ trigger
348
+ instructions @skip(if: $only_content)
349
+ }
350
+
351
+ fragment actionsListField on ActionsList {
352
+ required @skip(if: $only_content)
353
+ requiredCompleted @skip(if: $only_content)
354
+ actions(
355
+ first: 25,
356
+ includeRecurringActions: false
357
+ ) @include(if: $content) {
358
+ ...pageActionsList
359
+ }
360
+ }
361
+
362
+ fragment pageActionsList on DataFieldAssociatedActionsConnection {
363
+ nodes { ...pageActionAttrs }
364
+ totalCount
365
+ pageInfo {
366
+ hasNextPage
367
+ endCursor
368
+ }
369
+ closedCount
370
+ openCount
371
+ overdueCount
372
+ }
373
+
374
+ fragment pageActionAttrs on Action {
375
+ id
376
+ name
377
+ description
378
+ assignedTo {
379
+ id
380
+ name
381
+ email
382
+ }
383
+ status
384
+ relativeStatus
385
+ age
386
+ createdAt { dateTime }
387
+ completedAt { dateTime }
388
+ dueDate { dateTime }
389
+ dueOrClosedDate { dateTime }
390
+ }
391
+ GRAPHQL
392
+ end
393
+ end
394
+ end
395
+ end
396
+ end
@@ -0,0 +1,15 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ class Pages
6
+ include Ecoportal::API::GraphQL::Concerns::FragmentDefinitions
7
+ end
8
+
9
+ register_namespace Pages
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ require_relative 'pages/common_page_union'
@@ -0,0 +1,172 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ SCHEMA_VERSION = '20260605'.freeze
6
+
7
+ fragment :PagesWorkflowFields, <<~GRAPHQL
8
+ fragment PagesWorkflowFields on PagesWorkflow {
9
+ autoPageCreationEnabled
10
+ fields {
11
+ key
12
+ name
13
+ type
14
+ total
15
+ missing
16
+ enableCrossRegisterReporting
17
+ }
18
+ stages {
19
+ id
20
+ name
21
+ ordering
22
+ state
23
+ active
24
+ started
25
+ }
26
+ }
27
+ GRAPHQL
28
+
29
+ fragment :PagesWorkflowCallbackFields, <<~GRAPHQL
30
+ fragment PagesWorkflowCallbackFields on PagesWorkflowCallbackType {
31
+ id
32
+ triggerCondition
33
+ triggers {
34
+ __typename
35
+ id
36
+ ... on PagesWorkflowTriggersConditionalLogic {
37
+ filters {
38
+ id
39
+ operation
40
+ path
41
+ key
42
+ params
43
+ }
44
+ }
45
+ }
46
+ operations {
47
+ __typename
48
+ id
49
+ timeDelayPassed
50
+ timeDelayConfig {
51
+ enabled
52
+ frequencyValue
53
+ period
54
+ excludeWeekends
55
+ }
56
+ ... on PagesWorkflowOperationsAssignTo {
57
+ targetTaskType
58
+ lastFulfilled
59
+ escalationLevels {
60
+ id
61
+ order
62
+ dueInValue
63
+ dueInUnit
64
+ dueExcludeWeekends
65
+ elapsedSeconds
66
+ timerPaused
67
+ }
68
+ }
69
+ ... on PagesWorkflowOperationsCreatePage {
70
+ templateId
71
+ crossReferenceFieldId
72
+ }
73
+ ... on PagesWorkflowOperationsSendNotification {
74
+ recurring
75
+ recurrenceActive
76
+ recurrenceEndType
77
+ recurrenceEndCount
78
+ emailConfig {
79
+ enabled
80
+ subject
81
+ body
82
+ attachPdf
83
+ includeSmartSummary
84
+ pdfRedacted
85
+ sendAsGroupEmail
86
+ }
87
+ inSystemConfig {
88
+ enabled
89
+ title
90
+ message
91
+ }
92
+ recipientConfig {
93
+ allActiveUsers
94
+ includePageCreator
95
+ includePeopleFields
96
+ includeTaskAssignees
97
+ includeMailboxFields
98
+ userSelections {
99
+ id
100
+ name
101
+ email
102
+ deleted
103
+ }
104
+ peopleFieldSelections {
105
+ id
106
+ name
107
+ stageName
108
+ deleted
109
+ }
110
+ taskConfigSelections {
111
+ id
112
+ type
113
+ stageName
114
+ deleted
115
+ }
116
+ mailboxFieldSelections {
117
+ id
118
+ name
119
+ stageName
120
+ deleted
121
+ }
122
+ actionTypeSelections {
123
+ id
124
+ name
125
+ deleted
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
131
+ GRAPHQL
132
+
133
+ fragment :PagesWorkflowCommandFields, <<~GRAPHQL
134
+ fragment PagesWorkflowCommandFields on PagesWorkflowCommandInterface {
135
+ __typename
136
+ id
137
+ commandAction
138
+ createdAt { dateTime }
139
+ patchVer
140
+ ownerId
141
+ stageId
142
+ stageName
143
+ taskId
144
+ taskType
145
+ ... on PagesWorkflowCommandChange {
146
+ changes {
147
+ field
148
+ from
149
+ to
150
+ }
151
+ }
152
+ ... on PagesWorkflowCommandChangeMessage {
153
+ changeMessages
154
+ }
155
+ }
156
+ GRAPHQL
157
+
158
+ # Stage-level fragment that adds workflowCallbacks to a Stage selection.
159
+ # Spread this on Stage (alongside or inside a page query) to populate
160
+ # stage.workflow_callbacks. Requires PagesWorkflowCallbackFields to be
161
+ # assembled in the same request.
162
+ fragment :StageWithCallbacksFields, <<~GRAPHQL
163
+ fragment StageWithCallbacksFields on Stage {
164
+ workflowCallbacks {
165
+ ...PagesWorkflowCallbackFields
166
+ }
167
+ }
168
+ GRAPHQL
169
+ end
170
+ end
171
+ end
172
+ end
@@ -3,7 +3,7 @@ module Ecoportal
3
3
  class GraphQL
4
4
  class Fragment
5
5
  fragment :Pagination, <<~GRAPHQL
6
- fragment on ActionConnection {
6
+ fragment Pagination on ActionConnection {
7
7
  totalCount
8
8
  pageInfo {
9
9
  endCursor
@@ -0,0 +1,51 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ # `createTemplateRelatedPage` / `destroyTemplateRelatedPage` return
6
+ # `item: RelatedPages` — a related-pages CONFIG entry, not a page. They used to select
7
+ # `item { ...PageFields }` (invalid: "can't be spread inside RelatedPages"), which made
8
+ # both mutations fail.
9
+ #
10
+ # Verified against the live schema (2026-07-30): RelatedPages exposes filters
11
+ # (StoredEsFilter), hasInaccessibleVariables, id, pages (PreviewPageConnection),
12
+ # register (MinimalRegister), registerId, title. Only the scalars are selected here —
13
+ # `pages` is a connection and `filters`/`register` are objects needing their own
14
+ # selections; query them explicitly when needed.
15
+ fragment :TemplateRelatedPages, <<~GRAPHQL
16
+ fragment TemplateRelatedPages on RelatedPages {
17
+ id
18
+ title
19
+ registerId
20
+ hasInaccessibleVariables
21
+ }
22
+ GRAPHQL
23
+
24
+ # `updateTemplateInformation` returns `UpdateInformationPayload { item: Template }`.
25
+ # ★ NOTE the type asymmetry: elsewhere in this gem a "template" is a PAGE
26
+ # (`Query::Templates` and the other template payloads legitimately resolve to
27
+ # `Model::PageUnion`, and validate clean), but THIS mutation returns the narrow
28
+ # `Template` type — hence `item { ...PageFields }` was invalid ("can't be spread
29
+ # inside Template").
30
+ #
31
+ # Verified against the live schema (2026-07-30): Template exposes active,
32
+ # aiDescription, commands (connection), creatorEditable, creatorEnabled, creatorFlags,
33
+ # description, folders, id, public, publicConfig, templateContainerUid, templateType.
34
+ fragment :TemplateInformation, <<~GRAPHQL
35
+ fragment TemplateInformation on Template {
36
+ id
37
+ description
38
+ aiDescription
39
+ templateType
40
+ templateContainerUid
41
+ active
42
+ public
43
+ folders
44
+ creatorEnabled
45
+ creatorEditable
46
+ }
47
+ GRAPHQL
48
+ end
49
+ end
50
+ end
51
+ end