spree_cm_commissioner 2.5.0.pre.pre1 → 2.5.0.pre.pre2

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 (94) 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/app/controllers/spree/api/v2/storefront/popular_route_places_controller.rb +7 -1
  6. data/app/controllers/spree/api/v2/storefront/route_places_controller.rb +9 -9
  7. data/app/finders/spree_cm_commissioner/places/find_with_route.rb +10 -10
  8. data/app/finders/spree_cm_commissioner/routes/find_popular.rb +10 -14
  9. data/app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb +1 -1
  10. data/app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb +2 -4
  11. data/app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb +4 -5
  12. data/app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb +3 -15
  13. data/app/models/concerns/spree_cm_commissioner/store_metadata.rb +2 -14
  14. data/app/models/concerns/spree_cm_commissioner/tenant_preference.rb +3 -0
  15. data/app/models/concerns/spree_cm_commissioner/variant_options_concern.rb +7 -1
  16. data/app/models/spree_cm_commissioner/inventory_item.rb +1 -5
  17. data/app/models/spree_cm_commissioner/option_type_decorator.rb +0 -8
  18. data/app/models/spree_cm_commissioner/option_value_decorator.rb +0 -34
  19. data/app/models/spree_cm_commissioner/product_decorator.rb +2 -3
  20. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +2 -2
  21. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +2 -2
  22. data/app/models/spree_cm_commissioner/taxon_decorator.rb +0 -1
  23. data/app/models/spree_cm_commissioner/taxonomy_decorator.rb +1 -13
  24. data/app/models/spree_cm_commissioner/variant_decorator.rb +4 -7
  25. data/app/models/spree_cm_commissioner/vendor_decorator.rb +0 -1
  26. data/app/presenters/spree/variants/{visible_options_presenter.rb → visable_options_presenter.rb} +4 -2
  27. data/app/request_schemas/spree_cm_commissioner/popular_route_places_request_schema.rb +12 -0
  28. data/app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb +5 -0
  29. data/app/views/spree/admin/tenants/_form.html.erb +18 -0
  30. data/app/views/spree/admin/tenants/form/_footer.html.erb +31 -0
  31. data/app/views/spree/admin/tenants/form/_social.html.erb +31 -0
  32. data/app/views/spree/order_mailer/confirm_email.html.erb +1 -1
  33. data/app/views/spree_cm_commissioner/layouts/order_mailer.html.erb +1 -1
  34. data/app/views/spree_cm_commissioner/order_mailer/tenant/_footer.html.erb +13 -6
  35. data/app/views/spree_cm_commissioner/order_mailer/tenant/_support_contact.html.erb +23 -24
  36. data/config/locales/en.yml +0 -8
  37. data/config/locales/km.yml +0 -8
  38. data/config/routes.rb +0 -8
  39. data/db/migrate/20251209022924_add_contact_fields_to_cm_tenants.rb +9 -0
  40. data/lib/cm_app_logger.rb +0 -1
  41. data/lib/spree_cm_commissioner/version.rb +1 -1
  42. data/lib/spree_cm_commissioner.rb +7 -8
  43. metadata +7 -54
  44. data/app/controllers/spree/admin/integration_mappings_controller.rb +0 -21
  45. data/app/controllers/spree/admin/integration_sessions_controller.rb +0 -21
  46. data/app/controllers/spree/admin/integrations_controller.rb +0 -83
  47. data/app/controllers/spree/api/v2/storefront/event_matches_controller.rb +0 -15
  48. data/app/errors/spree_cm_commissioner/integrations/external_client_error.rb +0 -10
  49. data/app/errors/spree_cm_commissioner/integrations/sync_error.rb +0 -4
  50. data/app/finders/spree_cm_commissioner/events/find_matches.rb +0 -15
  51. data/app/helpers/spree_cm_commissioner/external_integrations_helper.rb +0 -58
  52. data/app/jobs/spree_cm_commissioner/integrations/base_job.rb +0 -39
  53. data/app/jobs/spree_cm_commissioner/integrations/polling_job.rb +0 -53
  54. data/app/jobs/spree_cm_commissioner/integrations/polling_scheduler_job.rb +0 -30
  55. data/app/jobs/spree_cm_commissioner/telegram_alerts/integration_sync_failure_job.rb +0 -17
  56. data/app/models/concerns/spree_cm_commissioner/integrations/integration_mappable.rb +0 -58
  57. data/app/models/spree_cm_commissioner/integration.rb +0 -21
  58. data/app/models/spree_cm_commissioner/integration_mapping.rb +0 -37
  59. data/app/models/spree_cm_commissioner/integration_sync_session.rb +0 -15
  60. data/app/models/spree_cm_commissioner/integrations/stadium_x_v1.rb +0 -21
  61. data/app/overrides/spree/admin/shared/sub_menu/_integrations/external_integrations.html.erb.deface +0 -6
  62. data/app/services/spree_cm_commissioner/integrations/base/sync_manager.rb +0 -69
  63. data/app/services/spree_cm_commissioner/integrations/base/sync_result.rb +0 -183
  64. data/app/services/spree_cm_commissioner/integrations/polling.rb +0 -70
  65. data/app/services/spree_cm_commissioner/integrations/polling_scheduler.rb +0 -79
  66. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/external_client/client.rb +0 -152
  67. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/polling/sync_matches.rb +0 -113
  68. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/polling/sync_zones.rb +0 -215
  69. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/base.rb +0 -20
  70. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/league.rb +0 -19
  71. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/match.rb +0 -95
  72. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/ticket.rb +0 -81
  73. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/ticket_image.rb +0 -19
  74. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/resources/zone.rb +0 -90
  75. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_manager.rb +0 -35
  76. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/full_sync_strategy.rb +0 -38
  77. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/incremental_sync_strategy.rb +0 -44
  78. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/webhook_sync_strategy.rb +0 -16
  79. data/app/services/spree_cm_commissioner/telegram_alerts/integration_sync_failure.rb +0 -49
  80. data/app/views/spree/admin/integration_mappings/_integration_mappings.html.erb +0 -107
  81. data/app/views/spree/admin/integration_mappings/index.html.erb +0 -33
  82. data/app/views/spree/admin/integration_sessions/_integration_sync_sessions.html.erb +0 -116
  83. data/app/views/spree/admin/integration_sessions/index.html.erb +0 -42
  84. data/app/views/spree/admin/integrations/_form.html.erb +0 -104
  85. data/app/views/spree/admin/integrations/_stadium_x_v1_fields.html.erb +0 -29
  86. data/app/views/spree/admin/integrations/edit.html.erb +0 -45
  87. data/app/views/spree/admin/integrations/index.html.erb +0 -75
  88. data/app/views/spree/admin/integrations/new.html.erb +0 -25
  89. data/db/migrate/20251017094845_create_cm_integrations.rb +0 -22
  90. data/db/migrate/20251017101555_create_cm_integration_sync_sessions.rb +0 -68
  91. data/db/migrate/20251017101605_create_cm_integration_mappings.rb +0 -52
  92. data/lib/spree_cm_commissioner/test_helper/factories/integration_factory.rb +0 -25
  93. data/lib/spree_cm_commissioner/test_helper/factories/integration_mapping_factory.rb +0 -14
  94. data/lib/spree_cm_commissioner/test_helper/factories/integration_sync_session_factory.rb +0 -7
