spree_cm_commissioner 1.11.0.pre.pre3 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test_and_build_gem.yml +143 -12
  3. data/.gitignore +1 -2
  4. data/Gemfile.lock +1 -22
  5. data/Rakefile +4 -33
  6. data/app/controllers/spree/admin/cms_pages_controller_decorator.rb +32 -0
  7. data/app/controllers/spree/admin/stock_managements_controller.rb +1 -62
  8. data/app/controllers/spree/api/v2/storefront/accommodations_controller.rb +31 -14
  9. data/app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb +2 -2
  10. data/app/controllers/spree/api/v2/storefront/waiting_room_sessions_controller.rb +1 -0
  11. data/app/controllers/spree/api/v2/tenant/account_checker_controller.rb +1 -1
  12. data/app/controllers/spree/api/v2/tenant/account_recovers_controller.rb +2 -2
  13. data/app/controllers/spree/api/v2/tenant/cms_pages_controller.rb +41 -0
  14. data/app/controllers/spree/api/v2/tenant/reset_passwords_controller.rb +1 -1
  15. data/app/controllers/spree/api/v2/tenant/waiting_room_sessions_controller.rb +30 -0
  16. data/app/controllers/spree_cm_commissioner/admin/variants_controller_decorator.rb +17 -0
  17. data/app/controllers/spree_cm_commissioner/api/v2/storefront/cms_pages_controller_decorator.rb +18 -0
  18. data/app/interactors/spree_cm_commissioner/account_recover.rb +2 -2
  19. data/app/interactors/spree_cm_commissioner/create_event.rb +7 -26
  20. data/app/interactors/spree_cm_commissioner/create_ticket.rb +95 -0
  21. data/app/interactors/spree_cm_commissioner/event_line_items_date_syncer.rb +19 -0
  22. data/app/interactors/spree_cm_commissioner/existing_account_checker.rb +1 -1
  23. data/app/interactors/spree_cm_commissioner/organizers_transactional_email_notifier.rb +27 -0
  24. data/app/interactors/spree_cm_commissioner/pin_code_sender.rb +3 -3
  25. data/app/interactors/spree_cm_commissioner/product_event_id_to_children_syncer.rb +15 -0
  26. data/app/interactors/spree_cm_commissioner/sms.rb +14 -0
  27. data/app/interactors/spree_cm_commissioner/telegram_debug_pin_code_sender.rb +2 -1
  28. data/app/interactors/spree_cm_commissioner/transactional_email_sender.rb +50 -0
  29. data/app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb +2 -1
  30. data/app/interactors/spree_cm_commissioner/user_password_authenticator.rb +4 -2
  31. data/app/interactors/spree_cm_commissioner/waiting_room_session_creator.rb +7 -14
  32. data/app/interactors/spree_cm_commissioner/waiting_room_session_firebase_logger.rb +30 -0
  33. data/app/jobs/spree_cm_commissioner/ensure_event_for_product_line_item_guests_job.rb +13 -0
  34. data/app/jobs/spree_cm_commissioner/event_line_items_date_syncer_job.rb +8 -0
  35. data/app/jobs/spree_cm_commissioner/product_event_id_to_children_syncer_job.rb +8 -0
  36. data/app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb +3 -1
  37. data/app/jobs/spree_cm_commissioner/waiting_room_session_firebase_logger_job.rb +13 -0
  38. data/app/mailers/spree_cm_commissioner/event_transactional_mailer.rb +23 -0
  39. data/app/mailers/spree_cm_commissioner/pin_code_mailer.rb +1 -0
  40. data/app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb +2 -0
  41. data/app/models/concerns/spree_cm_commissioner/line_item_durationable.rb +10 -6
  42. data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +14 -26
  43. data/app/models/concerns/spree_cm_commissioner/product_delegation.rb +4 -3
  44. data/app/models/concerns/spree_cm_commissioner/product_type.rb +0 -10
  45. data/app/models/concerns/spree_cm_commissioner/user_identity.rb +7 -4
  46. data/app/models/concerns/spree_cm_commissioner/variant_options_concern.rb +8 -10
  47. data/app/models/spree_cm_commissioner/cms_page_decorator.rb +9 -0
  48. data/app/models/spree_cm_commissioner/event_ticket_google_wallet.rb +2 -2
  49. data/app/models/spree_cm_commissioner/guest.rb +1 -1
  50. data/app/models/spree_cm_commissioner/line_item_decorator.rb +10 -16
  51. data/app/models/spree_cm_commissioner/option_type_decorator.rb +6 -0
  52. data/app/models/spree_cm_commissioner/order_decorator.rb +0 -15
  53. data/app/models/spree_cm_commissioner/product_decorator.rb +17 -14
  54. data/app/models/spree_cm_commissioner/role_decorator.rb +3 -0
  55. data/app/models/spree_cm_commissioner/stock/availability_checker.rb +25 -27
  56. data/app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb +1 -2
  57. data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +3 -3
  58. data/app/models/spree_cm_commissioner/stock_item_decorator.rb +0 -14
  59. data/app/models/spree_cm_commissioner/taxon_decorator.rb +24 -3
  60. data/app/models/spree_cm_commissioner/transactional_email.rb +6 -0
  61. data/app/models/spree_cm_commissioner/user_decorator.rb +6 -0
  62. data/app/models/spree_cm_commissioner/variant_decorator.rb +27 -34
  63. data/app/models/spree_cm_commissioner/vehicle.rb +0 -7
  64. data/app/models/spree_cm_commissioner/vendor_decorator.rb +9 -1
  65. data/app/overrides/spree/admin/cms_pages/_form/tenant_fields.html.erb.deface +9 -0
  66. data/app/overrides/spree/admin/cms_pages/index/cms_pages_tabs.html.erb.deface +21 -0
  67. data/app/overrides/spree/admin/taxons/_form/assets_form.html.erb.deface +2 -2
  68. data/app/overrides/spree/admin/taxons/_form/available_on.html.erb.deface +3 -1
  69. data/app/overrides/spree/admin/taxons/_form/background_color_and_foreground_color.html.erb.deface +3 -1
  70. data/app/overrides/spree/admin/taxons/_form/custom_redirect_url.html.erb.deface +3 -1
  71. data/app/overrides/spree/admin/taxons/_form/hide_video_banner.html.erb.deface +3 -1
  72. data/app/overrides/spree/admin/taxons/_form/purchasable_on_status.html.erb.deface +3 -1
  73. data/app/overrides/spree/admin/taxons/_form/show_badge_status.html.erb.deface +3 -1
  74. data/app/overrides/spree/admin/taxons/_form/to_date_form_date.html.erb.deface +3 -4
  75. data/app/overrides/spree/admin/users/_form/roles_fields.html.erb.deface +1 -1
  76. data/app/overrides/spree/admin/users/index/body.html.erb.deface +3 -0
  77. data/app/overrides/spree/admin/users/index/headers.html.erb.deface +3 -0
  78. data/app/overrides/spree/admin/variants/_form/kyc_field.html.erb.deface +40 -0
  79. data/app/overrides/spree/admin/variants/edit/variant_status.html.erb.deface +6 -3
  80. data/app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb +45 -0
  81. data/app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb +55 -0
  82. data/app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb +0 -3
  83. data/app/request_schemas/spree_cm_commissioner/application_request_schema.rb +1 -1
  84. data/app/serializers/spree/v2/storefront/accommodation_serializer.rb +0 -2
  85. data/app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb +2 -0
  86. data/app/serializers/spree/v2/tenant/waiting_room_session_serializer.rb +9 -0
  87. data/app/services/spree_cm_commissioner/user_authenticator.rb +3 -1
  88. data/app/services/spree_cm_commissioner/user_roles_assigner.rb +62 -0
  89. data/app/views/spree/admin/shared/_cms_pages_tabs.html.erb +20 -0
  90. data/app/views/spree/admin/shared/_taxon_tabs.html.erb +19 -19
  91. data/app/views/spree/admin/stock_managements/_variant_stock_items.html.erb +1 -3
  92. data/app/views/spree/admin/stock_managements/index.html.erb +5 -40
  93. data/app/views/spree/shared/_base_mailer_header.html.erb +10 -2
  94. data/app/views/spree_cm_commissioner/event_transactional_mailer/_event_banner.html.erb +3 -0
  95. data/app/views/spree_cm_commissioner/event_transactional_mailer/_mailer_stylesheets.html.erb +315 -0
  96. data/app/views/spree_cm_commissioner/event_transactional_mailer/_note.html.erb +8 -0
  97. data/app/views/spree_cm_commissioner/event_transactional_mailer/_share_button.html.erb +3 -0
  98. data/app/views/spree_cm_commissioner/event_transactional_mailer/send_to_organizer.html.erb +59 -0
  99. data/app/views/spree_cm_commissioner/event_transactional_mailer/send_to_participant.html.erb +52 -0
  100. data/app/views/spree_cm_commissioner/layouts/event_transactional_mailer.html.erb +14 -0
  101. data/config/initializers/spree_permitted_attributes.rb +0 -5
  102. data/config/locales/en.yml +36 -0
  103. data/config/locales/km.yml +2 -0
  104. data/config/routes.rb +5 -11
  105. data/db/migrate/20250509033437_create_spree_cm_commissioner_transactional_emails.rb +12 -0
  106. data/db/migrate/20250509075429_add_max_order_quantity_to_spree_product.rb +5 -0
  107. data/db/migrate/20250512075319_add_tenant_id_to_spree_cms_pages.rb +6 -0
  108. data/db/migrate/20250520042602_add_event_to_spree_products.rb +7 -0
  109. data/db/migrate/20250520044533_add_event_to_spree_line_items.rb +7 -0
  110. data/db/migrate/20250521024345_add_tenant_id_to_cm_waiting_room_sessions.rb +6 -0
  111. data/db/migrate/20250521095539_add_kyc_to_spree_variants.rb +5 -0
  112. data/docker-compose.yml +1 -1
  113. data/lib/generators/spree_cm_commissioner/install/install_generator.rb +3 -11
  114. data/lib/generators/spree_cm_commissioner/install/templates/app/javascript/{spree_dashboard/spree_cm_commissioner → spree_cm_commissioner}/utilities.js +0 -4
  115. data/lib/spree_cm_commissioner/calendar_event.rb +1 -11
  116. data/lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb +1 -1
  117. data/lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb +1 -1
  118. data/lib/spree_cm_commissioner/test_helper/factories/product_factory.rb +5 -18
  119. data/lib/spree_cm_commissioner/test_helper/factories/role.rb +7 -0
  120. data/lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb +2 -2
  121. data/lib/spree_cm_commissioner/test_helper/factories/taxon_home_banner_factory.rb +5 -0
  122. data/lib/spree_cm_commissioner/test_helper/factories/transactional_email_factory.rb +6 -0
  123. data/lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb +6 -41
  124. data/lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb +1 -1
  125. data/lib/spree_cm_commissioner/version.rb +1 -1
  126. data/lib/spree_cm_commissioner.rb +0 -34
  127. data/lib/tasks/ensure_event_for_product_line_item_guests.rake +7 -0
  128. data/lib/tasks/update_invalid_self_root_places.rake +9 -0
  129. data/lib/tasks/update_orphan_root_places.rake +1 -0
  130. data/spree_cm_commissioner.gemspec +0 -5
  131. metadata +49 -82
  132. data/app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb +0 -42
  133. data/app/finders/spree_cm_commissioner/accommodations/find.rb +0 -40
  134. data/app/finders/spree_cm_commissioner/accommodations/find_variant.rb +0 -35
  135. data/app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb +0 -40
  136. data/app/interactors/spree_cm_commissioner/inventory_item_syncer.rb +0 -25
  137. data/app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb +0 -13
  138. data/app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb +0 -15
  139. data/app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb +0 -75
  140. data/app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb +0 -24
  141. data/app/interactors/spree_cm_commissioner/user_roles_assigner.rb +0 -22
  142. data/app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb +0 -7
  143. data/app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb +0 -7
  144. data/app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb +0 -11
  145. data/app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb +0 -11
  146. data/app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb +0 -9
  147. data/app/models/spree_cm_commissioner/inventory.rb +0 -11
  148. data/app/models/spree_cm_commissioner/inventory_item.rb +0 -56
  149. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +0 -40
  150. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +0 -126
  151. data/app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb +0 -36
  152. data/app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb +0 -27
  153. data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +0 -44
  154. data/app/request_schemas/spree_cm_commissioner/variant_request_schema.rb +0 -19
  155. data/app/views/spree/admin/stock_managements/_events_popover.html.erb +0 -23
  156. data/app/views/spree/admin/stock_managements/calendar.html.erb +0 -35
  157. data/db/migrate/20250304293518_create_cm_inventory_items.rb +0 -21
  158. data/db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb +0 -5
  159. data/db/migrate/20250502025848_add_index_to_spree_products.rb +0 -5
  160. data/db/migrate/20250502030001_add_product_type_to_spree_variants.rb +0 -5
  161. data/db/migrate/20250502030002_add_product_type_to_spree_line_items.rb +0 -5
  162. data/lib/spree_cm_commissioner/cached_inventory_item.rb +0 -23
  163. data/lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb +0 -9
  164. data/lib/tasks/create_default_non_permanent_inventory_items.rake +0 -16
  165. data/lib/tasks/ensure_correct_product_type.rake +0 -7
  166. data/lib/tasks/generate_inventory_items.rake +0 -7
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: 1.11.0.pre.pre3
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-09 00:00:00.000000000 Z
11
+ date: 2025-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -464,48 +464,6 @@ dependencies:
464
464
  - - "~>"
