spree_cm_commissioner 2.4.2 → 2.5.0.pre.pre1

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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test_and_build_gem.yml +1 -1
  3. data/.tool-versions +1 -1
  4. data/Gemfile.lock +1 -1
  5. data/README.md +32 -0
  6. data/app/controllers/spree/admin/integration_mappings_controller.rb +21 -0
  7. data/app/controllers/spree/admin/integration_sessions_controller.rb +21 -0
  8. data/app/controllers/spree/admin/integrations_controller.rb +83 -0
  9. data/app/controllers/spree/api/v2/storefront/event_matches_controller.rb +15 -0
  10. data/app/controllers/spree/api/v2/storefront/tenants_controller.rb +30 -0
  11. data/app/errors/spree_cm_commissioner/integrations/external_client_error.rb +10 -0
  12. data/app/errors/spree_cm_commissioner/integrations/sync_error.rb +4 -0
  13. data/app/finders/spree_cm_commissioner/events/find_matches.rb +15 -0
  14. data/app/helpers/spree_cm_commissioner/external_integrations_helper.rb +58 -0
  15. data/app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb +1 -1
  16. data/app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb +4 -2
  17. data/app/jobs/spree_cm_commissioner/integrations/base_job.rb +39 -0
  18. data/app/jobs/spree_cm_commissioner/integrations/polling_job.rb +53 -0
  19. data/app/jobs/spree_cm_commissioner/integrations/polling_scheduler_job.rb +30 -0
  20. data/app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb +5 -4
  21. data/app/jobs/spree_cm_commissioner/telegram_alerts/integration_sync_failure_job.rb +17 -0
  22. data/app/models/concerns/spree_cm_commissioner/integrations/integration_mappable.rb +58 -0
  23. data/app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb +15 -3
  24. data/app/models/concerns/spree_cm_commissioner/store_metadata.rb +14 -2
  25. data/app/models/concerns/spree_cm_commissioner/tenant_preference.rb +2 -0
  26. data/app/models/concerns/spree_cm_commissioner/variant_options_concern.rb +1 -7
  27. data/app/models/spree_cm_commissioner/integration.rb +21 -0
  28. data/app/models/spree_cm_commissioner/integration_mapping.rb +37 -0
  29. data/app/models/spree_cm_commissioner/integration_sync_session.rb +15 -0
  30. data/app/models/spree_cm_commissioner/integrations/stadium_x_v1.rb +21 -0
  31. data/app/models/spree_cm_commissioner/inventory_item.rb +5 -1
  32. data/app/models/spree_cm_commissioner/option_type_decorator.rb +8 -0
  33. data/app/models/spree_cm_commissioner/option_value_decorator.rb +34 -0
  34. data/app/models/spree_cm_commissioner/product_decorator.rb +3 -2
  35. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +2 -2
  36. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +2 -2
  37. data/app/models/spree_cm_commissioner/taxon_decorator.rb +1 -0
  38. data/app/models/spree_cm_commissioner/taxonomy_decorator.rb +13 -1
  39. data/app/models/spree_cm_commissioner/variant_decorator.rb +7 -4
  40. data/app/models/spree_cm_commissioner/vendor_decorator.rb +1 -0
  41. data/app/overrides/spree/admin/shared/sub_menu/_integrations/external_integrations.html.erb.deface +6 -0
  42. data/app/presenters/spree/variants/{visable_options_presenter.rb → visible_options_presenter.rb} +2 -4
  43. data/app/serializers/spree/v2/storefront/tenant_serializer.rb +14 -0
  44. data/app/services/spree_cm_commissioner/integrations/base/sync_manager.rb +69 -0
  45. data/app/services/spree_cm_commissioner/integrations/base/sync_result.rb +183 -0
  46. data/app/services/spree_cm_commissioner/integrations/polling.rb +70 -0
  47. data/app/services/spree_cm_commissioner/integrations/polling_scheduler.rb +79 -0
  48. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/external_client/client.rb +152 -0
  49. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/polling/sync_matches.rb +113 -0
  50. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/polling/sync_zones.rb +215 -0
  51. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/base.rb +20 -0
  52. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/league.rb +19 -0
  53. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/match.rb +95 -0
  54. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/ticket.rb +81 -0
  55. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/ticket_image.rb +19 -0
  56. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/zone.rb +90 -0
  57. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_manager.rb +35 -0
  58. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/full_sync_strategy.rb +38 -0
  59. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/incremental_sync_strategy.rb +44 -0
  60. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/webhook_sync_strategy.rb +16 -0
  61. data/app/services/spree_cm_commissioner/telegram_alerts/integration_sync_failure.rb +49 -0
  62. data/app/views/spree/admin/integration_mappings/_integration_mappings.html.erb +107 -0
  63. data/app/views/spree/admin/integration_mappings/index.html.erb +33 -0
  64. data/app/views/spree/admin/integration_sessions/_integration_sync_sessions.html.erb +116 -0
  65. data/app/views/spree/admin/integration_sessions/index.html.erb +42 -0
  66. data/app/views/spree/admin/integrations/_form.html.erb +104 -0
  67. data/app/views/spree/admin/integrations/_stadium_x_v1_fields.html.erb +29 -0
  68. data/app/views/spree/admin/integrations/edit.html.erb +45 -0
  69. data/app/views/spree/admin/integrations/index.html.erb +75 -0
  70. data/app/views/spree/admin/integrations/new.html.erb +25 -0
  71. data/app/views/spree/admin/tenants/_form.html.erb +79 -36
  72. data/config/locales/en.yml +8 -0
  73. data/config/locales/km.yml +8 -0
  74. data/config/routes.rb +9 -1
  75. data/db/migrate/20251017094845_create_cm_integrations.rb +22 -0
  76. data/db/migrate/20251017101555_create_cm_integration_sync_sessions.rb +68 -0
  77. data/db/migrate/20251017101605_create_cm_integration_mappings.rb +52 -0
  78. data/lib/cm_app_logger.rb +1 -0
  79. data/lib/spree_cm_commissioner/test_helper/factories/integration_factory.rb +25 -0
  80. data/lib/spree_cm_commissioner/test_helper/factories/integration_mapping_factory.rb +14 -0
  81. data/lib/spree_cm_commissioner/test_helper/factories/integration_sync_session_factory.rb +7 -0
  82. data/lib/spree_cm_commissioner/version.rb +1 -1
  83. data/lib/spree_cm_commissioner.rb +8 -7
  84. metadata +58 -5
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2
4
+ version: 2.5.0.pre.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-10 00:00:00.000000000 Z
11
+ date: 2025-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -848,6 +848,9 @@ files:
848
848
  - app/controllers/spree/admin/id_cards_controller.rb