@@ -74,6 +74,8 @@
74
74
  <%= content_tag :div, nil, style: "background-color: #{@object.preferred_brand_primary_color}; width: 60px; height: 60px; border: 1px solid #ccc; box-sizing: border-box; display: block;" %>
75
75
  </div>
76
76
  </div>
77
+
78
+ <!-- Assetlinks Field -->
77
79
  <div class="col-12">
78
80
  <%= f.field_container :preferred_assetlinks do %>
79
81
  <%= f.label :preferred_assetlinks, raw(Spree.t(:assetlinks)) %>
@@ -182,6 +184,22 @@
182
184
  </div>
183
185
  </div>
184
186
 
187
+ <!-- ======================== Footer ======================== -->
188
+ <div class="card mb-4">
189
+ <div class="card-body">
190
+ <div data-hook="admin_tenant_form_fields" class="row mt-4">
191
+ <div class="col-12 mb-4">
192
+ <h4>Footer <span class="text-muted" style="font-size: 1rem; font-weight: normal;">(Footer is for customer support details and tenant address)</span></h4>
193
+ </div>
194
+ <!-- Footer Field -->
195
+ <div class="col-12">
196
+ <%= render partial: 'spree/admin/tenants/form/footer', locals: { f: f } %>
197
+ <%= render partial: 'spree/admin/tenants/form/social', locals: { f: f } %>
198
+ </div>
199
+ </div>
200
+ </div>
201
+ </div>
202
+
185
203
  <!-- ======================== Redirect Settings ======================== -->
186
204
  <div class="card mb-4">
187
205
  <div class="card-body">
