spree_cm_commissioner 2.0.0 → 2.0.1.pre.pre

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 (215) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test_and_build_gem.yml +16 -2
  3. data/.gitignore +2 -1
  4. data/Gemfile.lock +32 -1
  5. data/Rakefile +33 -4
  6. data/app/assets/stylesheets/spree_cm_commissioner/backend/calendar.scss +8 -11
  7. data/app/controllers/spree/admin/inventory_items_controller.rb +83 -0
  8. data/app/controllers/spree/admin/stock_managements_controller.rb +63 -1
  9. data/app/controllers/spree/api/v2/organizer/invite_guests_controller.rb +1 -1
  10. data/app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb +42 -0
  11. data/app/controllers/spree/api/v2/storefront/accommodations_controller.rb +14 -31
  12. data/app/controllers/spree/api/v2/storefront/guests_controller.rb +13 -13
  13. data/app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb +2 -2
  14. data/app/factory/spree_cm_commissioner/invite_guest_claimed_telegram_message_factory.rb +81 -23
  15. data/app/finders/spree_cm_commissioner/accommodations/find.rb +37 -0
  16. data/app/finders/spree_cm_commissioner/accommodations/find_variant.rb +32 -0
  17. data/app/interactors/spree_cm_commissioner/create_ticket.rb +5 -6
  18. data/app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb +40 -0
  19. data/app/interactors/spree_cm_commissioner/inventory_item_syncer.rb +25 -0
  20. data/app/interactors/spree_cm_commissioner/pin_code_sender.rb +1 -0
  21. data/app/interactors/spree_cm_commissioner/sms.rb +1 -1
  22. data/app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb +44 -0
  23. data/app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb +13 -0
  24. data/app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb +15 -0
  25. data/app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb +75 -0
  26. data/app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb +32 -0
  27. data/app/interactors/spree_cm_commissioner/user_id_token_authenticator.rb +3 -7
  28. data/app/interactors/spree_cm_commissioner/user_id_token_checker.rb +3 -11
  29. data/app/interactors/spree_cm_commissioner/user_identity_checker.rb +6 -12
  30. data/app/interactors/spree_cm_commissioner/user_registration_with_id_token.rb +1 -7
  31. data/app/jobs/spree_cm_commissioner/application_job.rb +20 -0
  32. data/app/jobs/spree_cm_commissioner/application_unique_job.rb +20 -0
  33. data/app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb +7 -0
  34. data/app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb +7 -0
  35. data/app/jobs/spree_cm_commissioner/sms_pin_code_job.rb +1 -1
  36. data/app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb +11 -0
  37. data/app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb +11 -0
  38. data/app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb +9 -0
  39. data/app/mailers/spree/order_mailer_decorator.rb +3 -18
  40. data/app/models/concerns/spree_cm_commissioner/line_item_durationable.rb +9 -15
  41. data/app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb +1 -12
  42. data/app/models/concerns/spree_cm_commissioner/order_seatable.rb +44 -0
  43. data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +39 -0
  44. data/app/models/concerns/spree_cm_commissioner/product_delegation.rb +1 -3
  45. data/app/models/concerns/spree_cm_commissioner/product_type.rb +10 -0
  46. data/app/models/concerns/spree_cm_commissioner/taxon_kind.rb +1 -1
  47. data/app/models/concerns/spree_cm_commissioner/tenant_preference.rb +0 -1
  48. data/app/models/spree_cm_commissioner/block.rb +23 -0
  49. data/app/models/spree_cm_commissioner/dynamic_field.rb +0 -20
  50. data/app/models/spree_cm_commissioner/guest.rb +18 -56
  51. data/app/models/spree_cm_commissioner/guest_dynamic_field.rb +1 -41
  52. data/app/models/spree_cm_commissioner/inventory.rb +11 -0
  53. data/app/models/spree_cm_commissioner/inventory_item.rb +69 -0
  54. data/app/models/spree_cm_commissioner/line_item_decorator.rb +46 -78
  55. data/app/models/spree_cm_commissioner/notification_taxon.rb +1 -1
  56. data/app/models/spree_cm_commissioner/option_type_decorator.rb +1 -11
  57. data/app/models/spree_cm_commissioner/order_decorator.rb +30 -1
  58. data/app/models/spree_cm_commissioner/place.rb +1 -4
  59. data/app/models/spree_cm_commissioner/price_decorator.rb +9 -0
  60. data/app/models/spree_cm_commissioner/product_decorator.rb +10 -28
  61. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +41 -0
  62. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +126 -0
  63. data/app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb +36 -0
  64. data/app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb +25 -0
  65. data/app/models/spree_cm_commissioner/reserved_block.rb +30 -0
  66. data/app/models/spree_cm_commissioner/seat_layout.rb +20 -0
  67. data/app/models/spree_cm_commissioner/seat_section.rb +16 -0
  68. data/app/models/spree_cm_commissioner/seats/blocks_canceler.rb +30 -0
  69. data/app/models/spree_cm_commissioner/seats/blocks_holder.rb +53 -0
  70. data/app/models/spree_cm_commissioner/seats/blocks_reserver.rb +49 -0
  71. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_on_hold_by_other_guest.rb +4 -0
  72. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_other_guest.rb +4 -0
  73. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_same_guest.rb +4 -0
  74. data/app/models/spree_cm_commissioner/seats/errors/unable_to_save_reserved_block_record.rb +4 -0
  75. data/app/models/spree_cm_commissioner/service_calendar.rb +0 -2
  76. data/app/models/spree_cm_commissioner/state_decorator.rb +0 -1
  77. data/app/models/spree_cm_commissioner/stock/availability_checker.rb +26 -25
  78. data/app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb +2 -1
  79. data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +3 -3
  80. data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +44 -0
  81. data/app/models/spree_cm_commissioner/stock_item_decorator.rb +17 -0
  82. data/app/models/spree_cm_commissioner/taxon_decorator.rb +0 -1
  83. data/app/models/spree_cm_commissioner/taxonomy_decorator.rb +0 -6
  84. data/app/models/spree_cm_commissioner/trip.rb +8 -10
  85. data/app/models/spree_cm_commissioner/trip_connection.rb +5 -5
  86. data/app/models/spree_cm_commissioner/trip_stop.rb +6 -25
  87. data/app/models/spree_cm_commissioner/user_identity_provider.rb +4 -26
  88. data/app/models/spree_cm_commissioner/variant_block.rb +9 -0
  89. data/app/models/spree_cm_commissioner/variant_decorator.rb +37 -47
  90. data/app/models/spree_cm_commissioner/variant_options.rb +0 -23
  91. data/app/models/spree_cm_commissioner/vehicle.rb +9 -14
  92. data/app/models/spree_cm_commissioner/vendor_decorator.rb +11 -17
  93. data/app/models/spree_cm_commissioner/vendor_place.rb +9 -3
  94. data/app/queries/spree_cm_commissioner/trip_query.rb +70 -44
  95. data/app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb +3 -0
  96. data/app/request_schemas/spree_cm_commissioner/application_request_schema.rb +1 -1
  97. data/app/request_schemas/spree_cm_commissioner/variant_request_schema.rb +19 -0
  98. data/app/serializers/spree/v2/storefront/accommodation_serializer.rb +2 -0
  99. data/app/serializers/spree/v2/storefront/line_item_serializer_decorator.rb +1 -0
  100. data/app/serializers/spree/v2/tenant/user_serializer.rb +0 -1
  101. data/app/serializers/spree_cm_commissioner/v2/storefront/dynamic_field_serializer.rb +1 -1
  102. data/app/services/spree_cm_commissioner/user_authenticator.rb +1 -1
  103. data/app/views/spree/admin/inventory_items/show.html.erb +72 -0
  104. data/app/views/spree/admin/stock_managements/_variant_stock_items.html.erb +7 -2
  105. data/app/views/spree/admin/stock_managements/calendar.html.erb +56 -0
  106. data/app/views/spree/admin/stock_managements/index.html.erb +55 -6
  107. data/app/views/spree/admin/tenant_vendors/index.html.erb +2 -9
  108. data/app/views/spree/admin/tenants/_form.html.erb +0 -9
  109. data/app/views/spree/admin/tenants/edit.html.erb +1 -2
  110. data/app/views/spree/admin/tenants/index.html.erb +1 -7
  111. data/app/views/spree/admin/vendors/_form.html.erb +0 -14
  112. data/app/views/spree/order_mailer/confirm_email.html.erb +16 -27
  113. data/app/views/spree_cm_commissioner/layouts/order_mailer.html.erb +1 -5
  114. data/app/views/spree_cm_commissioner/order_mailer/_mailer_stylesheets.html.erb +4 -41
  115. data/config/initializers/paper_trail.rb +1 -0
  116. data/config/initializers/spree_permitted_attributes.rb +5 -0
  117. data/config/locales/en.yml +1 -5
  118. data/config/routes.rb +21 -2
  119. data/db/migrate/20240202080634_update_counter_cache_of_vehicle_type.rb +3 -1
  120. data/db/migrate/20250304293518_create_cm_inventory_items.rb +21 -0
  121. data/db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb +5 -0
  122. data/db/migrate/20250502025848_add_index_to_spree_products.rb +5 -0
  123. data/db/migrate/20250502030001_add_product_type_to_spree_variants.rb +5 -0
  124. data/db/migrate/20250502030002_add_product_type_to_spree_line_items.rb +5 -0
  125. data/db/migrate/20250603035256_add_inventory_item_to_spree_prices.rb +7 -0
  126. data/db/migrate/20250619073724_drop_table_cm_line_item_seats.rb +5 -0
  127. data/db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb +5 -0
  128. data/db/migrate/20250619073844_drop_table_cm_vehicle_types.rb +9 -0
  129. data/db/migrate/20250619073957_drop_table_cm_option_value_vehicle_types.rb +5 -0
  130. data/db/migrate/20250619082354_remove_unnecessary_fields_from_cm_places.rb +9 -0
  131. data/db/migrate/20250619082736_remove_route_type_from_spree_products.rb +5 -0
  132. data/db/migrate/20250619083055_remove_unnecessary_fields_from_spree_taxons.rb +5 -0
  133. data/db/migrate/20250620083055_remove_variant_id_from_cm_trips.rb +5 -0
  134. data/db/migrate/20250620090000_update_cm_trip_connections_to_use_cm_trips.rb +6 -0
  135. data/db/migrate/20250620090001_create_cm_seat_layouts.rb +17 -0
  136. data/db/migrate/20250620090002_create_cm_seat_sections.rb +18 -0
  137. data/db/migrate/20250620090003_create_cm_blocks.rb +18 -0
  138. data/db/migrate/20250624091005_create_cm_reserved_blocks.rb +29 -0
  139. data/db/migrate/20250626083642_create_cm_variant_blocks.rb +24 -0
  140. data/db/migrate/20250627023314_add_block_id_to_cm_guests.rb +13 -0
  141. data/db/migrate/20250716022821_add_location_reference_to_cm_vendor_places.rb +5 -0
  142. data/db/migrate/20250716031743_drop_table_cm_vendor_stops.rb +5 -0
  143. data/db/migrate/20250717023824_add_vendor_reference_to_cm_trips.rb +5 -0
  144. data/db/migrate/20250717041414_add_location_place_reference_to_cm_trip_stops.rb +5 -0
  145. data/db/migrate/20250717042539_rename_cm_trip_stops_stop_id_column_to_stop_place_id.rb +7 -0
  146. data/db/migrate/20250717042707_rename_cm_trips_origin_and_destination_to_origin_place_and_destination_place.rb +11 -0
  147. data/docker-compose.yml +1 -1
  148. data/lib/cm_app_logger.rb +11 -4
  149. data/lib/generators/spree_cm_commissioner/install/install_generator.rb +14 -11
  150. data/lib/generators/spree_cm_commissioner/install/templates/app/javascript/{spree_cm_commissioner → spree_dashboard/spree_cm_commissioner}/utilities.js +4 -0
  151. data/lib/spree_cm_commissioner/cached_inventory_item.rb +23 -0
  152. data/lib/spree_cm_commissioner/calendar_event.rb +11 -1
  153. data/lib/spree_cm_commissioner/test_helper/factories/block_factory.rb +15 -0
  154. data/lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb +10 -0
  155. data/lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb +1 -1
  156. data/lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb +9 -0
  157. data/lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb +1 -1
  158. data/lib/spree_cm_commissioner/test_helper/factories/option_type_factory.rb +6 -30
  159. data/lib/spree_cm_commissioner/test_helper/factories/order_factory.rb +0 -36
  160. data/lib/spree_cm_commissioner/test_helper/factories/product_factory.rb +18 -34
  161. data/lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb +27 -0
  162. data/lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb +11 -0
  163. data/lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb +16 -0
  164. data/lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb +2 -2
  165. data/lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb +6 -0
  166. data/lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb +11 -3
  167. data/lib/spree_cm_commissioner/test_helper/factories/trip_stop_factory.rb +10 -0
  168. data/lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb +1 -1
  169. data/lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb +7 -0
  170. data/lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb +41 -19
  171. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb +1 -1
  172. data/lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb +6 -1
  173. data/lib/spree_cm_commissioner/test_helper/factories/vendor_place_factory.rb +13 -1
  174. data/lib/spree_cm_commissioner/trip_query_result.rb +8 -0
  175. data/lib/spree_cm_commissioner/trip_result.rb +5 -3
  176. data/lib/spree_cm_commissioner/version.rb +1 -1
  177. data/lib/spree_cm_commissioner.rb +35 -1
  178. data/lib/tasks/create_default_non_permanent_inventory_items.rake +16 -0
  179. data/lib/tasks/ensure_correct_product_type.rake +7 -0
  180. data/lib/tasks/generate_inventory_items.rake +7 -0
  181. data/spree_cm_commissioner.gemspec +7 -0
  182. metadata +141 -38
  183. data/app/assets/images/mailer/mail.png +0 -0
  184. data/app/assets/images/mailer/tenant_phone.png +0 -0
  185. data/app/assets/images/mailer/tenant_user.png +0 -0
  186. data/app/controllers/concerns/spree_cm_commissioner/transit/taxon_bitwise.rb +0 -44
  187. data/app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb +0 -20
  188. data/app/models/spree_cm_commissioner/branch.rb +0 -12
  189. data/app/models/spree_cm_commissioner/line_item_seat.rb +0 -10
  190. data/app/models/spree_cm_commissioner/option_value_vehicle_type.rb +0 -8
  191. data/app/models/spree_cm_commissioner/stop.rb +0 -23
  192. data/app/models/spree_cm_commissioner/vehicle_seat.rb +0 -11
  193. data/app/models/spree_cm_commissioner/vehicle_type.rb +0 -76
  194. data/app/models/spree_cm_commissioner/vendor_stop.rb +0 -10
  195. data/app/queries/spree_cm_commissioner/trip_search_query.rb +0 -76
  196. data/app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb +0 -45
  197. data/app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb +0 -55
  198. data/app/queries/spree_cm_commissioner/vendor_stop_place_query.rb +0 -54
  199. data/app/services/spree_cm_commissioner/vehicle_option_value_creator.rb +0 -11
  200. data/app/views/spree_cm_commissioner/order_mailer/tenant/_customer_info.html.erb +0 -42
  201. data/app/views/spree_cm_commissioner/order_mailer/tenant/_footer.html.erb +0 -25
  202. data/app/views/spree_cm_commissioner/order_mailer/tenant/_greeting.html.erb +0 -19
  203. data/app/views/spree_cm_commissioner/order_mailer/tenant/_support_contact.html.erb +0 -33
  204. data/db/migrate/20250709073455_add_email_fields_to_spree_vendors.rb +0 -6
  205. data/db/migrate/20250715103333_remove_indexes_from_cm_user_identity_providers.rb +0 -13
  206. data/db/migrate/20250718071620_add_data_fill_stage_to_dynamic_fields.rb +0 -5
  207. data/lib/spree_cm_commissioner/test_helper/factories/branch_factory.rb +0 -12
  208. data/lib/spree_cm_commissioner/test_helper/factories/departure_time_option_type_factory.rb +0 -8
  209. data/lib/spree_cm_commissioner/test_helper/factories/duration_option_type_factory.rb +0 -8
  210. data/lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb +0 -7
  211. data/lib/spree_cm_commissioner/test_helper/factories/stop_factory.rb +0 -14
  212. data/lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb +0 -8
  213. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_option_type_factory.rb +0 -8
  214. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_type_factory.rb +0 -96
  215. data/lib/spree_cm_commissioner/trip_seat_layout_result.rb +0 -11
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.0.0
4
+ version: 2.0.1.pre.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-07-28 00:00:00.000000000 Z
11
+ date: 2025-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -464,6 +464,62 @@ dependencies:
464
464
  - - "~>"