465
465
  - !ruby/object:Gem::Version
466
466
  version: '3.2'
467
- - !ruby/object:Gem::Dependency
468
- name: redis
469
- requirement: !ruby/object:Gem::Requirement
470
- requirements:
471
- - - ">="
472
- - !ruby/object:Gem::Version
473
- version: '0'
474
- type: :runtime
475
- prerelease: false
476
- version_requirements: !ruby/object:Gem::Requirement
477
- requirements:
478
- - - ">="
479
- - !ruby/object:Gem::Version
480
- version: '0'
481
- - !ruby/object:Gem::Dependency
482
- name: redis-rails
483
- requirement: !ruby/object:Gem::Requirement
484
- requirements:
485
- - - ">="
486
- - !ruby/object:Gem::Version
487
- version: '0'
488
- type: :runtime
489
- prerelease: false
490
- version_requirements: !ruby/object:Gem::Requirement
491
- requirements:
492
- - - ">="
493
- - !ruby/object:Gem::Version
494
- version: '0'
495
- - !ruby/object:Gem::Dependency
496
- name: connection_pool
497
- requirement: !ruby/object:Gem::Requirement
498
- requirements:
499
- - - ">="
500
- - !ruby/object:Gem::Version
501
- version: '0'
502
- type: :runtime
503
- prerelease: false
504
- version_requirements: !ruby/object:Gem::Requirement
505
- requirements:
506
- - - ">="
507
- - !ruby/object:Gem::Version
508
- version: '0'
509
467
  - !ruby/object:Gem::Dependency