@@ -0,0 +1,31 @@
1
+ <div data-hook="admin_tenant_support_fields" class="row">
2
+ <div class="col-6">
3
+ <%= f.field_container :customer_support_email do %>
4
+ <%= f.label :customer_support_email, 'Customer support email' %>
5
+ <%= f.email_field :customer_support_email, class: 'form-control', placeholder: 'support@example.com' %>
6
+ <% if f.object.errors[:customer_support_email].any? %>
7
+ <div class="error text-danger"><%= f.object.errors[:customer_support_email].join(', ') %></div>
8
+ <% end %>
9
+ <% end %>
10
+ </div>
11
+
12
+ <div class="col-6">
13
+ <%= f.field_container :contact_phone do %>
14
+ <%= f.label :contact_phone, 'Contact phone' %>
15
+ <%= f.telephone_field :contact_phone, class: 'form-control', placeholder: '+855 12 345 678' %>
16
+ <% if f.object.errors[:contact_phone].any? %>
17
+ <div class="error text-danger"><%= f.object.errors[:contact_phone].join(', ') %></div>
18
+ <% end %>
19
+ <% end %>
20
+ </div>
21
+
22
+ <div class="col-12 mt-3">
23
+ <%= f.field_container :address do %>
24
+ <%= f.label :address, 'Address' %>
25
+ <%= f.text_area :address, class: 'form-control', rows: 3, placeholder: 'Store address' %>
26
+ <% if f.object.errors[:address].any? %>
27
+ <div class="error text-danger"><%= f.object.errors[:address].join(', ') %></div>
28
+ <% end %>
29
+ <% end %>
30
+ </div>
31
+ </div>
@@ -0,0 +1,31 @@
1
+ <div data-hook="admin_tenant_social_fields" class="row">
2
+ <div class="col-4">
3
+ <%= f.field_container :preferred_facebook do %>
4
+ <%= f.label :preferred_facebook, 'Facebook URL' %>
5
+ <%= f.url_field :preferred_facebook, class: 'form-control', placeholder: 'https://facebook.com/yourpage' %>
6
+ <% if f.object.errors[:preferred_facebook].any? %>
7
+ <div class="error text-danger"><%= f.object.errors[:preferred_facebook].join(', ') %></div>
8
+ <% end %>
9
+ <% end %>
10
+ </div>
11
+
12
+ <div class="col-4">
13
+ <%= f.field_container :preferred_twitter do %>
14
+ <%= f.label :preferred_twitter, 'Twitter URL' %>
15
+ <%= f.url_field :preferred_twitter, class: 'form-control', placeholder: 'https://twitter.com/yourhandle' %>
16
+ <% if f.object.errors[:preferred_twitter].any? %>
17
+ <div class="error text-danger"><%= f.object.errors[:preferred_twitter].join(', ') %></div>
18
+ <% end %>
19
+ <% end %>
20
+ </div>
21
+
22
+ <div class="col-4">
23
+ <%= f.field_container :preferred_instagram do %>
24
+ <%= f.label :preferred_instagram, 'Instagram URL' %>
25
+ <%= f.url_field :preferred_instagram, class: 'form-control', placeholder: 'https://instagram.com/youraccount' %>
26
+ <% if f.object.errors[:preferred_instagram].any? %>
27
+ <div class="error text-danger"><%= f.object.errors[:preferred_instagram].join(', ') %></div>
28
+ <% end %>
29
+ <% end %>
30
+ </div>
31
+ </div>
@@ -21,7 +21,7 @@
21
21
  <%= render 'spree_cm_commissioner/order_mailer/order_total', order: @order %>
22
22
  <%= render 'spree_cm_commissioner/order_mailer/your_booking', order: @order, show_booking_header: true %>
23
23
  <%= render 'spree_cm_commissioner/order_mailer/tenant/customer_info', order: @order %>
24
- <%= render 'spree_cm_commissioner/order_mailer/tenant/support_contact' %>
24
+ <%= render 'spree_cm_commissioner/order_mailer/tenant/support_contact', order: @order, name: @name%>
25
25
  </div>
26
26
  </div>
27
27
  <% end %>
@@ -26,7 +26,7 @@
26
26
  <% if @order.tenant.nil? %>
27
27
  <%= render 'spree_cm_commissioner/order_mailer/footer', store: @order.store %>
28
28
  <% else %>
29
- <%= render 'spree_cm_commissioner/order_mailer/tenant/footer', store: @order.store %>
29
+ <%= render 'spree_cm_commissioner/order_mailer/tenant/footer', tenant: @order.tenant %>
30
30
  <% end %>
31
31
  </td>
32
32
  </tr>
@@ -1,24 +1,31 @@
1
1
  <div class="email-footer_inner">