849
849
  - app/controllers/spree/admin/import_existing_orders_controller.rb
850
850
  - app/controllers/spree/admin/import_new_orders_controller.rb
851
+ - app/controllers/spree/admin/integration_mappings_controller.rb
852
+ - app/controllers/spree/admin/integration_sessions_controller.rb
853
+ - app/controllers/spree/admin/integrations_controller.rb
851
854
  - app/controllers/spree/admin/inventory_items_controller.rb
852
855
  - app/controllers/spree/admin/kyc_controller.rb
853
856
  - app/controllers/spree/admin/line_items_controller.rb
@@ -943,6 +946,7 @@ files:
943
946
  - app/controllers/spree/api/v2/storefront/customer_notifications_controller.rb
944
947
  - app/controllers/spree/api/v2/storefront/dynamic_field_options_controller.rb
945
948
  - app/controllers/spree/api/v2/storefront/dynamic_fields_controller.rb
949
+ - app/controllers/spree/api/v2/storefront/event_matches_controller.rb
946
950
  - app/controllers/spree/api/v2/storefront/events_controller.rb
947
951
  - app/controllers/spree/api/v2/storefront/google_wallet_object_tokens_controller.rb
948
952
  - app/controllers/spree/api/v2/storefront/guest_card_classes_controller.rb
@@ -979,6 +983,7 @@ files:
979
983
  - app/controllers/spree/api/v2/storefront/s3_signed_urls_controller.rb
980
984
  - app/controllers/spree/api/v2/storefront/seat_layouts_controller.rb