510
468
  name: pg
511
469
  requirement: !ruby/object:Gem::Requirement
@@ -744,6 +702,7 @@ files:
744
702
  - app/controllers/spree/admin/calendars/base_controller.rb
745
703
  - app/controllers/spree/admin/calendars/orders_controller.rb
746
704
  - app/controllers/spree/admin/classifications_controller.rb
705
+ - app/controllers/spree/admin/cms_pages_controller_decorator.rb
747
706
  - app/controllers/spree/admin/customer_notifications_controller.rb
748
707
  - app/controllers/spree/admin/device_tokens_controller.rb
749
708
  - app/controllers/spree/admin/event_blazer_queries_controller.rb
@@ -830,7 +789,6 @@ files:
830
789
  - app/controllers/spree/api/v2/platform/seat_number_layouts_controller.rb
831
790
  - app/controllers/spree/api/v2/platform/taxons_controller_decorator.rb
832
791
  - app/controllers/spree/api/v2/resource_controller_decorator.rb
833
- - app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb
834
792
  - app/controllers/spree/api/v2/storefront/accommodations_controller.rb
835
793
  - app/controllers/spree/api/v2/storefront/account/orders_controller_decorator.rb
836
794
  - app/controllers/spree/api/v2/storefront/account/preferred_payment_method_controller.rb
@@ -902,6 +860,7 @@ files:
902
860
  - app/controllers/spree/api/v2/tenant/cart_payment_method_groups_controller.rb
903
861
  - app/controllers/spree/api/v2/tenant/change_passwords_controller.rb
904
862
  - app/controllers/spree/api/v2/tenant/checkout_controller.rb
863
+ - app/controllers/spree/api/v2/tenant/cms_pages_controller.rb
905
864
  - app/controllers/spree/api/v2/tenant/customer_notifications_controller.rb
906
865
  - app/controllers/spree/api/v2/tenant/guests_controller.rb
907
866
  - app/controllers/spree/api/v2/tenant/homepage_sections_controller.rb
@@ -921,6 +880,7 @@ files:
921
880
  - app/controllers/spree/api/v2/tenant/user_device_tokens_controller.rb
922
881
  - app/controllers/spree/api/v2/tenant/user_registration_with_pin_codes_controller.rb
923
882
  - app/controllers/spree/api/v2/tenant/vendors_controller.rb
883
+ - app/controllers/spree/api/v2/tenant/waiting_room_sessions_controller.rb
924
884
  - app/controllers/spree/api/webhook/base_controller.rb
925
885
  - app/controllers/spree/api/webhook/media_convert_queues_controller.rb
926
886
  - app/controllers/spree/api/webhook/orders_controller.rb
@@ -985,6 +945,7 @@ files:
985
945
  - app/controllers/spree_cm_commissioner/admin/variants_controller_decorator.rb
986
946
  - app/controllers/spree_cm_commissioner/api/v2/storefront/cart_controller_decorator.rb
987
947
  - app/controllers/spree_cm_commissioner/api/v2/storefront/checkout_controller_decorator.rb
948
+ - app/controllers/spree_cm_commissioner/api/v2/storefront/cms_pages_controller_decorator.rb
988
949
  - app/controllers/spree_cm_commissioner/application_controller_decorator.rb
989
950
  - app/controllers/spree_cm_commissioner/guest_cards_controller.rb
990
951
  - app/controllers/spree_cm_commissioner/line_item_qr_images_controller.rb
@@ -1001,8 +962,6 @@ files:
1001
962
  - app/exception_notifier/spree_cm_commissioner/telegram_notifier.rb
1002
963
  - app/factory/spree_cm_commissioner/order_telegram_message_factory.rb
1003
964
  - app/factory/spree_cm_commissioner/telegram_message_factory.rb
1004
- - app/finders/spree_cm_commissioner/accommodations/find.rb
1005
- - app/finders/spree_cm_commissioner/accommodations/find_variant.rb
1006
965
  - app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb
1007
966
  - app/finders/spree_cm_commissioner/orders/find.rb
1008
967
  - app/finders/spree_cm_commissioner/orders/find_by_state.rb
@@ -1040,6 +999,7 @@ files:
1040
999
  - app/interactors/spree_cm_commissioner/confirm_pin_code_checker.rb
1041
1000
  - app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb
1042
1001
  - app/interactors/spree_cm_commissioner/create_event.rb
1002
+ - app/interactors/spree_cm_commissioner/create_ticket.rb
1043
1003
  - app/interactors/spree_cm_commissioner/crew_inviter.rb