2
- <div class="mb-24"><%= store.description%></div>
3
- <div class="mb-24 f-14"><%= store.address%></div>
2
+ <div class="mb-24"><%= tenant&.description %></div>
3
+ <div class="mb-24 f-14"><%= tenant&.address %></div>
4
4
  <h2 class="mb-24">Connect with us</h2>
5
5
  <table class="mb-24 social_icons">
6
6
  <tbody>
7
7
  <tr>
8
- <% if store.facebook? %>
8
+ <% if tenant&.preferred_facebook.present? %>
9
9
  <td class="social_icon">
10
- <%= link_to store.facebook, target: :_blank do %>
10
+ <%= link_to tenant.preferred_facebook, target: :_blank do %>
11
11
  <%= image_tag "mailer/facebook.png", class: "mail-icon"%>
12
12
  <% end %>
13
13
  </td>
14
14
  <% end %>
15
- <% if store.instagram?%>
15
+ <% if tenant&.preferred_instagram.present? %>
16
16
  <td class="social_icon">
17
- <%= link_to store.instagram, target: :_blank do %>
17
+ <%= link_to tenant.preferred_instagram, target: :_blank do %>
18
18
  <%= image_tag "mailer/instagram.png", class: "mail-icon"%>
19
19
  <% end %>
20
20
  </td>
21
21
  <% end %>
22
+ <% if tenant&.preferred_twitter.present? %>
23
+ <td class="social_icon">
24
+ <%= link_to tenant.preferred_twitter, target: :_blank do %>
25
+ <%= image_tag "mailer/twitter.png", class: "mail-icon"%>
26
+ <% end %>
27
+ </td>
28
+ <% end %>
22
29
  </tr>
23
30
  </tbody>
24
31
  </table>
@@ -1,33 +1,32 @@
1
1
  <div class="content-cell">
2
- <div class="container">
3
- <h2><%= I18n.t('mail.order_mailer.bookmeplus_support')%></h2>
4
- <div class="flex two-columns">
5
- <div class="two-columns-item">
6
- <div class="flex two-columns-item_detail">
7
- <div class="two-columns_icon"><%= image_tag "mailer/tenant_phone.png", class: "mail-icon"%></div>
8
- <div class="two-columns_text-container">
9
- <p class="two-columns_title">Contact</p>
10
- <% if @order.store.contact_phone.present? %>
11
- <p class="two-columns_description">
12
- <%= link_to @order.store.contact_phone, "tel:#{@order.store.contact_phone}" %>
13
- </p>
14
- <% end %>
2
+ <div class="container">
3
+ <h2><%= name %> Support</h2>
4
+ <div class="flex two-columns">
5
+ <div class="two-columns-item">
6
+ <div class="flex two-columns-item_detail">
7
+ <div class="two-columns_icon"><%= image_tag "mailer/tenant_phone.png", class: "mail-icon"%></div>
8
+ <div class="two-columns_text-container">
9
+ <p class="two-columns_title">Contact</p>
10
+ <% if order&.tenant&.contact_phone&.present? %>
11
+ <p class="two-columns_description">
12
+ <%= link_to order.tenant.contact_phone, "tel:#{order.tenant.contact_phone}" %>
13
+ </p>
14
+ <% end %>
15
+ </div>
15
16
  </div>
16
17
  </div>
17
- </div>
18
- <div class="vertical-separater"></div>
19
- <div class="two-columns-item">
20
- <div class="flex two-columns-item_detail">
21
- <div class="two-columns_icon"><%= image_tag "mailer/mail.png", class: "mail-icon"%></div>
22
- <div class="two-columns_text-container">
23
- <p class="two-columns_title">Email</p>
18
+ <div class="vertical-separater"></div>
19
+ <div class="two-columns-item">
20
+ <div class="flex two-columns-item_detail">
21
+ <div class="two-columns_icon"><%= image_tag "mailer/mail.png", class: "mail-icon"%></div>
22
+ <div class="two-columns_text-container">
23
+ <p class="two-columns_title">Email</p>
24
24
  <p class="two-columns_description">
25
- <%= @vendor&.support_email.present? ? link_to(@vendor.support_email, "mailto:#{@vendor.support_email}") : "N/A" %>
26
- </p>
27
-
25
+ <%= order&.tenant&.customer_support_email.present? ? link_to(order.tenant.customer_support_email, "mailto:#{order.tenant.customer_support_email}") : "N/A" %>
26
+ </p>
27
+ </div>
28
28
  </div>
29
29
  </div>
30
30
  </div>
31
31
  </div>
32
32
  </div>
33
- </div>
@@ -454,14 +454,6 @@ en:
454
454
  admin:
455
455
  display_on:
456
456
  frontend_for_early_adopter: "Storefront for Early Adopter"