465
465
  - !ruby/object:Gem::Version
466
466
  version: '3.2'
467
+ - !ruby/object:Gem::Dependency
468
+ name: paper_trail
469
+ requirement: !ruby/object:Gem::Requirement
470
+ requirements:
471
+ - - "~>"
472
+ - !ruby/object:Gem::Version
473
+ version: '16.0'
474
+ type: :runtime
475
+ prerelease: false
476
+ version_requirements: !ruby/object:Gem::Requirement
477
+ requirements:
478
+ - - "~>"
479
+ - !ruby/object:Gem::Version
480
+ version: '16.0'
481
+ - !ruby/object:Gem::Dependency
482
+ name: redis
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: redis-rails
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
+ - !ruby/object:Gem::Dependency
510
+ name: connection_pool
511
+ requirement: !ruby/object:Gem::Requirement
512
+ requirements:
513
+ - - ">="
514
+ - !ruby/object:Gem::Version
515
+ version: '0'
516
+ type: :runtime
517
+ prerelease: false
518
+ version_requirements: !ruby/object:Gem::Requirement
519
+ requirements:
520
+ - - ">="
521
+ - !ruby/object:Gem::Version
522
+ version: '0'
467
523
  - !ruby/object:Gem::Dependency
468
524
  name: pg
469
525
  requirement: !ruby/object:Gem::Requirement