1044
1004
  - app/interactors/spree_cm_commissioner/customer_content_notification_creator.rb
1045
1005
  - app/interactors/spree_cm_commissioner/customer_notification_cron_executor.rb
@@ -1047,7 +1007,7 @@ files:
1047
1007
  - app/interactors/spree_cm_commissioner/customer_promotion_creator.rb
1048
1008
  - app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb
1049
1009
  - app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb
1050
- - app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb
1010
+ - app/interactors/spree_cm_commissioner/event_line_items_date_syncer.rb
1051
1011
  - app/interactors/spree_cm_commissioner/event_qr_generator.rb
1052
1012
  - app/interactors/spree_cm_commissioner/existing_account_checker.rb
1053
1013
  - app/interactors/spree_cm_commissioner/firebase_email_fetcher.rb
@@ -1061,7 +1021,6 @@ files:
1061
1021
  - app/interactors/spree_cm_commissioner/imported_csv_downloader.rb
1062
1022
  - app/interactors/spree_cm_commissioner/international_mobile_formatter.rb
1063
1023
  - app/interactors/spree_cm_commissioner/invalidate_cache_request.rb
1064
- - app/interactors/spree_cm_commissioner/inventory_item_syncer.rb
1065
1024
  - app/interactors/spree_cm_commissioner/invoice_creator.rb
1066
1025
  - app/interactors/spree_cm_commissioner/media/signed_cookie_generator.rb
1067
1026
  - app/interactors/spree_cm_commissioner/media/signed_path_generator.rb
@@ -1079,22 +1038,20 @@ files:
1079
1038
  - app/interactors/spree_cm_commissioner/order_rejected_notification_sender.rb
1080
1039
  - app/interactors/spree_cm_commissioner/order_rejected_state_updater.rb
1081
1040
  - app/interactors/spree_cm_commissioner/order_requested_notification_sender.rb
1041
+ - app/interactors/spree_cm_commissioner/organizers_transactional_email_notifier.rb
1082
1042
  - app/interactors/spree_cm_commissioner/password_changer.rb
1083
1043
  - app/interactors/spree_cm_commissioner/phone_number_parser.rb
1084
1044
  - app/interactors/spree_cm_commissioner/pin_code_checker.rb
1085
1045
  - app/interactors/spree_cm_commissioner/pin_code_creator.rb
1086
1046
  - app/interactors/spree_cm_commissioner/pin_code_generator.rb
1087
1047
  - app/interactors/spree_cm_commissioner/pin_code_sender.rb
1048
+ - app/interactors/spree_cm_commissioner/product_event_id_to_children_syncer.rb
1088
1049
  - app/interactors/spree_cm_commissioner/profile_image_destroyer.rb
1089
1050
  - app/interactors/spree_cm_commissioner/profile_image_updater.rb
1090
1051
  - app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb
1091
1052
  - app/interactors/spree_cm_commissioner/sms.rb
1092
1053
  - app/interactors/spree_cm_commissioner/sqs/media_convert_job_status.rb
1093
1054
  - app/interactors/spree_cm_commissioner/state_updater.rb
1094
- - app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb
1095
- - app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb
1096
- - app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb
1097
- - app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb
1098
1055
  - app/interactors/spree_cm_commissioner/subscriptions_order_creator.rb
1099
1056
  - app/interactors/spree_cm_commissioner/subscriptions_order_cron_executor.rb
1100
1057
  - app/interactors/spree_cm_commissioner/subscriptions_prepaid_order_creator.rb
@@ -1105,6 +1062,7 @@ files:
1105
1062
  - app/interactors/spree_cm_commissioner/telegram_web_app_init_data_validator.rb
1106
1063
  - app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_authorizer.rb
1107
1064
  - app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_checker.rb
1065
+ - app/interactors/spree_cm_commissioner/transactional_email_sender.rb
1108
1066
  - app/interactors/spree_cm_commissioner/unique_device_token_cron_executor.rb
1109
1067
  - app/interactors/spree_cm_commissioner/update_payment_gateway_status.rb
1110
1068
  - app/interactors/spree_cm_commissioner/user_contact_updater.rb
@@ -1118,7 +1076,6 @@ files:
1118
1076
  - app/interactors/spree_cm_commissioner/user_password_authenticator.rb
1119
1077
  - app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb
1120
1078
  - app/interactors/spree_cm_commissioner/user_registration_with_id_token.rb
1121
- - app/interactors/spree_cm_commissioner/user_roles_assigner.rb
1122
1079
  - app/interactors/spree_cm_commissioner/user_telegram_web_app_authenticator.rb
1123
1080
  - app/interactors/spree_cm_commissioner/user_vattanac_bank_web_app_authenticator.rb
1124
1081
  - app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb
@@ -1129,6 +1086,7 @@ files:
1129
1086
  - app/interactors/spree_cm_commissioner/waiting_guests_caller.rb
1130
1087
  - app/interactors/spree_cm_commissioner/waiting_room_latest_system_metadata_puller.rb
1131
1088
  - app/interactors/spree_cm_commissioner/waiting_room_session_creator.rb
1089
+ - app/interactors/spree_cm_commissioner/waiting_room_session_firebase_logger.rb
1132
1090
  - app/interactors/spree_cm_commissioner/webhook_subscriber_orders_sender.rb
1133
1091
  - app/jobs/application_job.rb
1134
1092
  - app/jobs/application_unique_job.rb
@@ -1142,23 +1100,21 @@ files:
1142
1100
  - app/jobs/spree_cm_commissioner/customer_notification_cron_job.rb
1143
1101
  - app/jobs/spree_cm_commissioner/customer_notification_sender_job.rb
1144
1102
  - app/jobs/spree_cm_commissioner/enqueue_cart/add_item_job.rb
1145
- - app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb
1103
+ - app/jobs/spree_cm_commissioner/ensure_event_for_product_line_item_guests_job.rb
1146
1104
  - app/jobs/spree_cm_commissioner/ensure_event_id_for_guests_job.rb
1105
+ - app/jobs/spree_cm_commissioner/event_line_items_date_syncer_job.rb
1147
1106
  - app/jobs/spree_cm_commissioner/export_csv_job.rb
1148
1107
  - app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
1149
1108
  - app/jobs/spree_cm_commissioner/import_order_job.rb
1150
1109
  - app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
1151
- - app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
1152
1110
  - app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
1153
1111
  - app/jobs/spree_cm_commissioner/option_value_variants_public_metadata_updater_job.rb
1154
1112
  - app/jobs/spree_cm_commissioner/order_complete_telegram_sender_job.rb