457
- external_integrations_title: "External Integrations"
458
- integration_sync_enqueued: "Integration sync has been enqueued"
459
- integration_inactive: "Integration is inactive"
460
- external_integrations:
461
- view_result: "View Result"
462
- sync_result: "Sync Result"
463
- external_payload: "External Payload"
464
- no_results: "No results found"
465
457
  event:
466
458
  check_in:
467
459
  success: "Guest check-in in successfully"
@@ -341,14 +341,6 @@ km:
341
341
  admin:
342
342
  display_on:
343
343
  frontend_for_early_adopter: "Storefront for Early Adopter"
344
- external_integrations_title: "ការភ្ជាប់ខាងក្រៅ"
345
- integration_sync_enqueued: "ការធ្វើសមកាលកម្មបានដាក់ក្នុងជួរ"
346
- integration_inactive: "ការភ្ជាប់មិនដំណើរការ"
347
- external_integrations:
348
- view_result: "មើលលទ្ធផល"
349
- sync_result: "លទ្ធផលធ្វើសមកាលកម្ម"
350
- external_payload: "ទិន្នន័យខាងក្រៅ"
351
- no_results: "មិនមានលទ្ធផលទេ"
352
344
  event:
353
345
  check_in:
354
346
  success: "Guest check-in in successfully"
data/config/routes.rb CHANGED
@@ -283,13 +283,6 @@ Spree::Core::Engine.add_routes do
283
283
  post :set_webhook
284
284
  end
285
285
  end
286
- resources :integrations do
287
- member do
288
- post :enqueue_polling
289
- end
290
- resources :sessions, only: [:index], controller: 'integration_sessions'
291
- resources :mappings, only: [:index], controller: 'integration_mappings'
292
- end
293
286
 
294
287
  resources :webhooks_subscribers do
295
288
  resources :rules, controller: :webhooks_subscriber_rules, except: %i[index show]
@@ -702,7 +695,6 @@ Spree::Core::Engine.add_routes do
702
695
 
703
696
  resources :seat_layouts, only: %i[show index]
704
697
  resources :inventory_items, only: %i[index]
705
- resources :event_matches, only: %i[index]
706
698
  namespace :transit do
707
699
  resources :draft_orders, only: %i[create]
708
700
  end
@@ -0,0 +1,9 @@
1
+ class AddContactFieldsToCmTenants < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_tenants, :customer_support_email, :string, if_not_exists: true
4
+ add_column :cm_tenants, :address, :text, if_not_exists: true
5
+ add_column :cm_tenants, :contact_phone, :string, if_not_exists: true
6
+ add_index :cm_tenants, :customer_support_email, if_not_exists: true
7
+ add_index :cm_tenants, :contact_phone, if_not_exists: true
8
+ end
9
+ end
data/lib/cm_app_logger.rb CHANGED
@@ -12,7 +12,6 @@ module CmAppLogger
12
12
 
13
13
  message[:start_time] = start_time
14
14
  message[:duration_ms] = (Time.current - start_time) * 1000
15
- message[:result] = block_result
16
15
  Rails.logger.info(message.to_json)
17
16
  block_result
18
17
  end
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.5.0-pre1'.freeze
2
+ VERSION = '2.5.0.pre.pre2'.freeze
3
3
 
4
4
  module_function
5
5
 
@@ -55,17 +55,16 @@ require 'byebug' if Rails.env.development? || Rails.env.test?
55
55
 
56
56
  module SpreeCmCommissioner
57
57
  class << self
58
- # Allows overriding the default Redis connection pools with custom ones
59
- attr_writer :inventory_redis_pool
58
+ # Allows overriding the default Redis connection pool with a custom one
59
+ attr_writer :redis_pool
60
60
 
61
- # Inventory Redis pool for inventory management
62
- def inventory_redis_pool
63
- @inventory_redis_pool ||= default_redis_pool
61
+ def redis_pool
62
+ @redis_pool ||= default_redis_pool
64
63
  end
65
64
 
66
- # Resets all Redis pools, useful for testing or reinitialization
67
- def reset_redis_pools
68
- @inventory_redis_pool = nil
65
+ # Resets the Redis pool, useful for testing or reinitialization
66
+ def reset_redis_pool
67
+ @redis_pool = nil
69
68
  end
70
69
 
71
70
  private
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.5.0.pre.pre1
4
+ version: 2.5.0.pre.pre2
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-12 00:00:00.000000000 Z
11
+ date: 2025-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -848,9 +848,6 @@ 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
854
851
  - app/controllers/spree/admin/inventory_items_controller.rb
855
852
  - app/controllers/spree/admin/kyc_controller.rb