@@ -652,11 +708,8 @@ files:
652
708
  - app/assets/images/mailer/facebook.png
653
709
  - app/assets/images/mailer/instagram.png
654
710
  - app/assets/images/mailer/line_item-mailer-bg.png
655
- - app/assets/images/mailer/mail.png
656
711
  - app/assets/images/mailer/map-marker.png
657
712
  - app/assets/images/mailer/phone.png
658
- - app/assets/images/mailer/tenant_phone.png
659
- - app/assets/images/mailer/tenant_user.png
660
713
  - app/assets/images/mailer/twitter.png
661
714
  - app/assets/images/mailer/user.png
662
715
  - app/assets/images/payment_methods/cm-payment-affirm.svg
@@ -737,7 +790,6 @@ files:
737
790
  - app/controllers/concerns/spree_cm_commissioner/events/role_authorization.rb
738
791
  - app/controllers/concerns/spree_cm_commissioner/exception_notificable.rb
739
792
  - app/controllers/concerns/spree_cm_commissioner/order_concern.rb
740
- - app/controllers/concerns/spree_cm_commissioner/transit/taxon_bitwise.rb
741
793
  - app/controllers/concerns/spree_cm_commissioner/waiting_room_authorization.rb
742
794
  - app/controllers/spree/admin/account_deletions_controller.rb
743
795
  - app/controllers/spree/admin/base_controller_decorator.rb
@@ -764,6 +816,7 @@ files:
764
816
  - app/controllers/spree/admin/id_cards_controller.rb
765
817
  - app/controllers/spree/admin/import_existing_orders_controller.rb
766
818
  - app/controllers/spree/admin/import_new_orders_controller.rb
819
+ - app/controllers/spree/admin/inventory_items_controller.rb
767
820
  - app/controllers/spree/admin/kyc_controller.rb
768
821
  - app/controllers/spree/admin/line_items_controller.rb
769
822
  - app/controllers/spree/admin/master_variant_controller.rb
@@ -835,6 +888,7 @@ files:
835
888
  - app/controllers/spree/api/v2/platform/seat_number_layouts_controller.rb
836
889
  - app/controllers/spree/api/v2/platform/taxons_controller_decorator.rb
837
890
  - app/controllers/spree/api/v2/resource_controller_decorator.rb
891
+ - app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb
838
892
  - app/controllers/spree/api/v2/storefront/accommodations_controller.rb
839
893
  - app/controllers/spree/api/v2/storefront/account/orders_controller_decorator.rb
840
894
  - app/controllers/spree/api/v2/storefront/account/preferred_payment_method_controller.rb
@@ -1012,7 +1066,8 @@ files:
1012
1066
  - app/factory/spree_cm_commissioner/invite_guest_claimed_telegram_message_factory.rb
1013
1067
  - app/factory/spree_cm_commissioner/order_telegram_message_factory.rb
1014
1068
  - app/factory/spree_cm_commissioner/telegram_message_factory.rb