1113
+ - app/jobs/spree_cm_commissioner/product_event_id_to_children_syncer_job.rb
1155
1114
  - app/jobs/spree_cm_commissioner/queue_order_webhooks_requests_job.rb
1156
1115
  - app/jobs/spree_cm_commissioner/sms_job.rb
1157
1116
  - app/jobs/spree_cm_commissioner/sms_pin_code_job.rb
1158
1117
  - app/jobs/spree_cm_commissioner/state_job.rb
1159
- - app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb
1160
- - app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb
1161
- - app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb
1162
1118
  - app/jobs/spree_cm_commissioner/subscription_order_executor_job.rb
1163
1119
  - app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
1164
1120
  - app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
@@ -1168,10 +1124,12 @@ files:
1168
1124
  - app/jobs/spree_cm_commissioner/vendor_job.rb
1169
1125
  - app/jobs/spree_cm_commissioner/waiting_guests_caller_job.rb
1170
1126
  - app/jobs/spree_cm_commissioner/waiting_room_latest_system_metadata_puller_job.rb
1127
+ - app/jobs/spree_cm_commissioner/waiting_room_session_firebase_logger_job.rb
1171
1128
  - app/jobs/spree_cm_commissioner/webhook_subscriber_orders_sender_job.rb
1172
1129
  - app/mailers/spree/order_mailer_decorator.rb
1173
1130
  - app/mailers/spree_cm_commissioner/application_mailer.rb
1174
1131
  - app/mailers/spree_cm_commissioner/crew_invite_mailer.rb
1132
+ - app/mailers/spree_cm_commissioner/event_transactional_mailer.rb
1175
1133
  - app/mailers/spree_cm_commissioner/pin_code_mailer.rb
1176
1134
  - app/models/.gitkeep
1177
1135
  - app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
@@ -1212,6 +1170,7 @@ files:
1212
1170
  - app/models/spree_cm_commissioner/check_in_ability.rb
1213
1171
  - app/models/spree_cm_commissioner/check_in_record.rb
1214
1172
  - app/models/spree_cm_commissioner/classification_decorator.rb
1173
+ - app/models/spree_cm_commissioner/cms_page_decorator.rb
1215
1174
  - app/models/spree_cm_commissioner/configuration.rb
1216
1175
  - app/models/spree_cm_commissioner/crew_invite.rb
1217
1176
  - app/models/spree_cm_commissioner/customer.rb
@@ -1251,8 +1210,6 @@ files:
1251
1210
  - app/models/spree_cm_commissioner/image_methods_decorator.rb
1252
1211
  - app/models/spree_cm_commissioner/import.rb
1253
1212
  - app/models/spree_cm_commissioner/imports/import_order.rb
1254
- - app/models/spree_cm_commissioner/inventory.rb
1255
- - app/models/spree_cm_commissioner/inventory_item.rb
1256
1213
  - app/models/spree_cm_commissioner/invite.rb
1257
1214
  - app/models/spree_cm_commissioner/invite_user_event.rb
1258
1215
  - app/models/spree_cm_commissioner/invite_user_taxon.rb
@@ -1302,10 +1259,6 @@ files:
1302
1259
  - app/models/spree_cm_commissioner/promotion_decorator.rb
1303
1260
  - app/models/spree_cm_commissioner/property_decorator.rb
1304
1261
  - app/models/spree_cm_commissioner/prototype_decorator.rb
1305
- - app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb
1306
- - app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb
1307
- - app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb
1308
- - app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb
1309
1262
  - app/models/spree_cm_commissioner/role_decorator.rb
1310
1263
  - app/models/spree_cm_commissioner/role_permission.rb
1311
1264
  - app/models/spree_cm_commissioner/s3_presigned_url.rb
@@ -1318,7 +1271,6 @@ files:
1318
1271
  - app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb
1319
1272
  - app/models/spree_cm_commissioner/stock/inventory_unit_builder_decorator.rb
1320
1273
  - app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb
1321
- - app/models/spree_cm_commissioner/stock/order_availability_checker.rb
1322
1274
  - app/models/spree_cm_commissioner/stock_item_decorator.rb
1323
1275
  - app/models/spree_cm_commissioner/stock_location_decorator.rb
1324
1276
  - app/models/spree_cm_commissioner/stop.rb
@@ -1338,6 +1290,7 @@ files:
1338
1290
  - app/models/spree_cm_commissioner/taxonomy_decorator.rb
1339
1291
  - app/models/spree_cm_commissioner/telegram_bot.rb
1340
1292
  - app/models/spree_cm_commissioner/tenant.rb
1293
+ - app/models/spree_cm_commissioner/transactional_email.rb
1341
1294
  - app/models/spree_cm_commissioner/trip.rb
1342
1295
  - app/models/spree_cm_commissioner/trip_connection.rb
1343
1296
  - app/models/spree_cm_commissioner/trip_stop.rb
@@ -1385,6 +1338,8 @@ files:
1385
1338
  - app/notifications/spree_cm_commissioner/order_requested_notification.rb
1386
1339
  - app/overrides/spree/admin/adjustments/_adjustment/payable_table_body.html.erb.deface
1387
1340
  - app/overrides/spree/admin/adjustments/_adjustments_table/payable_table_header.html.erb.deface
1341
+ - app/overrides/spree/admin/cms_pages/_form/tenant_fields.html.erb.deface
1342
+ - app/overrides/spree/admin/cms_pages/index/cms_pages_tabs.html.erb.deface
1388
1343
  - app/overrides/spree/admin/menu_items/_form/badge_field.html.erb.deface
1389
1344
  - app/overrides/spree/admin/oauth_applications/_form/tenant_fields.html.erb.deface
1390
1345
  - app/overrides/spree/admin/option_types/_form/attr_type.html.erb.deface
@@ -1490,6 +1445,7 @@ files:
1490
1445
  - app/overrides/spree/admin/users/index/ransack.html.erb.deface
1491
1446
  - app/overrides/spree/admin/variants/_form/add_high_demand_field.html.erb.deface
1492
1447
  - app/overrides/spree/admin/variants/_form/add_permanent_stock.html.erb.deface
1448
+ - app/overrides/spree/admin/variants/_form/kyc_field.html.erb.deface
1493
1449
  - app/overrides/spree/admin/variants/_form/option_types_remover.html.erb.deface
1494
1450
  - app/overrides/spree/admin/variants/_form/option_types_replacer.html.erb.deface
1495
1451
  - app/overrides/spree/admin/variants/edit/card-header.html.erb.deface
@@ -1525,13 +1481,14 @@ files:
1525
1481
  - app/queries/spree_cm_commissioner/trip_search_query.rb
1526
1482
  - app/queries/spree_cm_commissioner/trip_seat_layout_query.rb