856
853
  - app/controllers/spree/admin/line_items_controller.rb
@@ -946,7 +943,6 @@ files:
946
943
  - app/controllers/spree/api/v2/storefront/customer_notifications_controller.rb
947
944
  - app/controllers/spree/api/v2/storefront/dynamic_field_options_controller.rb
948
945
  - app/controllers/spree/api/v2/storefront/dynamic_fields_controller.rb
949
- - app/controllers/spree/api/v2/storefront/event_matches_controller.rb
950
946
  - app/controllers/spree/api/v2/storefront/events_controller.rb
951
947
  - app/controllers/spree/api/v2/storefront/google_wallet_object_tokens_controller.rb
952
948
  - app/controllers/spree/api/v2/storefront/guest_card_classes_controller.rb
@@ -1115,8 +1111,6 @@ files:
1115
1111
  - app/controllers/spree_cm_commissioner/well_known_controller.rb
1116
1112
  - app/errors/spree_cm_commissioner/connection_error.rb
1117
1113
  - 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
1120
1114
  - app/errors/spree_cm_commissioner/payment_creation_error.rb
1121
1115
  - app/errors/spree_cm_commissioner/payment_source_missing_error.rb
1122
1116
  - app/errors/spree_cm_commissioner/schema_validation_error.rb
@@ -1134,7 +1128,6 @@ files:
1134
1128
  - app/factory/spree_cm_commissioner/vendor_telegram_message_factory.rb
1135
1129
  - app/finders/spree_cm_commissioner/accommodations/find.rb
1136
1130
  - app/finders/spree_cm_commissioner/accommodations/find_variant.rb
1137
- - app/finders/spree_cm_commissioner/events/find_matches.rb
1138
1131
  - app/finders/spree_cm_commissioner/orders/find.rb
1139
1132
  - app/finders/spree_cm_commissioner/orders/find_by_state.rb
1140
1133
  - app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
@@ -1156,7 +1149,6 @@ files:
1156
1149
  - app/helpers/spree_cm_commissioner/admin/video_on_demand_helper.rb
1157
1150
  - app/helpers/spree_cm_commissioner/billing/monthly_orders_helper.rb
1158
1151
  - app/helpers/spree_cm_commissioner/billing/qrcodes_helper.rb
1159
- - app/helpers/spree_cm_commissioner/external_integrations_helper.rb
1160
1152
  - app/helpers/spree_cm_commissioner/pin_code_sender_helper.rb
1161
1153
  - app/helpers/spree_cm_commissioner/telegram/base_helper.rb
1162
1154
  - app/helpers/spree_cm_commissioner/transit/order_query_helper.rb
@@ -1324,9 +1316,6 @@ files:
1324
1316
  - app/jobs/spree_cm_commissioner/export_csv_job.rb
1325
1317
  - app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
1326
1318
  - 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
1330
1319
  - app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
1331
1320
  - app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
1332
1321
  - app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
@@ -1346,7 +1335,6 @@ files:
1346
1335
  - app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb
1347
1336
  - app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb
1348
1337
  - app/jobs/spree_cm_commissioner/subscription_order_executor_job.rb
1349
- - app/jobs/spree_cm_commissioner/telegram_alerts/integration_sync_failure_job.rb
1350
1338
  - app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
1351
1339
  - app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
1352
1340
  - app/jobs/spree_cm_commissioner/telegram_start_message_sender_job.rb
@@ -1373,7 +1361,6 @@ files:
1373
1361
  - app/models/.gitkeep
1374
1362
  - app/models/concerns/spree_cm_commissioner/event_metadata.rb
1375
1363
  - app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
1376
- - app/models/concerns/spree_cm_commissioner/integrations/integration_mappable.rb
1377
1364
  - app/models/concerns/spree_cm_commissioner/json_preference_validator.rb
1378
1365
  - app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
1379
1366
  - app/models/concerns/spree_cm_commissioner/line_item_durationable.rb
@@ -1472,10 +1459,6 @@ files:
1472
1459
  - app/models/spree_cm_commissioner/image_methods_decorator.rb
1473
1460
  - app/models/spree_cm_commissioner/import.rb
1474
1461
  - 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
1479
1462
  - app/models/spree_cm_commissioner/inventory.rb
1480
1463
  - app/models/spree_cm_commissioner/inventory_item.rb
1481
1464
  - app/models/spree_cm_commissioner/invite.rb
@@ -1708,7 +1691,6 @@ files:
1708
1691
  - app/overrides/spree/admin/shared/_version/deploy_tag_version_badge.html.erb.deface
1709
1692
  - app/overrides/spree/admin/shared/sub_menu/_configuration/locations_tab.html.erb.deface