1015
- - app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb
1069
+ - app/finders/spree_cm_commissioner/accommodations/find.rb
1070
+ - app/finders/spree_cm_commissioner/accommodations/find_variant.rb
1016
1071
  - app/finders/spree_cm_commissioner/orders/find.rb
1017
1072
  - app/finders/spree_cm_commissioner/orders/find_by_state.rb
1018
1073
  - app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
@@ -1063,6 +1118,7 @@ files:
1063
1118
  - app/interactors/spree_cm_commissioner/customer_promotion_creator.rb
1064
1119
  - app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb
1065
1120
  - app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb
1121
+ - app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb
1066
1122
  - app/interactors/spree_cm_commissioner/event_line_items_date_syncer.rb
1067
1123
  - app/interactors/spree_cm_commissioner/event_qr_generator.rb
1068
1124
  - app/interactors/spree_cm_commissioner/existing_account_checker.rb
@@ -1078,6 +1134,7 @@ files:
1078
1134
  - app/interactors/spree_cm_commissioner/imported_csv_downloader.rb
1079
1135
  - app/interactors/spree_cm_commissioner/international_mobile_formatter.rb
1080
1136
  - app/interactors/spree_cm_commissioner/invalidate_cache_request.rb
1137
+ - app/interactors/spree_cm_commissioner/inventory_item_syncer.rb
1081
1138
  - app/interactors/spree_cm_commissioner/invoice_creator.rb
1082
1139
  - app/interactors/spree_cm_commissioner/media/signed_cookie_generator.rb
1083
1140
  - app/interactors/spree_cm_commissioner/media/signed_path_generator.rb
@@ -1112,6 +1169,11 @@ files:
1112
1169
  - app/interactors/spree_cm_commissioner/sms.rb
1113
1170
  - app/interactors/spree_cm_commissioner/sqs/media_convert_job_status.rb
1114
1171
  - app/interactors/spree_cm_commissioner/state_updater.rb
1172
+ - app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb
1173
+ - app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb
1174
+ - app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb
1175
+ - app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb
1176
+ - app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb
1115
1177
  - app/interactors/spree_cm_commissioner/subscriptions_order_creator.rb
1116
1178
  - app/interactors/spree_cm_commissioner/subscriptions_order_cron_executor.rb
1117
1179
  - app/interactors/spree_cm_commissioner/subscriptions_prepaid_order_creator.rb
@@ -1161,6 +1223,7 @@ files:
1161
1223
  - app/jobs/spree_cm_commissioner/customer_notification_cron_job.rb
1162
1224
  - app/jobs/spree_cm_commissioner/customer_notification_sender_job.rb
1163
1225
  - app/jobs/spree_cm_commissioner/enqueue_cart/add_item_job.rb
1226
+ - app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb
1164
1227
  - app/jobs/spree_cm_commissioner/ensure_event_for_product_line_item_guests_job.rb
1165
1228
  - app/jobs/spree_cm_commissioner/ensure_event_id_for_guests_job.rb
1166
1229
  - app/jobs/spree_cm_commissioner/event_line_items_date_syncer_job.rb
@@ -1168,6 +1231,7 @@ files:
1168
1231
  - app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
1169
1232
  - app/jobs/spree_cm_commissioner/import_order_job.rb
1170
1233
  - app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
1234
+ - app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
1171
1235
  - app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
1172
1236
  - app/jobs/spree_cm_commissioner/option_value_variants_public_metadata_updater_job.rb
1173
1237
  - app/jobs/spree_cm_commissioner/order_complete_telegram_sender_job.rb
@@ -1176,6 +1240,9 @@ files:
1176
1240
  - app/jobs/spree_cm_commissioner/sms_job.rb
1177
1241
  - app/jobs/spree_cm_commissioner/sms_pin_code_job.rb
1178
1242
  - app/jobs/spree_cm_commissioner/state_job.rb
1243
+ - app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb
1244
+ - app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb
1245
+ - app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb
1179
1246
  - app/jobs/spree_cm_commissioner/subscription_order_executor_job.rb
1180
1247
  - app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
1181
1248
  - app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
@@ -1204,6 +1271,7 @@ files:
1204
1271
  - app/models/concerns/spree_cm_commissioner/metafield.rb
1205
1272
  - app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb
1206
1273
  - app/models/concerns/spree_cm_commissioner/option_value_attr_type.rb
1274
+ - app/models/concerns/spree_cm_commissioner/order_seatable.rb
1207
1275
  - app/models/concerns/spree_cm_commissioner/order_state_machine.rb
1208
1276
  - app/models/concerns/spree_cm_commissioner/parameterize_name.rb
1209
1277
  - app/models/concerns/spree_cm_commissioner/participation_type_bitwise.rb
@@ -1232,7 +1300,7 @@ files:
1232
1300
  - app/models/spree_cm_commissioner/back_image.rb
1233
1301
  - app/models/spree_cm_commissioner/base.rb
1234
1302
  - app/models/spree_cm_commissioner/blazer_queryable.rb
1235
- - app/models/spree_cm_commissioner/branch.rb
1303
+ - app/models/spree_cm_commissioner/block.rb
1236
1304
  - app/models/spree_cm_commissioner/check_in.rb
1237
1305
  - app/models/spree_cm_commissioner/check_in_ability.rb
1238
1306
  - app/models/spree_cm_commissioner/check_in_record.rb
@@ -1281,6 +1349,8 @@ files:
1281
1349
  - app/models/spree_cm_commissioner/image_methods_decorator.rb
1282
1350
  - app/models/spree_cm_commissioner/import.rb
1283
1351
  - app/models/spree_cm_commissioner/imports/import_order.rb
1352
+ - app/models/spree_cm_commissioner/inventory.rb
1353
+ - app/models/spree_cm_commissioner/inventory_item.rb
1284
1354
  - app/models/spree_cm_commissioner/invite.rb
1285
1355
  - app/models/spree_cm_commissioner/invite_guest.rb
1286
1356
  - app/models/spree_cm_commissioner/invite_team.rb
@@ -1288,7 +1358,6 @@ files:
1288
1358
  - app/models/spree_cm_commissioner/invite_user_taxon.rb
1289
1359
  - app/models/spree_cm_commissioner/invoice.rb
1290
1360
  - app/models/spree_cm_commissioner/line_item_decorator.rb
1291
- - app/models/spree_cm_commissioner/line_item_seat.rb
1292
1361
  - app/models/spree_cm_commissioner/notification.rb
1293
1362
  - app/models/spree_cm_commissioner/notification_taxon.rb
1294
1363
  - app/models/spree_cm_commissioner/oauth_access_token_decorator.rb
@@ -1296,7 +1365,6 @@ files:
1296
1365
  - app/models/spree_cm_commissioner/option_type_decorator.rb
1297
1366
  - app/models/spree_cm_commissioner/option_value_decorator.rb
1298
1367
  - app/models/spree_cm_commissioner/option_value_vehicle.rb
1299
- - app/models/spree_cm_commissioner/option_value_vehicle_type.rb
1300
1368
  - app/models/spree_cm_commissioner/option_value_vendor.rb