1527
1483
  - app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
1484
+ - app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb
1485
+ - app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb
1528
1486
  - app/queries/spree_cm_commissioner/vendor_stop_place_query.rb
1529
1487
  - app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
1530
1488
  - app/request_schemas/spree_cm_commissioner/application_request_schema.rb
1531
1489
  - app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
1532
1490
  - app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
1533
1491
  - app/request_schemas/spree_cm_commissioner/user_profile_request_schema.rb
1534
- - app/request_schemas/spree_cm_commissioner/variant_request_schema.rb
1535
1492
  - app/serializables/spree_cm_commissioner/event_ticket_aggregator.rb
1536
1493
  - app/serializables/spree_cm_commissioner/pie_chart_event_aggregator.rb
1537
1494
  - app/serializables/spree_cm_commissioner/queue_item.rb
@@ -1610,6 +1567,7 @@ files:
1610
1567
  - app/serializers/spree/v2/tenant/variant_serializer.rb
1611
1568
  - app/serializers/spree/v2/tenant/vendor_image_serializer.rb
1612
1569
  - app/serializers/spree/v2/tenant/vendor_serializer.rb
1570
+ - app/serializers/spree/v2/tenant/waiting_room_session_serializer.rb
1613
1571
  - app/serializers/spree_cm_commissioner/api/v2/platform/digital_serializer_decorator.rb
1614
1572
  - app/serializers/spree_cm_commissioner/api/v2/platform/homepage_section_relatable_options_serializer.rb
1615
1573
  - app/serializers/spree_cm_commissioner/api/v2/platform/icon_serializer_decorator.rb
@@ -1705,6 +1663,7 @@ files:
1705
1663
  - app/services/spree_cm_commissioner/rsa_service.rb
1706
1664
  - app/services/spree_cm_commissioner/seeds/roles_decorator.rb
1707
1665
  - app/services/spree_cm_commissioner/user_authenticator.rb
1666
+ - app/services/spree_cm_commissioner/user_roles_assigner.rb
1708
1667
  - app/services/spree_cm_commissioner/vehicle_option_value_creator.rb
1709
1668
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
1710
1669
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
@@ -1841,6 +1800,7 @@ files:
1841
1800
  - app/views/spree/admin/promotions/rules/_guest_occupations.html.erb
1842
1801
  - app/views/spree/admin/promotions/rules/_vendors.html.erb
1843
1802
  - app/views/spree/admin/promotions/rules/_weekend.html.erb
1803
+ - app/views/spree/admin/shared/_cms_pages_tabs.html.erb
1844
1804
  - app/views/spree/admin/shared/_customer_notification_tabs.html.erb
1845
1805
  - app/views/spree/admin/shared/_direct_upload.html.erb
1846
1806
  - app/views/spree/admin/shared/_import_order_tabs.html.erb
@@ -1856,9 +1816,7 @@ files:
1856
1816
  - app/views/spree/admin/shared/_video_on_demand_helper_script.html.erb
1857
1817
  - app/views/spree/admin/shared/sub_menu/_calendar.html.erb
1858
1818
  - app/views/spree/admin/shared/sub_menu/_homepage.html.erb
1859
- - app/views/spree/admin/stock_managements/_events_popover.html.erb
1860
1819
  - app/views/spree/admin/stock_managements/_variant_stock_items.html.erb
1861
- - app/views/spree/admin/stock_managements/calendar.html.erb
1862
1820
  - app/views/spree/admin/stock_managements/index.html.erb
1863
1821
  - app/views/spree/admin/system/show.html.erb
1864
1822
  - app/views/spree/admin/taxon_childrens/index.html.erb
@@ -2115,8 +2073,15 @@ files:
2115
2073
  - app/views/spree/transit/vendors/edit.html.erb
2116
2074
  - app/views/spree_cm_commissioner/crew_invite_mailer/_mailer_stylesheets.html.erb
2117
2075
  - app/views/spree_cm_commissioner/crew_invite_mailer/send_crew_invite_email.html.erb
2076
+ - app/views/spree_cm_commissioner/event_transactional_mailer/_event_banner.html.erb
2077
+ - app/views/spree_cm_commissioner/event_transactional_mailer/_mailer_stylesheets.html.erb
2078
+ - app/views/spree_cm_commissioner/event_transactional_mailer/_note.html.erb
2079
+ - app/views/spree_cm_commissioner/event_transactional_mailer/_share_button.html.erb
2080
+ - app/views/spree_cm_commissioner/event_transactional_mailer/send_to_organizer.html.erb
2081
+ - app/views/spree_cm_commissioner/event_transactional_mailer/send_to_participant.html.erb
2118
2082
  - app/views/spree_cm_commissioner/guest_cards/show.html.erb
2119
2083
  - app/views/spree_cm_commissioner/layouts/crew_invite_mailer.html.erb
2084
+ - app/views/spree_cm_commissioner/layouts/event_transactional_mailer.html.erb
2120
2085
  - app/views/spree_cm_commissioner/layouts/line_item_mailer.html.erb
2121
2086
  - app/views/spree_cm_commissioner/layouts/order_mailer.html.erb
2122
2087
  - app/views/spree_cm_commissioner/layouts/telegram.html.erb
@@ -2424,7 +2389,6 @@ files:
2424
2389
  - db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb
2425
2390
  - db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb
2426
2391
  - db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
2427
- - db/migrate/20250304293518_create_cm_inventory_items.rb
2428
2392
  - db/migrate/20250307013422_add_parent_id_to_cm_place.rb
2429
2393
  - db/migrate/20250307073003_add_tenant_id_to_cm_customer_notifications.rb
2430
2394
  - db/migrate/20250307083809_remove_tenant_id_from_cm_notifications.rb
@@ -2444,13 +2408,16 @@ files:
2444
2408
  - db/migrate/20250425084929_add_description_to_spree_prototypes.rb
2445
2409
  - db/migrate/20250425085938_add_preferences_to_spree_prototypes.rb
2446
2410
  - db/migrate/20250428025645_add_slug_to_spree_prototypes.rb
2447
- - db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb
2448
2411
  - db/migrate/20250430091742_create_cm_taxon_option_types.rb
2449
2412
  - db/migrate/20250430092928_create_cm_taxon_option_values.rb
2450
- - db/migrate/20250502025848_add_index_to_spree_products.rb
2451
- - db/migrate/20250502030001_add_product_type_to_spree_variants.rb
2452
- - db/migrate/20250502030002_add_product_type_to_spree_line_items.rb
2453
2413
  - db/migrate/20250506092929_add_trip_count_to_cm_vendor_stops.rb