981
985
  - app/controllers/spree/api/v2/storefront/self_check_in_controller.rb
986
+ - app/controllers/spree/api/v2/storefront/tenants_controller.rb
982
987
  - app/controllers/spree/api/v2/storefront/transit/draft_orders_controller.rb
983
988
  - app/controllers/spree/api/v2/storefront/trip_places_controller.rb
984
989
  - app/controllers/spree/api/v2/storefront/trip_search_controller.rb
@@ -1110,6 +1115,8 @@ files:
1110
1115
  - app/controllers/spree_cm_commissioner/well_known_controller.rb
1111
1116
  - app/errors/spree_cm_commissioner/connection_error.rb
1112
1117
  - app/errors/spree_cm_commissioner/exceeding_range_error.rb
1118
+ - app/errors/spree_cm_commissioner/integrations/external_client_error.rb
1119
+ - app/errors/spree_cm_commissioner/integrations/sync_error.rb
1113
1120
  - app/errors/spree_cm_commissioner/payment_creation_error.rb
1114
1121
  - app/errors/spree_cm_commissioner/payment_source_missing_error.rb
1115
1122
  - app/errors/spree_cm_commissioner/schema_validation_error.rb
@@ -1127,6 +1134,7 @@ files:
1127
1134
  - app/factory/spree_cm_commissioner/vendor_telegram_message_factory.rb
1128
1135
  - app/finders/spree_cm_commissioner/accommodations/find.rb
1129
1136
  - app/finders/spree_cm_commissioner/accommodations/find_variant.rb
1137
+ - app/finders/spree_cm_commissioner/events/find_matches.rb
1130
1138
  - app/finders/spree_cm_commissioner/orders/find.rb
1131
1139
  - app/finders/spree_cm_commissioner/orders/find_by_state.rb
1132
1140
  - app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
@@ -1148,6 +1156,7 @@ files:
1148
1156
  - app/helpers/spree_cm_commissioner/admin/video_on_demand_helper.rb
1149
1157
  - app/helpers/spree_cm_commissioner/billing/monthly_orders_helper.rb
1150
1158
  - app/helpers/spree_cm_commissioner/billing/qrcodes_helper.rb
1159
+ - app/helpers/spree_cm_commissioner/external_integrations_helper.rb
1151
1160
  - app/helpers/spree_cm_commissioner/pin_code_sender_helper.rb
1152
1161
  - app/helpers/spree_cm_commissioner/telegram/base_helper.rb
1153
1162
  - app/helpers/spree_cm_commissioner/transit/order_query_helper.rb
@@ -1315,6 +1324,9 @@ files:
1315
1324
  - app/jobs/spree_cm_commissioner/export_csv_job.rb
1316
1325
  - app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
1317
1326
  - app/jobs/spree_cm_commissioner/import_order_job.rb
1327
+ - app/jobs/spree_cm_commissioner/integrations/base_job.rb
1328
+ - app/jobs/spree_cm_commissioner/integrations/polling_job.rb
1329
+ - app/jobs/spree_cm_commissioner/integrations/polling_scheduler_job.rb
1318
1330
  - app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
1319
1331
  - app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
1320
1332
  - app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
@@ -1334,6 +1346,7 @@ files:
1334
1346
  - app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb
1335
1347
  - app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb
1336
1348
  - app/jobs/spree_cm_commissioner/subscription_order_executor_job.rb
1349
+ - app/jobs/spree_cm_commissioner/telegram_alerts/integration_sync_failure_job.rb
1337
1350
  - app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
1338
1351
  - app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
1339
1352
  - app/jobs/spree_cm_commissioner/telegram_start_message_sender_job.rb
@@ -1360,6 +1373,7 @@ files:
1360
1373
  - app/models/.gitkeep
1361
1374
  - app/models/concerns/spree_cm_commissioner/event_metadata.rb
1362
1375
  - app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
1376
+ - app/models/concerns/spree_cm_commissioner/integrations/integration_mappable.rb
1363
1377
  - app/models/concerns/spree_cm_commissioner/json_preference_validator.rb
1364
1378
  - app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
1365
1379
  - app/models/concerns/spree_cm_commissioner/line_item_durationable.rb