1301
1369
  - app/models/spree_cm_commissioner/order/address_book_decorator.rb
1302
1370
  - app/models/spree_cm_commissioner/order_decorator.rb
@@ -1315,6 +1383,7 @@ files:
1315
1383
  - app/models/spree_cm_commissioner/pin_code_telegram.rb
1316
1384
  - app/models/spree_cm_commissioner/pin_code_update_user_login.rb
1317
1385
  - app/models/spree_cm_commissioner/place.rb
1386
+ - app/models/spree_cm_commissioner/price_decorator.rb
1318
1387
  - app/models/spree_cm_commissioner/product_completion_step.rb
1319
1388
  - app/models/spree_cm_commissioner/product_completion_steps/chatrace_telegram.rb
1320
1389
  - app/models/spree_cm_commissioner/product_decorator.rb
@@ -1336,10 +1405,24 @@ files:
1336
1405
  - app/models/spree_cm_commissioner/promotion_decorator.rb
1337
1406
  - app/models/spree_cm_commissioner/property_decorator.rb
1338
1407
  - app/models/spree_cm_commissioner/prototype_decorator.rb
1408
+ - app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb
1409
+ - app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb
1410
+ - app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb
1411
+ - app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb
1412
+ - app/models/spree_cm_commissioner/reserved_block.rb
1339
1413
  - app/models/spree_cm_commissioner/role_decorator.rb
1340
1414
  - app/models/spree_cm_commissioner/role_permission.rb
1341
1415
  - app/models/spree_cm_commissioner/s3_presigned_url.rb
1342
1416
  - app/models/spree_cm_commissioner/s3_presigned_url_builder.rb
1417
+ - app/models/spree_cm_commissioner/seat_layout.rb
1418
+ - app/models/spree_cm_commissioner/seat_section.rb
1419
+ - app/models/spree_cm_commissioner/seats/blocks_canceler.rb
1420
+ - app/models/spree_cm_commissioner/seats/blocks_holder.rb
1421
+ - app/models/spree_cm_commissioner/seats/blocks_reserver.rb
1422
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_on_hold_by_other_guest.rb
1423
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_other_guest.rb
1424
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_same_guest.rb
1425
+ - app/models/spree_cm_commissioner/seats/errors/unable_to_save_reserved_block_record.rb
1343
1426
  - app/models/spree_cm_commissioner/service_calendar.rb
1344
1427
  - app/models/spree_cm_commissioner/sms_log.rb
1345
1428
  - app/models/spree_cm_commissioner/state_change_decorator.rb
@@ -1348,9 +1431,9 @@ files:
1348
1431
  - app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb
1349
1432
  - app/models/spree_cm_commissioner/stock/inventory_unit_builder_decorator.rb
1350
1433
  - app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb
1434
+ - app/models/spree_cm_commissioner/stock/order_availability_checker.rb
1351
1435
  - app/models/spree_cm_commissioner/stock_item_decorator.rb
1352
1436
  - app/models/spree_cm_commissioner/stock_location_decorator.rb
1353
- - app/models/spree_cm_commissioner/stop.rb
1354
1437
  - app/models/spree_cm_commissioner/store_decorator.rb
1355
1438
  - app/models/spree_cm_commissioner/subscription.rb
1356
1439
  - app/models/spree_cm_commissioner/taxon_app_banner.rb
@@ -1380,6 +1463,7 @@ files:
1380
1463
  - app/models/spree_cm_commissioner/user_place.rb
1381
1464
  - app/models/spree_cm_commissioner/user_profile.rb
1382
1465
  - app/models/spree_cm_commissioner/user_taxon.rb
1466
+ - app/models/spree_cm_commissioner/variant_block.rb
1383
1467
  - app/models/spree_cm_commissioner/variant_decorator.rb
1384
1468
  - app/models/spree_cm_commissioner/variant_guest_card_class.rb
1385
1469
  - app/models/spree_cm_commissioner/variant_options.rb
@@ -1387,8 +1471,6 @@ files:
1387
1471
  - app/models/spree_cm_commissioner/vehicle.rb
1388
1472
  - app/models/spree_cm_commissioner/vehicle_option_type.rb
1389
1473
  - app/models/spree_cm_commissioner/vehicle_photo.rb
1390
- - app/models/spree_cm_commissioner/vehicle_seat.rb
1391
- - app/models/spree_cm_commissioner/vehicle_type.rb
1392
1474
  - app/models/spree_cm_commissioner/vendor_app_promotion_banner.rb
1393
1475
  - app/models/spree_cm_commissioner/vendor_decorator.rb
1394
1476
  - app/models/spree_cm_commissioner/vendor_logo.rb
@@ -1397,7 +1479,6 @@ files:
1397
1479
  - app/models/spree_cm_commissioner/vendor_photo.rb
1398
1480
  - app/models/spree_cm_commissioner/vendor_place.rb
1399
1481
  - app/models/spree_cm_commissioner/vendor_promotion_rule.rb
1400
- - app/models/spree_cm_commissioner/vendor_stop.rb
1401
1482
  - app/models/spree_cm_commissioner/vendor_web_promotion_banner.rb
1402
1483
  - app/models/spree_cm_commissioner/video.rb
1403
1484
  - app/models/spree_cm_commissioner/video_on_demand.rb
@@ -1559,17 +1640,14 @@ files:
1559
1640
  - app/queries/spree_cm_commissioner/subscription_revenue_overview_query.rb
1560
1641
  - app/queries/spree_cm_commissioner/tickets_searcher_query.rb
1561
1642
  - app/queries/spree_cm_commissioner/trip_query.rb
1562
- - app/queries/spree_cm_commissioner/trip_search_query.rb
1563
1643
  - app/queries/spree_cm_commissioner/trip_seat_layout_query.rb
1564
1644
  - app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
1565
- - app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb
1566
- - app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb
1567
- - app/queries/spree_cm_commissioner/vendor_stop_place_query.rb
1568
1645
  - app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
1569
1646
  - app/request_schemas/spree_cm_commissioner/application_request_schema.rb
1570
1647
  - app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
1571
1648
  - app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
1572
1649
  - app/request_schemas/spree_cm_commissioner/user_profile_request_schema.rb
1650
+ - app/request_schemas/spree_cm_commissioner/variant_request_schema.rb
1573
1651
  - app/serializables/spree_cm_commissioner/event_ticket_aggregator.rb
1574
1652
  - app/serializables/spree_cm_commissioner/pie_chart_event_aggregator.rb
1575
1653
  - app/serializables/spree_cm_commissioner/queue_item.rb
@@ -1754,7 +1832,6 @@ files:
1754
1832
  - app/services/spree_cm_commissioner/seeds/roles_decorator.rb
1755
1833
  - app/services/spree_cm_commissioner/user_authenticator.rb
1756
1834
  - app/services/spree_cm_commissioner/user_roles_assigner.rb
1757
- - app/services/spree_cm_commissioner/vehicle_option_value_creator.rb
1758
1835
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
1759
1836
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
1760
1837
  - app/services/spree_cm_commissioner/webhooks/subscribers/handle_request_decorator.rb