2414
+ - db/migrate/20250509033437_create_spree_cm_commissioner_transactional_emails.rb
2415
+ - db/migrate/20250509075429_add_max_order_quantity_to_spree_product.rb
2416
+ - db/migrate/20250512075319_add_tenant_id_to_spree_cms_pages.rb
2417
+ - db/migrate/20250520042602_add_event_to_spree_products.rb
2418
+ - db/migrate/20250520044533_add_event_to_spree_line_items.rb
2419
+ - db/migrate/20250521024345_add_tenant_id_to_cm_waiting_room_sessions.rb
2420
+ - db/migrate/20250521095539_add_kyc_to_spree_variants.rb
2454
2421
  - docker-compose.yml
2455
2422
  - docs/option_types/attr_types.md
2456
2423
  - docs/private_key.pem
@@ -2465,12 +2432,11 @@ files:
2465
2432
  - docs/webhook/sqs/params_job_submitted.json
2466
2433
  - lib/cm_app_logger.rb
2467
2434
  - lib/generators/spree_cm_commissioner/install/install_generator.rb
2468
- - lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_dashboard/spree_cm_commissioner/utilities.js
2435
+ - lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_cm_commissioner/utilities.js
2469
2436
  - lib/generators/spree_cm_commissioner/install/templates/config/data/nationalities.yml
2470
2437
  - lib/generators/spree_cm_commissioner/install/templates/vendor/assets/javascript/spree_cm_commissioner/telegram/all.js
2471
2438
  - lib/generators/spree_cm_commissioner/install/templates/vendor/assets/stylesheets/spree_cm_commissioner/telegram/all.css
2472
2439
  - lib/spree_cm_commissioner.rb
2473
- - lib/spree_cm_commissioner/cached_inventory_item.rb
2474
2440
  - lib/spree_cm_commissioner/calendar_event.rb
2475
2441
  - lib/spree_cm_commissioner/engine.rb
2476
2442
  - lib/spree_cm_commissioner/factories.rb
@@ -2505,7 +2471,6 @@ files:
2505
2471
  - lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
2506
2472
  - lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
2507
2473
  - lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
2508
- - lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb
2509
2474
  - lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
2510
2475
  - lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
2511
2476
  - lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb
@@ -2525,6 +2490,7 @@ files:
2525
2490
  - lib/spree_cm_commissioner/test_helper/factories/product_factory.rb
2526
2491
  - lib/spree_cm_commissioner/test_helper/factories/products_taxons_factory.rb
2527
2492
  - lib/spree_cm_commissioner/test_helper/factories/promotion_factory.rb
2493
+ - lib/spree_cm_commissioner/test_helper/factories/role.rb
2528
2494
  - lib/spree_cm_commissioner/test_helper/factories/role_permission_factory.rb
2529
2495
  - lib/spree_cm_commissioner/test_helper/factories/service_calendar_factory.rb
2530
2496
  - lib/spree_cm_commissioner/test_helper/factories/sms_logs.rb
@@ -2535,9 +2501,11 @@ files:
2535
2501
  - lib/spree_cm_commissioner/test_helper/factories/taxon_brand_logo_factory.rb
2536
2502
  - lib/spree_cm_commissioner/test_helper/factories/taxon_category_icon.rb
2537
2503
  - lib/spree_cm_commissioner/test_helper/factories/taxon_factory.rb
2504
+ - lib/spree_cm_commissioner/test_helper/factories/taxon_home_banner_factory.rb
2538
2505
  - lib/spree_cm_commissioner/test_helper/factories/taxon_web_banner_factory.rb
2539
2506
  - lib/spree_cm_commissioner/test_helper/factories/telegram_bot_factory.rb
2540
2507
  - lib/spree_cm_commissioner/test_helper/factories/tenant_factory.rb
2508
+ - lib/spree_cm_commissioner/test_helper/factories/transactional_email_factory.rb
2541
2509
  - lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb
2542
2510
  - lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb
2543
2511
  - lib/spree_cm_commissioner/test_helper/factories/user_deletion_reasons_factory.rb
@@ -2560,19 +2528,18 @@ files:
2560
2528
  - lib/spree_cm_commissioner/trip_seat_layout_result.rb
2561
2529
  - lib/spree_cm_commissioner/user_session_jwt_token.rb
2562
2530
  - lib/spree_cm_commissioner/version.rb
2563
- - lib/tasks/create_default_non_permanent_inventory_items.rake
2564
2531
  - lib/tasks/customer_notification_cron_scheduler.rake
2565
- - lib/tasks/ensure_correct_product_type.rake
2566
2532
  - lib/tasks/ensure_event_for_guests.rake
2533
+ - lib/tasks/ensure_event_for_product_line_item_guests.rake
2567
2534
  - lib/tasks/ensure_number_for_line_items.rake
2568
2535
  - lib/tasks/fetch_email.rake
2569
- - lib/tasks/generate_inventory_items.rake
2570
2536
  - lib/tasks/kh_location_option_values.rake
2571
2537
  - lib/tasks/kh_provinces.rake
2572
2538
  - lib/tasks/migrate_and_rebuild_place_hierarchy.rake
2573
2539
  - lib/tasks/remove_duplicate_device_tokens.rake
2574
2540
  - lib/tasks/subscriptions_order_creator.rake
2575
2541
  - lib/tasks/update_gateway_status.rake
2542
+ - lib/tasks/update_invalid_self_root_places.rake
2576
2543
  - lib/tasks/update_orphan_root_places.rake
2577
2544
  - lib/tasks/update_taxons.rake
2578
2545
  - lib/tasks/variants_public_metadata_updater.rake
@@ -2601,9 +2568,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2601
2568
  version: '2.7'
2602
2569
  required_rubygems_version: !ruby/object:Gem::Requirement
2603
2570
  requirements:
2604
- - - ">"
2571
+ - - ">="
2605
2572
  - !ruby/object:Gem::Version
2606
- version: 1.3.1
2573
+ version: '0'
2607
2574
  requirements:
2608
2575
  - none
2609
2576
  rubygems_version: 3.4.1