@@ -1458,6 +1472,10 @@ files:
1458
1472
  - app/models/spree_cm_commissioner/image_methods_decorator.rb
1459
1473
  - app/models/spree_cm_commissioner/import.rb
1460
1474
  - app/models/spree_cm_commissioner/imports/import_order.rb
1475
+ - app/models/spree_cm_commissioner/integration.rb
1476
+ - app/models/spree_cm_commissioner/integration_mapping.rb
1477
+ - app/models/spree_cm_commissioner/integration_sync_session.rb
1478
+ - app/models/spree_cm_commissioner/integrations/stadium_x_v1.rb
1461
1479
  - app/models/spree_cm_commissioner/inventory.rb
1462
1480
  - app/models/spree_cm_commissioner/inventory_item.rb
1463
1481
  - app/models/spree_cm_commissioner/invite.rb
@@ -1690,6 +1708,7 @@ files:
1690
1708
  - app/overrides/spree/admin/shared/_version/deploy_tag_version_badge.html.erb.deface
1691
1709
  - app/overrides/spree/admin/shared/sub_menu/_configuration/locations_tab.html.erb.deface
1692
1710
  - app/overrides/spree/admin/shared/sub_menu/_configuration/menu_items.html.erb.deface
1711
+ - app/overrides/spree/admin/shared/sub_menu/_integrations/external_integrations.html.erb.deface
1693
1712
  - app/overrides/spree/admin/shared/sub_menu/_integrations/telegram_bot.html.erb.deface
1694
1713
  - app/overrides/spree/admin/shared/sub_menu/_orders/import_order.html.erb.deface
1695
1714
  - app/overrides/spree/admin/shared/sub_menu/_organizations/tenants_tab.html.erb.deface
@@ -1749,7 +1768,7 @@ files:
1749
1768
  - app/overrides/spree/admin/webhooks_subscribers/_form/rules.html.erb.deface
1750
1769
  - app/overrides/spree/admin/webhooks_subscribers/index/table.html.erb.deface
1751
1770
  - app/overrides/spree/layouts/admin/map_head.html.erb.deface
1752
- - app/presenters/spree/variants/visable_options_presenter.rb
1771
+ - app/presenters/spree/variants/visible_options_presenter.rb
1753
1772
  - app/queries/spree_cm_commissioner/accommodation_query.rb
1754
1773
  - app/queries/spree_cm_commissioner/dashboard_crew_event_query.rb
1755
1774
  - app/queries/spree_cm_commissioner/event_chart_queries.rb
@@ -1816,6 +1835,7 @@ files:
1816
1835
  - app/serializers/spree/v2/storefront/stock_location_serializer_decorator.rb
1817
1836
  - app/serializers/spree/v2/storefront/store_promotion_serializer.rb
1818
1837
  - app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb
1838
+ - app/serializers/spree/v2/storefront/tenant_serializer.rb
1819
1839
  - app/serializers/spree/v2/storefront/user_deletion_reason_serializer.rb
1820
1840
  - app/serializers/spree/v2/storefront/user_device_token_serializer.rb
1821
1841
  - app/serializers/spree/v2/storefront/user_profile_serializer.rb
@@ -1980,6 +2000,23 @@ files:
1980
2000
  - app/services/spree_cm_commissioner/imports/base_import_order_service.rb
1981
2001
  - app/services/spree_cm_commissioner/imports/create_order_service.rb
1982
2002
  - app/services/spree_cm_commissioner/imports/update_order_service.rb
2003
+ - app/services/spree_cm_commissioner/integrations/base/sync_manager.rb
2004
+ - app/services/spree_cm_commissioner/integrations/base/sync_result.rb
2005
+ - app/services/spree_cm_commissioner/integrations/polling.rb
2006
+ - app/services/spree_cm_commissioner/integrations/polling_scheduler.rb
2007
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/external_client/client.rb
2008
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/polling/sync_matches.rb
2009
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/polling/sync_zones.rb
2010
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/base.rb
2011
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/league.rb
2012
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/match.rb
2013
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/ticket.rb
2014
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/ticket_image.rb
2015
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/zone.rb
2016
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_manager.rb
2017
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/full_sync_strategy.rb
2018
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/incremental_sync_strategy.rb
2019
+ - app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/webhook_sync_strategy.rb
1983
2020
  - app/services/spree_cm_commissioner/intercity_taxi_order/create.rb