@@ -1846,6 +1923,7 @@ files:
1846
1923
  - app/views/spree/admin/import_new_orders/index.html.erb
1847
1924
  - app/views/spree/admin/import_new_orders/new.html.erb
1848
1925
  - app/views/spree/admin/import_new_orders/show.html.erb
1926
+ - app/views/spree/admin/inventory_items/show.html.erb
1849
1927
  - app/views/spree/admin/kyc/_form.html.erb
1850
1928
  - app/views/spree/admin/kyc/edit.html.erb
1851
1929
  - app/views/spree/admin/line_items/_form.html.erb
@@ -1907,6 +1985,7 @@ files:
1907
1985
  - app/views/spree/admin/shared/sub_menu/_calendar.html.erb
1908
1986
  - app/views/spree/admin/shared/sub_menu/_homepage.html.erb
1909
1987
  - app/views/spree/admin/stock_managements/_variant_stock_items.html.erb
1988
+ - app/views/spree/admin/stock_managements/calendar.html.erb
1910
1989
  - app/views/spree/admin/stock_managements/index.html.erb
1911
1990
  - app/views/spree/admin/system/show.html.erb
1912
1991
  - app/views/spree/admin/taxon_childrens/index.html.erb
@@ -2190,10 +2269,6 @@ files:
2190
2269
  - app/views/spree_cm_commissioner/order_mailer/hotel/_booking_detail.html.erb
2191
2270
  - app/views/spree_cm_commissioner/order_mailer/purchased_items/_items.html.erb
2192
2271
  - app/views/spree_cm_commissioner/order_mailer/purchased_items/_summary.html.erb
2193
- - app/views/spree_cm_commissioner/order_mailer/tenant/_customer_info.html.erb
2194
- - app/views/spree_cm_commissioner/order_mailer/tenant/_footer.html.erb
2195
- - app/views/spree_cm_commissioner/order_mailer/tenant/_greeting.html.erb
2196
- - app/views/spree_cm_commissioner/order_mailer/tenant/_support_contact.html.erb
2197
2272
  - app/views/spree_cm_commissioner/pin_code_mailer/send_pin_code.html.erb
2198
2273
  - app/views/spree_cm_commissioner/team_invite_mailer/_mailer_stylesheets.html.erb
2199
2274
  - app/views/spree_cm_commissioner/team_invite_mailer/send_team_invite_email.html.erb
@@ -2203,6 +2278,7 @@ files:
2203
2278
  - config/initializers/doorkeeper.rb
2204
2279
  - config/initializers/exception_notification.rb
2205
2280
  - config/initializers/google_map.rb
2281
+ - config/initializers/paper_trail.rb
2206
2282
  - config/initializers/phonelib.rb
2207
2283
  - config/initializers/premailer_rails.rb
2208
2284
  - config/initializers/recaptcha_enterprise.rb
@@ -2487,6 +2563,7 @@ files:
2487
2563
  - db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb
2488
2564
  - db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb
2489
2565
  - db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
2566
+ - db/migrate/20250304293518_create_cm_inventory_items.rb
2490
2567
  - db/migrate/20250307013422_add_parent_id_to_cm_place.rb
2491
2568
  - db/migrate/20250307073003_add_tenant_id_to_cm_customer_notifications.rb
2492
2569
  - db/migrate/20250307083809_remove_tenant_id_from_cm_notifications.rb
@@ -2507,8 +2584,12 @@ files:
2507
2584
  - db/migrate/20250425084929_add_description_to_spree_prototypes.rb
2508
2585
  - db/migrate/20250425085938_add_preferences_to_spree_prototypes.rb
2509
2586
  - db/migrate/20250428025645_add_slug_to_spree_prototypes.rb
2587
+ - db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb
2510
2588
  - db/migrate/20250430091742_create_cm_taxon_option_types.rb
2511
2589
  - db/migrate/20250430092928_create_cm_taxon_option_values.rb
2590
+ - db/migrate/20250502025848_add_index_to_spree_products.rb
2591
+ - db/migrate/20250502030001_add_product_type_to_spree_variants.rb
2592
+ - db/migrate/20250502030002_add_product_type_to_spree_line_items.rb
2512
2593
  - db/migrate/20250506092929_add_trip_count_to_cm_vendor_stops.rb
2513
2594
  - db/migrate/20250509033437_create_spree_cm_commissioner_transactional_emails.rb
2514
2595
  - db/migrate/20250509075429_add_max_order_quantity_to_spree_product.rb
@@ -2525,6 +2606,7 @@ files:
2525
2606
  - db/migrate/20250531074036_create_spree_cm_commissioner_option_value_vehicle.rb
2526
2607
  - db/migrate/20250531074258_create_spree_cm_commissioner_vehicle_option_types.rb
2527
2608
  - db/migrate/20250602094751_add_host_to_cm_tenants.rb
2609
+ - db/migrate/20250603035256_add_inventory_item_to_spree_prices.rb
2528
2610
  - db/migrate/20250605024523_add_participation_type_to_spree_taxon.rb
2529
2611
  - db/migrate/20250606020914_create_cm_dynamic_fields.rb
2530
2612
  - db/migrate/20250606020958_create_cm_guest_dynamic_fields.rb
@@ -2535,18 +2617,36 @@ files:
2535
2617
  - db/migrate/20250611023548_add_country_code_to_guests.rb
2536
2618
  - db/migrate/20250612035937_add_intel_phone_number_to_guests.rb
2537
2619
  - db/migrate/20250616084219_add_description_to_cm_vendor_place.rb
2620
+ - db/migrate/20250619073724_drop_table_cm_line_item_seats.rb
2621
+ - db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb
2622
+ - db/migrate/20250619073844_drop_table_cm_vehicle_types.rb
2623
+ - db/migrate/20250619073957_drop_table_cm_option_value_vehicle_types.rb
2624
+ - db/migrate/20250619082354_remove_unnecessary_fields_from_cm_places.rb
2625
+ - db/migrate/20250619082736_remove_route_type_from_spree_products.rb
2626
+ - db/migrate/20250619083055_remove_unnecessary_fields_from_spree_taxons.rb
2627
+ - db/migrate/20250620083055_remove_variant_id_from_cm_trips.rb
2628
+ - db/migrate/20250620090000_update_cm_trip_connections_to_use_cm_trips.rb
2629
+ - db/migrate/20250620090001_create_cm_seat_layouts.rb
2630
+ - db/migrate/20250620090002_create_cm_seat_sections.rb
2631
+ - db/migrate/20250620090003_create_cm_blocks.rb
2632
+ - db/migrate/20250624091005_create_cm_reserved_blocks.rb
2633
+ - db/migrate/20250626083642_create_cm_variant_blocks.rb
2634
+ - db/migrate/20250627023314_add_block_id_to_cm_guests.rb
2538
2635
  - db/migrate/20250630103536_create_cm_telegram_chats.rb
2539
2636
  - db/migrate/20250701093203_add_configurations_to_cm_dynamic_field.rb
2540
2637
  - db/migrate/20250702091305_add_dynamic_field_option_to_guest_dynamic_field.rb