1710
1693
  - 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
1712
1694
  - app/overrides/spree/admin/shared/sub_menu/_integrations/telegram_bot.html.erb.deface
1713
1695
  - app/overrides/spree/admin/shared/sub_menu/_orders/import_order.html.erb.deface
1714
1696
  - app/overrides/spree/admin/shared/sub_menu/_organizations/tenants_tab.html.erb.deface
@@ -1768,7 +1750,7 @@ files:
1768
1750
  - app/overrides/spree/admin/webhooks_subscribers/_form/rules.html.erb.deface
1769
1751
  - app/overrides/spree/admin/webhooks_subscribers/index/table.html.erb.deface
1770
1752
  - app/overrides/spree/layouts/admin/map_head.html.erb.deface
1771
- - app/presenters/spree/variants/visible_options_presenter.rb
1753
+ - app/presenters/spree/variants/visable_options_presenter.rb
1772
1754
  - app/queries/spree_cm_commissioner/accommodation_query.rb
1773
1755
  - app/queries/spree_cm_commissioner/dashboard_crew_event_query.rb
1774
1756
  - app/queries/spree_cm_commissioner/event_chart_queries.rb
@@ -1789,6 +1771,7 @@ files:
1789
1771
  - app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_schema.rb
1790
1772
  - app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_update_schema.rb
1791
1773
  - app/request_schemas/spree_cm_commissioner/inventory_item_schema.rb
1774
+ - app/request_schemas/spree_cm_commissioner/popular_route_places_request_schema.rb
1792
1775
  - app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
1793
1776
  - app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb
1794
1777
  - app/request_schemas/spree_cm_commissioner/seat_layout_schema.rb
@@ -2000,23 +1983,6 @@ files:
2000
1983
  - app/services/spree_cm_commissioner/imports/base_import_order_service.rb
2001
1984
  - app/services/spree_cm_commissioner/imports/create_order_service.rb
2002
1985
  - 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
2020
1986
  - app/services/spree_cm_commissioner/intercity_taxi_order/create.rb
2021
1987
  - app/services/spree_cm_commissioner/intercity_taxi_order/update.rb
2022
1988
  - app/services/spree_cm_commissioner/metafields/product_metadata_service.rb
@@ -2045,7 +2011,6 @@ files:
2045
2011
  - app/services/spree_cm_commissioner/seats/bulk_release_on_hold_blocks.rb
2046
2012
  - app/services/spree_cm_commissioner/seats/release_expired_blocks.rb
2047
2013
  - app/services/spree_cm_commissioner/seeds/roles_decorator.rb
2048
- - app/services/spree_cm_commissioner/telegram_alerts/integration_sync_failure.rb
2049
2014
  - app/services/spree_cm_commissioner/transit/legs_builder_service.rb
2050
2015
  - app/services/spree_cm_commissioner/trips/search.rb
2051
2016
  - app/services/spree_cm_commissioner/user_authenticator.rb
@@ -2147,15 +2112,6 @@ files:
2147
2112
  - app/views/spree/admin/import_new_orders/index.html.erb
2148
2113
  - app/views/spree/admin/import_new_orders/new.html.erb
2149
2114
  - 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
2159
2115
  - app/views/spree/admin/inventory_items/show.html.erb
2160
2116
  - app/views/spree/admin/kyc/_form.html.erb
2161
2117
  - app/views/spree/admin/kyc/edit.html.erb
@@ -2241,6 +2197,8 @@ files:
2241
2197
  - app/views/spree/admin/tenants/_form.html.erb
2242
2198
  - app/views/spree/admin/tenants/_tabs.html.erb
2243
2199
  - app/views/spree/admin/tenants/edit.html.erb
2200
+ - app/views/spree/admin/tenants/form/_footer.html.erb
2201
+ - app/views/spree/admin/tenants/form/_social.html.erb
2244
2202
  - app/views/spree/admin/tenants/index.html.erb
2245
2203
  - app/views/spree/admin/tenants/new.html.erb
2246
2204
  - app/views/spree/admin/user_events/_events.html.erb
@@ -2938,11 +2896,9 @@ files:
2938
2896
  - db/migrate/20251009033331_add_registered_by_to_spree_users.rb
2939
2897
  - db/migrate/20251009073040_add_lock_version_to_cm_routes.rb
2940
2898
  - 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
2944
2899
  - db/migrate/20251113081853_add_index_to_spree_orders_updated_at.rb
2945
2900
  - db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb
2901
+ - db/migrate/20251209022924_add_contact_fields_to_cm_tenants.rb
2946
2902
  - docker-compose.yml