1984
2021
  - app/services/spree_cm_commissioner/intercity_taxi_order/update.rb
1985
2022
  - app/services/spree_cm_commissioner/metafields/product_metadata_service.rb
@@ -2008,6 +2045,7 @@ files:
2008
2045
  - app/services/spree_cm_commissioner/seats/bulk_release_on_hold_blocks.rb
2009
2046
  - app/services/spree_cm_commissioner/seats/release_expired_blocks.rb
2010
2047
  - app/services/spree_cm_commissioner/seeds/roles_decorator.rb
2048
+ - app/services/spree_cm_commissioner/telegram_alerts/integration_sync_failure.rb
2011
2049
  - app/services/spree_cm_commissioner/transit/legs_builder_service.rb
2012
2050
  - app/services/spree_cm_commissioner/trips/search.rb
2013
2051
  - app/services/spree_cm_commissioner/user_authenticator.rb
@@ -2109,6 +2147,15 @@ files:
2109
2147
  - app/views/spree/admin/import_new_orders/index.html.erb
2110
2148
  - app/views/spree/admin/import_new_orders/new.html.erb
2111
2149
  - app/views/spree/admin/import_new_orders/show.html.erb
2150
+ - app/views/spree/admin/integration_mappings/_integration_mappings.html.erb
2151
+ - app/views/spree/admin/integration_mappings/index.html.erb
2152
+ - app/views/spree/admin/integration_sessions/_integration_sync_sessions.html.erb
2153
+ - app/views/spree/admin/integration_sessions/index.html.erb
2154
+ - app/views/spree/admin/integrations/_form.html.erb
2155
+ - app/views/spree/admin/integrations/_stadium_x_v1_fields.html.erb
2156
+ - app/views/spree/admin/integrations/edit.html.erb
2157
+ - app/views/spree/admin/integrations/index.html.erb
2158
+ - app/views/spree/admin/integrations/new.html.erb
2112
2159
  - app/views/spree/admin/inventory_items/show.html.erb
2113
2160
  - app/views/spree/admin/kyc/_form.html.erb
2114
2161
  - app/views/spree/admin/kyc/edit.html.erb
@@ -2891,6 +2938,9 @@ files:
2891
2938
  - db/migrate/20251009033331_add_registered_by_to_spree_users.rb
2892
2939
  - db/migrate/20251009073040_add_lock_version_to_cm_routes.rb
2893
2940
  - db/migrate/20251009073929_add_lock_version_to_cm_vendor_routes.rb
2941
+ - db/migrate/20251017094845_create_cm_integrations.rb
2942
+ - db/migrate/20251017101555_create_cm_integration_sync_sessions.rb
2943
+ - db/migrate/20251017101605_create_cm_integration_mappings.rb
2894
2944
  - db/migrate/20251113081853_add_index_to_spree_orders_updated_at.rb
2895
2945
  - db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb
2896
2946
  - docker-compose.yml
@@ -2951,6 +3001,9 @@ files:
2951
3001
  - lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
2952
3002
  - lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
2953
3003
  - lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
3004
+ - lib/spree_cm_commissioner/test_helper/factories/integration_factory.rb
3005
+ - lib/spree_cm_commissioner/test_helper/factories/integration_mapping_factory.rb
3006
+ - lib/spree_cm_commissioner/test_helper/factories/integration_sync_session_factory.rb
2954
3007
  - lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb
2955
3008
  - lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
2956
3009
  - lib/spree_cm_commissioner/test_helper/factories/invite_guests_factory.rb
@@ -3063,9 +3116,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
3063
3116
  version: '2.7'
3064
3117
  required_rubygems_version: !ruby/object:Gem::Requirement
3065
3118
  requirements:
3066
- - - ">="
3119
+ - - ">"
3067
3120
  - !ruby/object:Gem::Version
3068
- version: '0'
3121
+ version: 1.3.1
3069
3122
  requirements:
3070
3123
  - none
3071
3124
  rubygems_version: 3.4.1