2541
2638
  - db/migrate/20250702091935_add_status_to_dynamic_field_option.rb
2542
2639
  - db/migrate/20250707032008_add_vendor_id_to_spree_category.rb
2543
- - db/migrate/20250709073455_add_email_fields_to_spree_vendors.rb
2544
2640
  - db/migrate/20250711092937_add_position_to_cm_dynamic_fields.rb
2545
2641
  - db/migrate/20250711093045_add_position_to_cm_dynamic_field_options.rb
2546
2642
  - db/migrate/20250714121508_rename_cm_taxon_blazer_query_to_blazer_queryables.rb
2547
2643
  - db/migrate/20250714124323_make_cm_blazer_queryables_polymorphic.rb
2548
- - db/migrate/20250715103333_remove_indexes_from_cm_user_identity_providers.rb
2549
- - db/migrate/20250718071620_add_data_fill_stage_to_dynamic_fields.rb
2644
+ - db/migrate/20250716022821_add_location_reference_to_cm_vendor_places.rb
2645
+ - db/migrate/20250716031743_drop_table_cm_vendor_stops.rb
2646
+ - db/migrate/20250717023824_add_vendor_reference_to_cm_trips.rb
2647
+ - db/migrate/20250717041414_add_location_place_reference_to_cm_trip_stops.rb
2648
+ - db/migrate/20250717042539_rename_cm_trip_stops_stop_id_column_to_stop_place_id.rb
2649
+ - db/migrate/20250717042707_rename_cm_trips_origin_and_destination_to_origin_place_and_destination_place.rb
2550
2650
  - docker-compose.yml
2551
2651
  - docs/option_types/attr_types.md
2552
2652
  - docs/private_key.pem
@@ -2561,11 +2661,12 @@ files:
2561
2661
  - docs/webhook/sqs/params_job_submitted.json
2562
2662
  - lib/cm_app_logger.rb
2563
2663
  - lib/generators/spree_cm_commissioner/install/install_generator.rb
2564
- - lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_cm_commissioner/utilities.js
2664
+ - lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_dashboard/spree_cm_commissioner/utilities.js
2565
2665
  - lib/generators/spree_cm_commissioner/install/templates/config/data/nationalities.yml
2566
2666
  - lib/generators/spree_cm_commissioner/install/templates/vendor/assets/javascript/spree_cm_commissioner/telegram/all.js
2567
2667
  - lib/generators/spree_cm_commissioner/install/templates/vendor/assets/stylesheets/spree_cm_commissioner/telegram/all.css
2568
2668
  - lib/spree_cm_commissioner.rb
2669
+ - lib/spree_cm_commissioner/cached_inventory_item.rb
2569
2670
  - lib/spree_cm_commissioner/calendar_event.rb
2570
2671
  - lib/spree_cm_commissioner/engine.rb
2571
2672
  - lib/spree_cm_commissioner/factories.rb
@@ -2578,16 +2679,14 @@ files:
2578
2679
  - lib/spree_cm_commissioner/test_helper/factories/address_factory.rb
2579
2680
  - lib/spree_cm_commissioner/test_helper/factories/asset_factory.rb
2580
2681
  - lib/spree_cm_commissioner/test_helper/factories/back_image_factory.rb
2581
- - lib/spree_cm_commissioner/test_helper/factories/branch_factory.rb
2682
+ - lib/spree_cm_commissioner/test_helper/factories/block_factory.rb
2582
2683
  - lib/spree_cm_commissioner/test_helper/factories/check_in_factory.rb
2583
2684
  - lib/spree_cm_commissioner/test_helper/factories/cms_page_factory.rb
2584
2685
  - lib/spree_cm_commissioner/test_helper/factories/country_factory.rb
2585
2686
  - lib/spree_cm_commissioner/test_helper/factories/customer_factory.rb
2586
2687
  - lib/spree_cm_commissioner/test_helper/factories/customer_notification_factory.rb
2587
2688
  - lib/spree_cm_commissioner/test_helper/factories/customers_taxons_factory.rb
2588
- - lib/spree_cm_commissioner/test_helper/factories/departure_time_option_type_factory.rb
2589
2689
  - lib/spree_cm_commissioner/test_helper/factories/device_token_factory.rb
2590
- - lib/spree_cm_commissioner/test_helper/factories/duration_option_type_factory.rb
2591
2690
  - lib/spree_cm_commissioner/test_helper/factories/export_guest_csv_factory.rb
2592
2691
  - lib/spree_cm_commissioner/test_helper/factories/front_image_factory.rb
2593
2692
  - lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb
@@ -2601,11 +2700,11 @@ files:
2601
2700
  - lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
2602
2701
  - lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
2603
2702
  - lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
2703
+ - lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb
2604
2704
  - lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
2605
2705
  - lib/spree_cm_commissioner/test_helper/factories/invite_guests_factory.rb
2606
2706
  - lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
2607
2707
  - lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb
2608
- - lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb
2609
2708
  - lib/spree_cm_commissioner/test_helper/factories/notification_factory.rb
2610
2709
  - lib/spree_cm_commissioner/test_helper/factories/notification_taxons_factory.rb
2611
2710
  - lib/spree_cm_commissioner/test_helper/factories/oauth_access_token_factory.rb
@@ -2621,13 +2720,15 @@ files:
2621
2720
  - lib/spree_cm_commissioner/test_helper/factories/product_factory.rb
2622
2721
  - lib/spree_cm_commissioner/test_helper/factories/products_taxons_factory.rb
2623
2722
  - lib/spree_cm_commissioner/test_helper/factories/promotion_factory.rb
2723
+ - lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb
2624
2724
  - lib/spree_cm_commissioner/test_helper/factories/role.rb
2625
2725
  - lib/spree_cm_commissioner/test_helper/factories/role_permission_factory.rb
2726
+ - lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb
2727
+ - lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb
2626
2728
  - lib/spree_cm_commissioner/test_helper/factories/service_calendar_factory.rb
2627
2729
  - lib/spree_cm_commissioner/test_helper/factories/sms_logs.rb
2628
2730
  - lib/spree_cm_commissioner/test_helper/factories/state_factory.rb
2629
2731
  - lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb
2630
- - lib/spree_cm_commissioner/test_helper/factories/stop_factory.rb
2631
2732
  - lib/spree_cm_commissioner/test_helper/factories/subscription_factory.rb
2632
2733
  - lib/spree_cm_commissioner/test_helper/factories/taxon_brand_logo_factory.rb
2633
2734
  - lib/spree_cm_commissioner/test_helper/factories/taxon_category_icon.rb
@@ -2637,16 +2738,16 @@ files:
2637
2738
  - lib/spree_cm_commissioner/test_helper/factories/telegram_bot_factory.rb
2638
2739
  - lib/spree_cm_commissioner/test_helper/factories/tenant_factory.rb
2639
2740
  - lib/spree_cm_commissioner/test_helper/factories/transactional_email_factory.rb
2640
- - lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb
2741
+ - lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb
2641
2742
  - lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb
2743
+ - lib/spree_cm_commissioner/test_helper/factories/trip_stop_factory.rb
2642
2744
  - lib/spree_cm_commissioner/test_helper/factories/user_deletion_reasons_factory.rb