2947
2903
  - docs/api/scoped-access-token-endpoints.md
2948
2904
  - docs/option_types/attr_types.md
@@ -3001,9 +2957,6 @@ files:
3001
2957
  - lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
3002
2958
  - lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
3003
2959
  - 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
3007
2960
  - lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb
3008
2961
  - lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
3009
2962
  - lib/spree_cm_commissioner/test_helper/factories/invite_guests_factory.rb
@@ -1,21 +0,0 @@
1
- module Spree
2
- module Admin
3
- class IntegrationMappingsController < Spree::Admin::BaseController
4
- helper SpreeCmCommissioner::ExternalIntegrationsHelper
5
- before_action :load_integration
6
-
7
- def index
8
- @mappings = @integration.integration_mappings
9
- .order(updated_at: :desc)
10
- .page(params[:page])
11
- .per(params[:per_page] || 25)
12
- end
13
-
14
- private
15
-
16
- def load_integration
17
- @integration ||= SpreeCmCommissioner::Integration.find(params[:integration_id])
18
- end
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- module Spree
2
- module Admin
3
- class IntegrationSessionsController < Spree::Admin::BaseController
4
- helper SpreeCmCommissioner::ExternalIntegrationsHelper
5
- before_action :load_integration
6
-
7
- def index
8
- @sync_sessions = @integration.integration_sync_sessions
9
- .order(created_at: :desc)
10
- .page(params[:page])
11
- .per(params[:per_page] || 25)
12
- end
13
-
14
- private
15
-
16
- def load_integration
17
- @integration ||= SpreeCmCommissioner::Integration.find(params[:integration_id])
18
- end
19
- end
20
- end
21
- end
@@ -1,83 +0,0 @@
1
- module Spree
2
- module Admin
3
- class IntegrationsController < Spree::Admin::ResourceController
4
- helper SpreeCmCommissioner::ExternalIntegrationsHelper
5
- before_action :load_form_collections, only: %i[new create edit update]
6
- before_action :load_integration, only: %i[enqueue_polling]
7
-
8
- def index
9
- @integrations = model_class.all
10
- end
11
-
12
- def enqueue_polling
13
- sync_type = params[:sync_type].presence || :full
14
-
15
- if @integration.active?
16
- SpreeCmCommissioner::Integrations::PollingJob.perform_later(
17
- integration_id: @integration.id,
18
- sync_type: sync_type
19
- )
20
- flash[:success] = Spree.t('admin.integration_sync_enqueued')
21
- else
22
- flash[:error] = Spree.t('admin.integration_inactive')
23
- end
24
-
25
- redirect_to admin_integration_sessions_path(@integration)
26
- end
27
-
28
- # override
29
- def model_class
30
- SpreeCmCommissioner::Integration
31
- end
32
-
33
- # override
34
- def collection_url(options = {})
35
- admin_integrations_url(options)
36
- end
37
-
38
- private
39
-
40
- def permitted_resource_params
41
- params.require(:spree_cm_commissioner_integration).permit(
42
- :name,
43
- :type,
44
- :status,
45
- :conflict_strategy,
46
- :incremental_sync_interval_seconds,
47
- :full_sync_interval_hours,
48
- :tenant_id,
49
- :vendor_id,
50
- public_metadata: {},
51
- private_metadata: {}
52
- )
53
- end
54
-
55
- def load_integration
56
- @integration ||= SpreeCmCommissioner::Integration.find(params[:id])
57
- end
58
-
59
- def load_form_collections
60
- @integration_type_options ||= integration_type_options
61
- @status_options ||= enum_to_options(SpreeCmCommissioner::Integration.statuses)
62
- @conflict_strategy_options ||= enum_to_options(SpreeCmCommissioner::Integration.conflict_strategies)
63
- @tenants ||= SpreeCmCommissioner::Tenant.select(:id, :name).order(:name)
64
- @vendors ||= Spree::Vendor.select(:id, :name).order(:name)
65
- end
66
-
67
- def enum_to_options(enum_hash)
68
- enum_hash.keys.map { |key| [key.humanize, key] }
69
- end
70
-
71
- def integration_type_options
72
- files = Dir[SpreeCmCommissioner::Engine.root.join('app/models/spree_cm_commissioner/integrations/*.rb')]
73
-
74
- return [[Spree.t(:type), 'SpreeCmCommissioner::Integration']] if files.blank?
75
-
76
- files.map do |path|
77
- class_name = "SpreeCmCommissioner::Integrations::#{File.basename(path, '.rb').camelize}"
78
- [class_name, class_name]
79
- end.sort_by(&:first)
80
- end
81
- end
82
- end
83
- end