@@ -1,42 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Storefront
5
- class Accommodations::VariantsController < ::Spree::Api::V2::ResourceController
6
- private
7
-
8
- # override
9
- def collection
10
- @collection ||= SpreeCmCommissioner::Accommodations::FindVariant.new(
11
- from_date: params[:from_date]&.to_date,
12
- to_date: params[:to_date]&.to_date,
13
- vendor_id: params[:vendor_id],
14
- number_of_adults: params[:adult].to_i,
15
- number_of_kids: params[:children].to_i
16
- ).execute
17
- end
18
-
19
- # override
20
- def resource
21
- @resource ||= collection.find(params[:id])
22
- end
23
-
24
- # override
25
- def resource_serializer
26
- Spree::V2::Storefront::VariantSerializer
27
- end
28
-
29
- # override
30
- def collection_serializer
31
- Spree::V2::Storefront::VariantSerializer
32
- end
33
-
34
- # override
35
- def required_schema
36
- SpreeCmCommissioner::VariantRequestSchema
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,40 +0,0 @@
1
- module SpreeCmCommissioner
2
- module Accommodations
3
- class Find
4
- attr_reader :from_date, :to_date, :state_id, :number_of_guests
5
-
6
- def initialize(from_date:, to_date:, state_id:, number_of_adults:, number_of_kids:)
7
- @from_date = from_date
8
- @to_date = to_date
9
- @state_id = state_id
10
- @number_of_guests = number_of_adults.to_i + number_of_kids.to_i
11
- end
12
-
13
- def execute
14
- scope
15
- .where(default_state_id: state_id)
16
- .where(inventory_items: { inventory_date: date_range_excluding_checkout })
17
- .where('CAST(spree_variants.public_metadata->\'cm_options\'->>\'number-of-adults\' AS INTEGER) +
18
- CAST(spree_variants.public_metadata->\'cm_options\'->>\'number-of-kids\' AS INTEGER) >= ?', number_of_guests
19
- )
20
- .where('inventory_items.quantity_available > 0')
21
- .distinct
22
- end
23
-
24
- private
25
-
26
- def scope
27
- Spree::Vendor
28
- .joins(variants: :inventory_items)
29
- .where(primary_product_type: :accommodation, state: :active)
30
- end
31
-
32
- # Why? check_out date is not considered to be charged
33
- # For example, if you check in on 2023-10-01 and check out on 2023-10-02,
34
- # you will be charged for one night (2023-10-01).
35
- def date_range_excluding_checkout
36
- from_date..to_date.prev_day
37
- end
38
- end
39
- end
40
- end
@@ -1,35 +0,0 @@
1
- module SpreeCmCommissioner
2
- module Accommodations
3
- class FindVariant
4
- attr_reader :vendor_id, :from_date, :to_date, :number_of_guests
5
-
6
- def initialize(vendor_id:, from_date:, to_date:, number_of_adults:, number_of_kids:)
7
- @vendor_id = vendor_id
8
- @from_date = from_date
9
- @to_date = to_date
10
- @number_of_guests = number_of_adults.to_i + number_of_kids.to_i
11
- end
12
-
13
- def execute
14
- Spree::Variant
15
- .joins(:inventory_items)
16
- .where(vendor_id: vendor_id)
17
- .where(inventory_items: { inventory_date: date_range_excluding_checkout })
18
- .where('CAST(public_metadata->\'cm_options\'->>\'number-of-adults\' AS INTEGER) +
19
- CAST(public_metadata->\'cm_options\'->>\'number-of-kids\' AS INTEGER) >= ?', number_of_guests
20
- )
21
- .where('inventory_items.quantity_available > 0')
22
- .distinct
23
- end
24
-
25
- private
26
-
27
- # Why? check_out date is not considered to be charged
28
- # For example, if you check in on 2023-10-01 and check out on 2023-10-02,
29
- # you will be charged for one night (2023-10-01).
30
- def date_range_excluding_checkout
31
- from_date..to_date.prev_day
32
- end
33
- end
34
- end
35
- end
@@ -1,40 +0,0 @@
1
- module SpreeCmCommissioner
2
- class EnsureCorrectProductType < BaseInteractor
3
- def call
4
- Spree::Product
5
- .left_joins(variants_including_master: %i[inventory_items line_items])
6
- .where(
7
- 'spree_variants.product_type IS NULL OR
8
- spree_variants.product_type != spree_products.product_type OR
9
-
10
- cm_inventory_items.product_type IS NULL OR
11
- cm_inventory_items.product_type != spree_products.product_type OR
12
-
13
- spree_line_items.product_type IS NULL OR
14
- spree_line_items.product_type != spree_products.product_type OR
15
-
16
- spree_products.product_type IS NOT NULL
17
- '
18
- )
19
- .distinct.find_each do |product|
20
- sync_product_type_for(product)
21
- end
22
- end
23
-
24
- def sync_product_type_for(product)
25
- product_type = Spree::Variant.product_types[product.product_type]
26
-
27
- product.variants_including_master
28
- .where('spree_variants.product_type IS NULL OR spree_variants.product_type != ?', product_type)
29
- .update_all(product_type: product_type) # rubocop:disable Rails/SkipsModelValidations
30
-
31
- product.line_items
32
- .where('spree_line_items.product_type IS NULL OR spree_line_items.product_type != ?', product_type)
33
- .update_all(product_type: product_type) # rubocop:disable Rails/SkipsModelValidations
34
-
35
- product.inventory_items
36
- .where('cm_inventory_items.product_type IS NULL OR cm_inventory_items.product_type != ?', product_type)
37
- .update_all(product_type: product_type) # rubocop:disable Rails/SkipsModelValidations
38
- end
39
- end
40
- end
@@ -1,25 +0,0 @@
1
- module SpreeCmCommissioner
2
- class InventoryItemSyncer < BaseInteractor
3
- # inventory_id_and_quantities = [{ inventory_id: inventory_item1.id, quantity: 5 } ]
4
- delegate :inventory_id_and_quantities, to: :context
5
-
6
- def call
7
- ActiveRecord::Base.transaction do
8
- inventory_items.each do |inventory_item|
9
- quantity = inventory_id_and_quantities.find { |item| item[:inventory_id] == inventory_item.id }&.dig(:quantity) || 0
10
- adjust_quantity_available(inventory_item, quantity)
11
- end
12
- end
13
- end
14
-
15
- private
16
-
17
- def adjust_quantity_available(inventory_item, quantity)
18
- inventory_item.update!(quantity_available: inventory_item.quantity_available + quantity)
19
- end
20
-
21
- def inventory_items
22
- @inventory_items ||= InventoryItem.where(id: inventory_id_and_quantities.pluck(:inventory_id))
23
- end
24
- end
25
- end
@@ -1,13 +0,0 @@
1
- module SpreeCmCommissioner
2
- module Stock
3
- class InventoryItemsAdjuster < BaseInteractor
4
- delegate :variant, :quantity, to: :context
5
-
6
- def call
7
- variant.inventory_items.active.find_each do |inventory_item|
8
- inventory_item.adjust_quantity!(quantity)
9
- end
10
- end
11
- end
12
- end
13
- end