2643
2745
  - lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb
2644
2746
  - lib/spree_cm_commissioner/test_helper/factories/user_factory.rb
2645
2747
  - lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb
2748
+ - lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb
2646
2749
  - lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb
2647
2750
  - lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb
2648
- - lib/spree_cm_commissioner/test_helper/factories/vehicle_option_type_factory.rb
2649
- - lib/spree_cm_commissioner/test_helper/factories/vehicle_type_factory.rb
2650
2751
  - lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb
2651
2752
  - lib/spree_cm_commissioner/test_helper/factories/vendor_logo_factory.rb
2652
2753
  - lib/spree_cm_commissioner/test_helper/factories/vendor_photo_factory.rb
@@ -2656,14 +2757,16 @@ files:
2656
2757
  - lib/spree_cm_commissioner/test_helper/factories/webhook_subscriber_rule_factory.rb
2657
2758
  - lib/spree_cm_commissioner/trip_query_result.rb
2658
2759
  - lib/spree_cm_commissioner/trip_result.rb
2659
- - lib/spree_cm_commissioner/trip_seat_layout_result.rb
2660
2760
  - lib/spree_cm_commissioner/user_session_jwt_token.rb
2661
2761
  - lib/spree_cm_commissioner/version.rb
2762
+ - lib/tasks/create_default_non_permanent_inventory_items.rake
2662
2763
  - lib/tasks/customer_notification_cron_scheduler.rake
2764
+ - lib/tasks/ensure_correct_product_type.rake
2663
2765
  - lib/tasks/ensure_event_for_guests.rake
2664
2766
  - lib/tasks/ensure_event_for_product_line_item_guests.rake
2665
2767
  - lib/tasks/ensure_number_for_line_items.rake
2666
2768
  - lib/tasks/fetch_email.rake
2769
+ - lib/tasks/generate_inventory_items.rake
2667
2770
  - lib/tasks/kh_location_option_values.rake
2668
2771
  - lib/tasks/kh_provinces.rake
2669
2772
  - lib/tasks/migrate_and_rebuild_place_hierarchy.rake
@@ -2699,9 +2802,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2699
2802
  version: '2.7'
2700
2803
  required_rubygems_version: !ruby/object:Gem::Requirement
2701
2804
  requirements:
2702
- - - ">="
2805
+ - - ">"
2703
2806
  - !ruby/object:Gem::Version
2704
- version: '0'
2807
+ version: 1.3.1
2705
2808
  requirements:
2706
2809
  - none
2707
2810
  rubygems_version: 3.4.1
Binary file
@@ -1,44 +0,0 @@
1
- module SpreeCmCommissioner
2
- module Transit
3
- module TaxonBitwise
4
- extend ActiveSupport::Concern
5
-
6
- BIT_STOP = 0b001
7
- BIT_STATION = 0b010
8
- BIT_BRANCH = 0b100
9
- BIT_LOCATION = 0b1000
10
-
11
- included do
12
- attr_accessor :stop, :station, :branch, :location
13
-
14
- before_validation :at_least_one_checkbox_selected
15
- end
16
-
17
- def stop?
18
- data_type & BIT_STOP != 0
19
- end
20
-
21
- def station?
22
- data_type & BIT_STATION != 0
23
- end
24
-
25
- def branch?
26
- data_type & BIT_BRANCH != 0
27
- end
28
-
29
- def location?
30
- data_type & BIT_LOCATION != 0
31
- end
32
-
33
- private
34
-
35
- def at_least_one_checkbox_selected
36
- if stop.nil? && station.nil? && branch.nil? && location.nil?
37
- nil
38
- elsif stop.to_i.zero? && station.to_i.zero? && branch.to_i.zero? && location.to_i.zero?
39
- errors.add(:base, 'At least one checkbox (stop, branch, or location) must be selected')
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,20 +0,0 @@
1
- module SpreeCmCommissioner
2
- module LineItems
3
- module FindByVariantDecorator
4
- # ovveride
5
- def execute(order:, variant:, options: {})
6
- return super unless variant.product.product_type == 'transit'
7
-
8
- order.line_items.detect do |line_item|
9
- next if options[:date].present? && !(line_item.variant_id == variant.id && line_item.date == options[:date])
10
-
11
- Spree::Dependencies.cart_compare_line_items_service.constantize.call(order: order, line_item: line_item, options: options).value
12
- end
13
- end
14
- end
15
- end
16
- end
17
-
18
- unless Spree::LineItems::FindByVariant.included_modules.include?(SpreeCmCommissioner::LineItems::FindByVariantDecorator)
19
- Spree::LineItems::FindByVariant.prepend(SpreeCmCommissioner::LineItems::FindByVariantDecorator)
20
- end
@@ -1,12 +0,0 @@
1
- require_dependency 'spree_cm_commissioner'
2
-
3
- module SpreeCmCommissioner
4
- class Branch < SpreeCmCommissioner::Place
5
- belongs_to :state, class_name: 'Spree::State', optional: true
6
- belongs_to :vendor, class_name: 'Spree::Vendor'
7
-
8
- def validate_reference?
9
- false
10
- end
11
- end
12
- end
@@ -1,10 +0,0 @@
1
- require_dependency 'spree_cm_commissioner'
2
- module SpreeCmCommissioner
3
- class LineItemSeat < SpreeCmCommissioner::Base
4
- belongs_to :line_item, class_name: 'Spree::LineItem'
5
- belongs_to :seat, class_name: 'SpreeCmCommissioner::VehicleSeat'
6
- belongs_to :variant, class_name: 'Spree::Variant'
7
-
8
- validates :date, presence: true
9
- end
10
- end
@@ -1,8 +0,0 @@
1
- require_dependency 'spree_cm_commissioner'
2
-
3
- module SpreeCmCommissioner
4
- class OptionValueVehicleType < ApplicationRecord
5
- belongs_to :vehicle_type, class_name: 'SpreeCmCommissioner::VehicleType', dependent: :destroy
6
- belongs_to :option_value, class_name: 'Spree::OptionValue', dependent: :destroy
7
- end
8
- end
@@ -1,23 +0,0 @@
1
- require_dependency 'spree_cm_commissioner'
2
-
3
- module SpreeCmCommissioner
4
- class Stop < SpreeCmCommissioner::Place
5
- belongs_to :branch, class_name: 'SpreeCmCommissioner::Branch'
6
- belongs_to :state, class_name: 'Spree::State', optional: true
7
- belongs_to :vendor, class_name: 'Spree::Vendor'
8
-
9
- after_save :add_to_option_value
10
-
11
- def validate_reference?
12
- false
13
- end
14
-
15
- def add_to_option_value
16
- origin = Spree::OptionType.find_by(attr_type: 'origin')&.id
17
- destination = Spree::OptionType.find_by(attr_type: 'destination')&.id
18
-
19
- Spree::OptionValue.create(option_type_id: origin, name: name, presentation: id)
20
- Spree::OptionValue.create(option_type_id: destination, name: name, presentation: id)
21
- end
22
- end
23
- end