spree_cm_commissioner 2.0.3.pre.pre4 → 2.0.3.pre.pre6

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 (210) 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 +28 -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/storefront/accommodations/variants_controller.rb +42 -0
  10. data/app/controllers/spree/api/v2/storefront/accommodations_controller.rb +14 -31
  11. data/app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb +2 -2
  12. data/app/controllers/spree/api/v2/storefront/trip_places_controller.rb +29 -0
  13. data/app/controllers/spree/api/v2/storefront/trip_search_controller.rb +62 -0
  14. data/app/controllers/spree_cm_commissioner/admin/products_controller_decorator.rb +14 -0
  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/ensure_correct_product_type.rb +40 -0
  18. data/app/interactors/spree_cm_commissioner/inventory_item_syncer.rb +25 -0
  19. data/app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb +44 -0
  20. data/app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb +13 -0
  21. data/app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb +15 -0
  22. data/app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb +75 -0
  23. data/app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb +32 -0
  24. data/app/interactors/spree_cm_commissioner/taxi_trip_creator.rb +66 -0
  25. data/app/interactors/spree_cm_commissioner/transit/draft_order_creator.rb +132 -0
  26. data/app/interactors/spree_cm_commissioner/variant_block_updater.rb +62 -0
  27. data/app/interactors/spree_cm_commissioner/vehicle_updater.rb +41 -0
  28. data/app/jobs/spree_cm_commissioner/application_job.rb +20 -0
  29. data/app/jobs/spree_cm_commissioner/application_unique_job.rb +20 -0
  30. data/app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb +7 -0
  31. data/app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb +7 -0
  32. data/app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb +11 -0
  33. data/app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb +11 -0
  34. data/app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb +9 -0
  35. data/app/models/concerns/spree_cm_commissioner/line_item_durationable.rb +18 -15
  36. data/app/models/concerns/spree_cm_commissioner/line_item_guests_concern.rb +29 -15
  37. data/app/models/concerns/spree_cm_commissioner/line_item_transitable.rb +89 -0
  38. data/app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb +2 -12
  39. data/app/models/concerns/spree_cm_commissioner/order_seatable.rb +44 -0
  40. data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +39 -0
  41. data/app/models/concerns/spree_cm_commissioner/product_delegation.rb +1 -3
  42. data/app/models/concerns/spree_cm_commissioner/product_type.rb +10 -0
  43. data/app/models/concerns/spree_cm_commissioner/route_type.rb +1 -1
  44. data/app/models/concerns/spree_cm_commissioner/taxon_kind.rb +1 -1
  45. data/app/models/concerns/spree_cm_commissioner/vehicle_type.rb +11 -0
  46. data/app/models/spree_cm_commissioner/address_decorator.rb +36 -2
  47. data/app/models/spree_cm_commissioner/block.rb +43 -0
  48. data/app/models/spree_cm_commissioner/guest.rb +35 -0
  49. data/app/models/spree_cm_commissioner/inventory.rb +11 -0
  50. data/app/models/spree_cm_commissioner/inventory_item.rb +69 -0
  51. data/app/models/spree_cm_commissioner/line_item_decorator.rb +47 -78
  52. data/app/models/spree_cm_commissioner/notification_taxon.rb +1 -1
  53. data/app/models/spree_cm_commissioner/option_type_decorator.rb +1 -11
  54. data/app/models/spree_cm_commissioner/order/address_book_decorator.rb +30 -12
  55. data/app/models/spree_cm_commissioner/order_decorator.rb +38 -1
  56. data/app/models/spree_cm_commissioner/place.rb +3 -4
  57. data/app/models/spree_cm_commissioner/price_decorator.rb +9 -0
  58. data/app/models/spree_cm_commissioner/product_decorator.rb +39 -6
  59. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +41 -0
  60. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +126 -0
  61. data/app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb +36 -0
  62. data/app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb +25 -0
  63. data/app/models/spree_cm_commissioner/reserved_block.rb +30 -0
  64. data/app/models/spree_cm_commissioner/saved_guest.rb +15 -0
  65. data/app/models/spree_cm_commissioner/seat_layout.rb +20 -0
  66. data/app/models/spree_cm_commissioner/seat_section.rb +16 -0
  67. data/app/models/spree_cm_commissioner/seats/blocks_canceler.rb +30 -0
  68. data/app/models/spree_cm_commissioner/seats/blocks_holder.rb +53 -0
  69. data/app/models/spree_cm_commissioner/seats/blocks_reserver.rb +49 -0
  70. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_on_hold_by_other_guest.rb +4 -0
  71. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_other_guest.rb +4 -0
  72. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_same_guest.rb +4 -0
  73. data/app/models/spree_cm_commissioner/seats/errors/unable_to_save_reserved_block_record.rb +4 -0
  74. data/app/models/spree_cm_commissioner/service_calendar.rb +0 -2
  75. data/app/models/spree_cm_commissioner/state_decorator.rb +0 -1
  76. data/app/models/spree_cm_commissioner/stock/availability_checker.rb +26 -25
  77. data/app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb +2 -1
  78. data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +3 -3
  79. data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +44 -0
  80. data/app/models/spree_cm_commissioner/stock_item_decorator.rb +17 -0
  81. data/app/models/spree_cm_commissioner/taxon_decorator.rb +0 -1
  82. data/app/models/spree_cm_commissioner/taxonomy_decorator.rb +0 -6
  83. data/app/models/spree_cm_commissioner/trip.rb +19 -10
  84. data/app/models/spree_cm_commissioner/trip_connection.rb +5 -5
  85. data/app/models/spree_cm_commissioner/trip_stop.rb +10 -21
  86. data/app/models/spree_cm_commissioner/variant_block.rb +17 -0
  87. data/app/models/spree_cm_commissioner/variant_decorator.rb +37 -47
  88. data/app/models/spree_cm_commissioner/variant_options.rb +0 -23
  89. data/app/models/spree_cm_commissioner/vehicle.rb +11 -16
  90. data/app/models/spree_cm_commissioner/vendor_decorator.rb +14 -14
  91. data/app/models/spree_cm_commissioner/vendor_place.rb +13 -3
  92. data/app/overrides/spree/admin/products/_form/industry_taxons.html.erb.deface +26 -0
  93. data/app/overrides/spree/admin/products/_form/taxons.html.erb.deface +26 -0
  94. data/app/queries/spree_cm_commissioner/trip_query.rb +110 -131
  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/trip_search_request_schema.rb +20 -0
  98. data/app/request_schemas/spree_cm_commissioner/variant_request_schema.rb +19 -0
  99. data/app/serializers/spree/v2/storefront/accommodation_serializer.rb +2 -0
  100. data/app/serializers/spree/v2/storefront/amenity_serializer.rb +15 -0
  101. data/app/serializers/spree/v2/storefront/line_item_serializer_decorator.rb +1 -0
  102. data/app/serializers/spree/v2/storefront/product_serializer_decorator.rb +2 -0
  103. data/app/serializers/spree/v2/storefront/trip_place_serializer.rb +10 -0
  104. data/app/serializers/spree/v2/storefront/trip_query_result_serializer.rb +14 -0
  105. data/app/serializers/spree/v2/storefront/trip_result_serializer.rb +17 -0
  106. data/app/serializers/spree/v2/storefront/trip_vehicle_serializer.rb +11 -0
  107. data/app/serializers/spree/v2/storefront/trip_vendor_serializer.rb +13 -0
  108. data/app/views/spree/admin/inventory_items/show.html.erb +72 -0
  109. data/app/views/spree/admin/stock_managements/_variant_stock_items.html.erb +7 -2
  110. data/app/views/spree/admin/stock_managements/calendar.html.erb +56 -0
  111. data/app/views/spree/admin/stock_managements/index.html.erb +55 -6
  112. data/config/initializers/paper_trail.rb +1 -0
  113. data/config/initializers/spree_permitted_attributes.rb +5 -0
  114. data/config/routes.rb +24 -2
  115. data/db/migrate/20240202080634_update_counter_cache_of_vehicle_type.rb +3 -1
  116. data/db/migrate/20250122000000_move_route_type_from_vehicles_to_trips.rb +7 -0
  117. data/db/migrate/20250304293518_create_cm_inventory_items.rb +21 -0
  118. data/db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb +5 -0
  119. data/db/migrate/20250502025848_add_index_to_spree_products.rb +5 -0
  120. data/db/migrate/20250502030001_add_product_type_to_spree_variants.rb +5 -0
  121. data/db/migrate/20250502030002_add_product_type_to_spree_line_items.rb +5 -0
  122. data/db/migrate/20250603035256_add_inventory_item_to_spree_prices.rb +7 -0
  123. data/db/migrate/20250619073724_drop_table_cm_line_item_seats.rb +5 -0
  124. data/db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb +5 -0
  125. data/db/migrate/20250619073844_drop_table_cm_vehicle_types.rb +9 -0
  126. data/db/migrate/20250619073957_drop_table_cm_option_value_vehicle_types.rb +5 -0
  127. data/db/migrate/20250619082354_remove_unnecessary_fields_from_cm_places.rb +9 -0
  128. data/db/migrate/20250619082736_remove_route_type_from_spree_products.rb +5 -0
  129. data/db/migrate/20250619083055_remove_unnecessary_fields_from_spree_taxons.rb +5 -0
  130. data/db/migrate/20250620083055_remove_variant_id_from_cm_trips.rb +5 -0
  131. data/db/migrate/20250620090000_update_cm_trip_connections_to_use_cm_trips.rb +6 -0
  132. data/db/migrate/20250620090001_create_cm_seat_layouts.rb +17 -0
  133. data/db/migrate/20250620090002_create_cm_seat_sections.rb +18 -0
  134. data/db/migrate/20250620090003_create_cm_blocks.rb +18 -0
  135. data/db/migrate/20250624091005_create_cm_reserved_blocks.rb +29 -0
  136. data/db/migrate/20250626083642_create_cm_variant_blocks.rb +24 -0
  137. data/db/migrate/20250627023314_add_block_id_to_cm_guests.rb +13 -0
  138. data/db/migrate/20250716022821_add_location_reference_to_cm_vendor_places.rb +5 -0
  139. data/db/migrate/20250716031743_drop_table_cm_vendor_stops.rb +5 -0
  140. data/db/migrate/20250717023824_add_vendor_reference_to_cm_trips.rb +5 -0
  141. data/db/migrate/20250717041414_add_location_place_reference_to_cm_trip_stops.rb +5 -0
  142. data/db/migrate/20250717042539_rename_cm_trip_stops_stop_id_column_to_stop_place_id.rb +7 -0
  143. data/db/migrate/20250717042707_rename_cm_trips_origin_and_destination_to_origin_place_and_destination_place.rb +11 -0
  144. data/db/migrate/20250721080738_add_vehicle_type_to_cm_vehicles.rb +7 -0
  145. data/db/migrate/20250725092713_add_block_type_to_cm_blocks.rb +5 -0
  146. data/db/migrate/20250731062816_add_departure_time_and_arrival_time_to_trip_stop.rb +6 -0
  147. data/db/migrate/20250807033035_create_spree_cm_commissioner_saved_guests.rb +23 -0
  148. data/db/migrate/20250808054835_add_saved_guest_reference_to_cm_blocks.rb +5 -0
  149. data/db/migrate/20250812015522_remove_unique_indexes_from_cm_user_identity_providers.rb +8 -0
  150. data/db/migrate/20250814073854_add_call_to_action_to_spree_products.rb +5 -0
  151. data/docker-compose.yml +1 -1
  152. data/lib/cm_app_logger.rb +11 -4
  153. data/lib/generators/spree_cm_commissioner/install/install_generator.rb +14 -11
  154. data/lib/generators/spree_cm_commissioner/install/templates/app/javascript/{spree_cm_commissioner → spree_dashboard/spree_cm_commissioner}/utilities.js +4 -0
  155. data/lib/spree_cm_commissioner/cached_inventory_item.rb +23 -0
  156. data/lib/spree_cm_commissioner/calendar_event.rb +11 -1
  157. data/lib/spree_cm_commissioner/test_helper/factories/block_factory.rb +16 -0
  158. data/lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb +10 -0
  159. data/lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb +1 -1
  160. data/lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb +9 -0
  161. data/lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb +1 -1
  162. data/lib/spree_cm_commissioner/test_helper/factories/option_type_factory.rb +6 -30
  163. data/lib/spree_cm_commissioner/test_helper/factories/order_factory.rb +0 -36
  164. data/lib/spree_cm_commissioner/test_helper/factories/product_factory.rb +18 -34
  165. data/lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb +27 -0
  166. data/lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb +11 -0
  167. data/lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb +16 -0
  168. data/lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb +2 -2
  169. data/lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb +6 -0
  170. data/lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb +11 -3
  171. data/lib/spree_cm_commissioner/test_helper/factories/trip_stop_factory.rb +13 -0
  172. data/lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb +7 -0
  173. data/lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb +41 -19
  174. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb +1 -1
  175. data/lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb +6 -1
  176. data/lib/spree_cm_commissioner/test_helper/factories/vendor_place_factory.rb +13 -1
  177. data/lib/spree_cm_commissioner/transit/leg.rb +37 -0
  178. data/lib/spree_cm_commissioner/transit/seat_selection.rb +27 -0
  179. data/lib/spree_cm_commissioner/trip_query_result.rb +50 -0
  180. data/lib/spree_cm_commissioner/trip_result.rb +19 -10
  181. data/lib/spree_cm_commissioner/version.rb +1 -1
  182. data/lib/spree_cm_commissioner.rb +37 -1
  183. data/lib/tasks/create_default_non_permanent_inventory_items.rake +16 -0
  184. data/lib/tasks/ensure_correct_product_type.rake +7 -0
  185. data/lib/tasks/generate_inventory_items.rake +7 -0
  186. data/spree_cm_commissioner.gemspec +7 -0
  187. metadata +167 -26
  188. data/app/controllers/concerns/spree_cm_commissioner/transit/taxon_bitwise.rb +0 -44
  189. data/app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb +0 -20
  190. data/app/models/spree_cm_commissioner/branch.rb +0 -12
  191. data/app/models/spree_cm_commissioner/line_item_seat.rb +0 -10
  192. data/app/models/spree_cm_commissioner/option_value_vehicle_type.rb +0 -8
  193. data/app/models/spree_cm_commissioner/stop.rb +0 -23
  194. data/app/models/spree_cm_commissioner/vehicle_seat.rb +0 -11
  195. data/app/models/spree_cm_commissioner/vehicle_type.rb +0 -76
  196. data/app/models/spree_cm_commissioner/vendor_stop.rb +0 -10
  197. data/app/queries/spree_cm_commissioner/trip_search_query.rb +0 -76
  198. data/app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb +0 -45
  199. data/app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb +0 -55
  200. data/app/queries/spree_cm_commissioner/vendor_stop_place_query.rb +0 -54
  201. data/app/services/spree_cm_commissioner/vehicle_option_value_creator.rb +0 -11
  202. data/lib/spree_cm_commissioner/test_helper/factories/branch_factory.rb +0 -12
  203. data/lib/spree_cm_commissioner/test_helper/factories/departure_time_option_type_factory.rb +0 -8
  204. data/lib/spree_cm_commissioner/test_helper/factories/duration_option_type_factory.rb +0 -8
  205. data/lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb +0 -7
  206. data/lib/spree_cm_commissioner/test_helper/factories/stop_factory.rb +0 -14
  207. data/lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb +0 -8
  208. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_option_type_factory.rb +0 -8
  209. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_type_factory.rb +0 -96
  210. 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.3.pre.pre4
4
+ version: 2.0.3.pre.pre6
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-11 00:00:00.000000000 Z
11
+ date: 2025-08-18 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
@@ -738,7 +794,6 @@ files:
738
794
  - app/controllers/concerns/spree_cm_commissioner/events/role_authorization.rb
739
795
  - app/controllers/concerns/spree_cm_commissioner/exception_notificable.rb
740
796
  - app/controllers/concerns/spree_cm_commissioner/order_concern.rb
741
- - app/controllers/concerns/spree_cm_commissioner/transit/taxon_bitwise.rb
742
797
  - app/controllers/concerns/spree_cm_commissioner/waiting_room_authorization.rb
743
798
  - app/controllers/spree/admin/account_deletions_controller.rb
744
799
  - app/controllers/spree/admin/base_controller_decorator.rb
@@ -765,6 +820,7 @@ files:
765
820
  - app/controllers/spree/admin/id_cards_controller.rb
766
821
  - app/controllers/spree/admin/import_existing_orders_controller.rb
767
822
  - app/controllers/spree/admin/import_new_orders_controller.rb
823
+ - app/controllers/spree/admin/inventory_items_controller.rb
768
824
  - app/controllers/spree/admin/kyc_controller.rb
769
825
  - app/controllers/spree/admin/line_items_controller.rb
770
826
  - app/controllers/spree/admin/master_variant_controller.rb
@@ -837,6 +893,7 @@ files:
837
893
  - app/controllers/spree/api/v2/platform/seat_number_layouts_controller.rb
838
894
  - app/controllers/spree/api/v2/platform/taxons_controller_decorator.rb
839
895
  - app/controllers/spree/api/v2/resource_controller_decorator.rb
896
+ - app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb
840
897
  - app/controllers/spree/api/v2/storefront/accommodations_controller.rb
841
898
  - app/controllers/spree/api/v2/storefront/account/orders_controller_decorator.rb
842
899
  - app/controllers/spree/api/v2/storefront/account/preferred_payment_method_controller.rb
@@ -884,6 +941,8 @@ files:
884
941
  - app/controllers/spree/api/v2/storefront/reset_passwords_controller.rb
885
942
  - app/controllers/spree/api/v2/storefront/s3_signed_urls_controller.rb
886
943
  - app/controllers/spree/api/v2/storefront/self_check_in_controller.rb
944
+ - app/controllers/spree/api/v2/storefront/trip_places_controller.rb
945
+ - app/controllers/spree/api/v2/storefront/trip_search_controller.rb
887
946
  - app/controllers/spree/api/v2/storefront/user_account_linkages_controller.rb
888
947
  - app/controllers/spree/api/v2/storefront/user_contacts_controller.rb
889
948
  - app/controllers/spree/api/v2/storefront/user_deletion_reasons_controller.rb
@@ -1014,7 +1073,8 @@ files:
1014
1073
  - app/factory/spree_cm_commissioner/invite_guest_claimed_telegram_message_factory.rb
1015
1074
  - app/factory/spree_cm_commissioner/order_telegram_message_factory.rb
1016
1075
  - app/factory/spree_cm_commissioner/telegram_message_factory.rb
1017
- - app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb
1076
+ - app/finders/spree_cm_commissioner/accommodations/find.rb
1077
+ - app/finders/spree_cm_commissioner/accommodations/find_variant.rb
1018
1078
  - app/finders/spree_cm_commissioner/orders/find.rb
1019
1079
  - app/finders/spree_cm_commissioner/orders/find_by_state.rb
1020
1080
  - app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
@@ -1066,6 +1126,7 @@ files:
1066
1126
  - app/interactors/spree_cm_commissioner/customer_promotion_creator.rb
1067
1127
  - app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb
1068
1128
  - app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb
1129
+ - app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb
1069
1130
  - app/interactors/spree_cm_commissioner/event_line_items_date_syncer.rb
1070
1131
  - app/interactors/spree_cm_commissioner/event_qr_generator.rb
1071
1132
  - app/interactors/spree_cm_commissioner/existing_account_checker.rb
@@ -1081,6 +1142,7 @@ files:
1081
1142
  - app/interactors/spree_cm_commissioner/imported_csv_downloader.rb
1082
1143
  - app/interactors/spree_cm_commissioner/international_mobile_formatter.rb
1083
1144
  - app/interactors/spree_cm_commissioner/invalidate_cache_request.rb
1145
+ - app/interactors/spree_cm_commissioner/inventory_item_syncer.rb
1084
1146
  - app/interactors/spree_cm_commissioner/invoice_creator.rb
1085
1147
  - app/interactors/spree_cm_commissioner/media/signed_cookie_generator.rb
1086
1148
  - app/interactors/spree_cm_commissioner/media/signed_path_generator.rb
@@ -1116,9 +1178,15 @@ files:
1116
1178
  - app/interactors/spree_cm_commissioner/sms.rb
1117
1179
  - app/interactors/spree_cm_commissioner/sqs/media_convert_job_status.rb
1118
1180
  - app/interactors/spree_cm_commissioner/state_updater.rb
1181
+ - app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb
1182
+ - app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb
1183
+ - app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb
1184
+ - app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb
1185
+ - app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb
1119
1186
  - app/interactors/spree_cm_commissioner/subscriptions_order_creator.rb
1120
1187
  - app/interactors/spree_cm_commissioner/subscriptions_order_cron_executor.rb
1121
1188
  - app/interactors/spree_cm_commissioner/subscriptions_prepaid_order_creator.rb
1189
+ - app/interactors/spree_cm_commissioner/taxi_trip_creator.rb
1122
1190
  - app/interactors/spree_cm_commissioner/telegram_chats_auto_finder.rb
1123
1191
  - app/interactors/spree_cm_commissioner/telegram_chats_finder.rb
1124
1192
  - app/interactors/spree_cm_commissioner/telegram_debug_pin_code_sender.rb
@@ -1128,6 +1196,7 @@ files:
1128
1196
  - app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_authorizer.rb
1129
1197
  - app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_checker.rb
1130
1198
  - app/interactors/spree_cm_commissioner/transactional_email_sender.rb
1199
+ - app/interactors/spree_cm_commissioner/transit/draft_order_creator.rb
1131
1200
  - app/interactors/spree_cm_commissioner/unique_device_token_cron_executor.rb
1132
1201
  - app/interactors/spree_cm_commissioner/update_payment_gateway_status.rb
1133
1202
  - app/interactors/spree_cm_commissioner/user_contact_updater.rb
@@ -1143,7 +1212,9 @@ files:
1143
1212
  - app/interactors/spree_cm_commissioner/user_registration_with_id_token.rb
1144
1213
  - app/interactors/spree_cm_commissioner/user_telegram_web_app_authenticator.rb
1145
1214
  - app/interactors/spree_cm_commissioner/user_vattanac_bank_web_app_authenticator.rb
1215
+ - app/interactors/spree_cm_commissioner/variant_block_updater.rb
1146
1216
  - app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb
1217
+ - app/interactors/spree_cm_commissioner/vehicle_updater.rb
1147
1218
  - app/interactors/spree_cm_commissioner/vendor_nearby_place_builder.rb
1148
1219
  - app/interactors/spree_cm_commissioner/vendor_updater.rb
1149
1220
  - app/interactors/spree_cm_commissioner/video_on_demand_creator.rb
@@ -1165,6 +1236,7 @@ files:
1165
1236
  - app/jobs/spree_cm_commissioner/customer_notification_cron_job.rb
1166
1237
  - app/jobs/spree_cm_commissioner/customer_notification_sender_job.rb
1167
1238
  - app/jobs/spree_cm_commissioner/enqueue_cart/add_item_job.rb
1239
+ - app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb
1168
1240
  - app/jobs/spree_cm_commissioner/ensure_event_for_product_line_item_guests_job.rb
1169
1241
  - app/jobs/spree_cm_commissioner/ensure_event_id_for_guests_job.rb
1170
1242
  - app/jobs/spree_cm_commissioner/event_line_items_date_syncer_job.rb
@@ -1172,6 +1244,7 @@ files:
1172
1244
  - app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
1173
1245
  - app/jobs/spree_cm_commissioner/import_order_job.rb
1174
1246
  - app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
1247
+ - app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
1175
1248
  - app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
1176
1249
  - app/jobs/spree_cm_commissioner/option_value_variants_public_metadata_updater_job.rb
1177
1250
  - app/jobs/spree_cm_commissioner/order_complete_telegram_sender_job.rb
@@ -1181,6 +1254,9 @@ files:
1181
1254
  - app/jobs/spree_cm_commissioner/sms_job.rb
1182
1255
  - app/jobs/spree_cm_commissioner/sms_pin_code_job.rb
1183
1256
  - app/jobs/spree_cm_commissioner/state_job.rb
1257
+ - app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb
1258
+ - app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb
1259
+ - app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb
1184
1260
  - app/jobs/spree_cm_commissioner/subscription_order_executor_job.rb
1185
1261
  - app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
1186
1262
  - app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
@@ -1205,10 +1281,12 @@ files:
1205
1281
  - app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
1206
1282
  - app/models/concerns/spree_cm_commissioner/line_item_durationable.rb
1207
1283
  - app/models/concerns/spree_cm_commissioner/line_item_guests_concern.rb
1284
+ - app/models/concerns/spree_cm_commissioner/line_item_transitable.rb
1208
1285
  - app/models/concerns/spree_cm_commissioner/line_items_filter_scope.rb
1209
1286
  - app/models/concerns/spree_cm_commissioner/metafield.rb
1210
1287
  - app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb
1211
1288
  - app/models/concerns/spree_cm_commissioner/option_value_attr_type.rb
1289
+ - app/models/concerns/spree_cm_commissioner/order_seatable.rb
1212
1290
  - app/models/concerns/spree_cm_commissioner/order_state_machine.rb
1213
1291
  - app/models/concerns/spree_cm_commissioner/parameterize_name.rb
1214
1292
  - app/models/concerns/spree_cm_commissioner/participation_type_bitwise.rb
@@ -1225,6 +1303,7 @@ files:
1225
1303
  - app/models/concerns/spree_cm_commissioner/user_notification.rb
1226
1304
  - app/models/concerns/spree_cm_commissioner/user_preference.rb
1227
1305
  - app/models/concerns/spree_cm_commissioner/variant_options_concern.rb
1306
+ - app/models/concerns/spree_cm_commissioner/vehicle_type.rb
1228
1307
  - app/models/concerns/spree_cm_commissioner/vendor_preference.rb
1229
1308
  - app/models/concerns/spree_cm_commissioner/vendor_promotable.rb
1230
1309
  - app/models/concerns/spree_cm_commissioner/video_on_demand_bitwise.rb
@@ -1237,7 +1316,7 @@ files:
1237
1316
  - app/models/spree_cm_commissioner/back_image.rb
1238
1317
  - app/models/spree_cm_commissioner/base.rb
1239
1318
  - app/models/spree_cm_commissioner/blazer_queryable.rb
1240
- - app/models/spree_cm_commissioner/branch.rb
1319
+ - app/models/spree_cm_commissioner/block.rb
1241
1320
  - app/models/spree_cm_commissioner/check_in.rb
1242
1321
  - app/models/spree_cm_commissioner/check_in_ability.rb
1243
1322
  - app/models/spree_cm_commissioner/check_in_record.rb
@@ -1286,6 +1365,8 @@ files:
1286
1365
  - app/models/spree_cm_commissioner/image_methods_decorator.rb
1287
1366
  - app/models/spree_cm_commissioner/import.rb
1288
1367
  - app/models/spree_cm_commissioner/imports/import_order.rb
1368
+ - app/models/spree_cm_commissioner/inventory.rb
1369
+ - app/models/spree_cm_commissioner/inventory_item.rb
1289
1370
  - app/models/spree_cm_commissioner/invite.rb
1290
1371
  - app/models/spree_cm_commissioner/invite_guest.rb
1291
1372
  - app/models/spree_cm_commissioner/invite_team.rb
@@ -1293,7 +1374,6 @@ files:
1293
1374
  - app/models/spree_cm_commissioner/invite_user_taxon.rb
1294
1375
  - app/models/spree_cm_commissioner/invoice.rb
1295
1376
  - app/models/spree_cm_commissioner/line_item_decorator.rb
1296
- - app/models/spree_cm_commissioner/line_item_seat.rb
1297
1377
  - app/models/spree_cm_commissioner/notification.rb
1298
1378
  - app/models/spree_cm_commissioner/notification_taxon.rb
1299
1379
  - app/models/spree_cm_commissioner/oauth_access_token_decorator.rb
@@ -1301,7 +1381,6 @@ files:
1301
1381
  - app/models/spree_cm_commissioner/option_type_decorator.rb
1302
1382
  - app/models/spree_cm_commissioner/option_value_decorator.rb
1303
1383
  - app/models/spree_cm_commissioner/option_value_vehicle.rb
1304
- - app/models/spree_cm_commissioner/option_value_vehicle_type.rb
1305
1384
  - app/models/spree_cm_commissioner/option_value_vendor.rb
1306
1385
  - app/models/spree_cm_commissioner/order/address_book_decorator.rb
1307
1386
  - app/models/spree_cm_commissioner/order_decorator.rb
@@ -1320,6 +1399,7 @@ files:
1320
1399
  - app/models/spree_cm_commissioner/pin_code_telegram.rb
1321
1400
  - app/models/spree_cm_commissioner/pin_code_update_user_login.rb
1322
1401
  - app/models/spree_cm_commissioner/place.rb
1402
+ - app/models/spree_cm_commissioner/price_decorator.rb
1323
1403
  - app/models/spree_cm_commissioner/product_completion_step.rb
1324
1404
  - app/models/spree_cm_commissioner/product_completion_steps/chatrace_telegram.rb
1325
1405
  - app/models/spree_cm_commissioner/product_decorator.rb
@@ -1341,10 +1421,25 @@ files:
1341
1421
  - app/models/spree_cm_commissioner/promotion_decorator.rb
1342
1422
  - app/models/spree_cm_commissioner/property_decorator.rb
1343
1423
  - app/models/spree_cm_commissioner/prototype_decorator.rb
1424
+ - app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb
1425
+ - app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb
1426
+ - app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb
1427
+ - app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb
1428
+ - app/models/spree_cm_commissioner/reserved_block.rb
1344
1429
  - app/models/spree_cm_commissioner/role_decorator.rb
1345
1430
  - app/models/spree_cm_commissioner/role_permission.rb
1346
1431
  - app/models/spree_cm_commissioner/s3_presigned_url.rb
1347
1432
  - app/models/spree_cm_commissioner/s3_presigned_url_builder.rb
1433
+ - app/models/spree_cm_commissioner/saved_guest.rb
1434
+ - app/models/spree_cm_commissioner/seat_layout.rb
1435
+ - app/models/spree_cm_commissioner/seat_section.rb
1436
+ - app/models/spree_cm_commissioner/seats/blocks_canceler.rb
1437
+ - app/models/spree_cm_commissioner/seats/blocks_holder.rb
1438
+ - app/models/spree_cm_commissioner/seats/blocks_reserver.rb
1439
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_on_hold_by_other_guest.rb
1440
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_other_guest.rb
1441
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_same_guest.rb
1442
+ - app/models/spree_cm_commissioner/seats/errors/unable_to_save_reserved_block_record.rb
1348
1443
  - app/models/spree_cm_commissioner/service_calendar.rb
1349
1444
  - app/models/spree_cm_commissioner/sms_log.rb
1350
1445
  - app/models/spree_cm_commissioner/state_change_decorator.rb
@@ -1353,9 +1448,9 @@ files:
1353
1448
  - app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb
1354
1449
  - app/models/spree_cm_commissioner/stock/inventory_unit_builder_decorator.rb
1355
1450
  - app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb
1451
+ - app/models/spree_cm_commissioner/stock/order_availability_checker.rb
1356
1452
  - app/models/spree_cm_commissioner/stock_item_decorator.rb
1357
1453
  - app/models/spree_cm_commissioner/stock_location_decorator.rb
1358
- - app/models/spree_cm_commissioner/stop.rb
1359
1454
  - app/models/spree_cm_commissioner/store_decorator.rb
1360
1455
  - app/models/spree_cm_commissioner/subscription.rb
1361
1456
  - app/models/spree_cm_commissioner/taxon_app_banner.rb
@@ -1385,6 +1480,7 @@ files:
1385
1480
  - app/models/spree_cm_commissioner/user_place.rb
1386
1481
  - app/models/spree_cm_commissioner/user_profile.rb
1387
1482
  - app/models/spree_cm_commissioner/user_taxon.rb
1483
+ - app/models/spree_cm_commissioner/variant_block.rb
1388
1484
  - app/models/spree_cm_commissioner/variant_decorator.rb
1389
1485
  - app/models/spree_cm_commissioner/variant_guest_card_class.rb
1390
1486
  - app/models/spree_cm_commissioner/variant_options.rb
@@ -1392,8 +1488,6 @@ files:
1392
1488
  - app/models/spree_cm_commissioner/vehicle.rb
1393
1489
  - app/models/spree_cm_commissioner/vehicle_option_type.rb
1394
1490
  - app/models/spree_cm_commissioner/vehicle_photo.rb
1395
- - app/models/spree_cm_commissioner/vehicle_seat.rb
1396
- - app/models/spree_cm_commissioner/vehicle_type.rb
1397
1491
  - app/models/spree_cm_commissioner/vendor_app_promotion_banner.rb
1398
1492
  - app/models/spree_cm_commissioner/vendor_decorator.rb
1399
1493
  - app/models/spree_cm_commissioner/vendor_logo.rb
@@ -1402,7 +1496,6 @@ files:
1402
1496
  - app/models/spree_cm_commissioner/vendor_photo.rb
1403
1497
  - app/models/spree_cm_commissioner/vendor_place.rb
1404
1498
  - app/models/spree_cm_commissioner/vendor_promotion_rule.rb
1405
- - app/models/spree_cm_commissioner/vendor_stop.rb
1406
1499
  - app/models/spree_cm_commissioner/vendor_web_promotion_banner.rb
1407
1500
  - app/models/spree_cm_commissioner/video.rb
1408
1501
  - app/models/spree_cm_commissioner/video_on_demand.rb
@@ -1449,6 +1542,7 @@ files:
1449
1542
  - app/overrides/spree/admin/products/_form/allow_self_check_in.html.erb.deface
1450
1543
  - app/overrides/spree/admin/products/_form/available_on.html.erb.deface
1451
1544
  - app/overrides/spree/admin/products/_form/discontinue_on.html.erb.deface
1545
+ - app/overrides/spree/admin/products/_form/industry_taxons.html.erb.deface
1452
1546
  - app/overrides/spree/admin/products/_form/need_confirmation_checkbox.html.erb.deface
1453
1547
  - app/overrides/spree/admin/products/_form/option_types.html.erb.deface
1454
1548
  - app/overrides/spree/admin/products/_form/product_types.html.erb.deface
@@ -1457,6 +1551,7 @@ files:
1457
1551
  - app/overrides/spree/admin/products/_form/required_self_check_in_location.html.erb.deface
1458
1552
  - app/overrides/spree/admin/products/_form/reveal_description_to_user.html.erb.deface
1459
1553
  - app/overrides/spree/admin/products/_form/subscribable_checkbox.html.erb.deface
1554
+ - app/overrides/spree/admin/products/_form/taxons.html.erb.deface
1460
1555
  - app/overrides/spree/admin/products/_form/use_video_as_default.html.erb.deface
1461
1556
  - app/overrides/spree/admin/products/edit/clear_cache_button.html.erb.deface
1462
1557
  - app/overrides/spree/admin/products/index/product_vendor_link.html.erb.deface
@@ -1565,17 +1660,15 @@ files:
1565
1660
  - app/queries/spree_cm_commissioner/subscription_revenue_overview_query.rb
1566
1661
  - app/queries/spree_cm_commissioner/tickets_searcher_query.rb
1567
1662
  - app/queries/spree_cm_commissioner/trip_query.rb
1568
- - app/queries/spree_cm_commissioner/trip_search_query.rb
1569
1663
  - app/queries/spree_cm_commissioner/trip_seat_layout_query.rb
1570
1664
  - app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
1571
- - app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb
1572
- - app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb
1573
- - app/queries/spree_cm_commissioner/vendor_stop_place_query.rb
1574
1665
  - app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
1575
1666
  - app/request_schemas/spree_cm_commissioner/application_request_schema.rb
1576
1667
  - app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
1668
+ - app/request_schemas/spree_cm_commissioner/trip_search_request_schema.rb
1577
1669
  - app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
1578
1670
  - app/request_schemas/spree_cm_commissioner/user_profile_request_schema.rb
1671
+ - app/request_schemas/spree_cm_commissioner/variant_request_schema.rb
1579
1672
  - app/serializables/spree_cm_commissioner/event_chart.rb
1580
1673
  - app/serializables/spree_cm_commissioner/event_ticket_aggregator.rb
1581
1674
  - app/serializables/spree_cm_commissioner/pie_chart_event_aggregator.rb
@@ -1596,6 +1689,7 @@ files:
1596
1689
  - app/serializers/spree/v2/storefront/accommodation_serializer.rb
1597
1690
  - app/serializers/spree/v2/storefront/active_homepage_event_serializer.rb
1598
1691
  - app/serializers/spree/v2/storefront/address_serializer_decorator.rb
1692
+ - app/serializers/spree/v2/storefront/amenity_serializer.rb
1599
1693
  - app/serializers/spree/v2/storefront/cart_serializer_decorator.rb
1600
1694
  - app/serializers/spree/v2/storefront/customer_notification_serializer.rb
1601
1695
  - app/serializers/spree/v2/storefront/firestore_queue_serializer.rb
@@ -1614,6 +1708,11 @@ files:
1614
1708
  - app/serializers/spree/v2/storefront/stock_location_serializer_decorator.rb
1615
1709
  - app/serializers/spree/v2/storefront/store_promotion_serializer.rb
1616
1710
  - app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb
1711
+ - app/serializers/spree/v2/storefront/trip_place_serializer.rb
1712
+ - app/serializers/spree/v2/storefront/trip_query_result_serializer.rb
1713
+ - app/serializers/spree/v2/storefront/trip_result_serializer.rb
1714
+ - app/serializers/spree/v2/storefront/trip_vehicle_serializer.rb
1715
+ - app/serializers/spree/v2/storefront/trip_vendor_serializer.rb
1617
1716
  - app/serializers/spree/v2/storefront/user_deletion_reason_serializer.rb
1618
1717
  - app/serializers/spree/v2/storefront/user_device_token_serializer.rb
1619
1718
  - app/serializers/spree/v2/storefront/user_profile_serializer.rb
@@ -1761,7 +1860,6 @@ files:
1761
1860
  - app/services/spree_cm_commissioner/seeds/roles_decorator.rb
1762
1861
  - app/services/spree_cm_commissioner/user_authenticator.rb
1763
1862
  - app/services/spree_cm_commissioner/user_roles_assigner.rb
1764
- - app/services/spree_cm_commissioner/vehicle_option_value_creator.rb
1765
1863
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
1766
1864
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
1767
1865
  - app/services/spree_cm_commissioner/webhooks/subscribers/handle_request_decorator.rb
@@ -1854,6 +1952,7 @@ files:
1854
1952
  - app/views/spree/admin/import_new_orders/index.html.erb
1855
1953
  - app/views/spree/admin/import_new_orders/new.html.erb
1856
1954
  - app/views/spree/admin/import_new_orders/show.html.erb
1955
+ - app/views/spree/admin/inventory_items/show.html.erb
1857
1956
  - app/views/spree/admin/kyc/_form.html.erb
1858
1957
  - app/views/spree/admin/kyc/edit.html.erb
1859
1958
  - app/views/spree/admin/line_items/_form.html.erb
@@ -1915,6 +2014,7 @@ files:
1915
2014
  - app/views/spree/admin/shared/sub_menu/_calendar.html.erb
1916
2015
  - app/views/spree/admin/shared/sub_menu/_homepage.html.erb
1917
2016
  - app/views/spree/admin/stock_managements/_variant_stock_items.html.erb
2017
+ - app/views/spree/admin/stock_managements/calendar.html.erb
1918
2018
  - app/views/spree/admin/stock_managements/index.html.erb
1919
2019
  - app/views/spree/admin/system/show.html.erb
1920
2020
  - app/views/spree/admin/taxon_childrens/index.html.erb
@@ -2211,6 +2311,7 @@ files:
2211
2311
  - config/initializers/doorkeeper.rb
2212
2312
  - config/initializers/exception_notification.rb
2213
2313
  - config/initializers/google_map.rb
2314
+ - config/initializers/paper_trail.rb
2214
2315
  - config/initializers/phonelib.rb
2215
2316
  - config/initializers/premailer_rails.rb
2216
2317
  - config/initializers/recaptcha_enterprise.rb
@@ -2477,6 +2578,7 @@ files:
2477
2578
  - db/migrate/20241219070959_add_page_path_to_cm_waiting_room_sessions.rb
2478
2579
  - db/migrate/20250116081414_remove_active_from_homepage_sections_relatables.rb
2479
2580
  - db/migrate/20250117092553_add_available_on_and_discontinue_on_to_homepage_section_relatables.rb
2581
+ - db/migrate/20250122000000_move_route_type_from_vehicles_to_trips.rb
2480
2582
  - db/migrate/20250122083010_create_cm_tenants.rb
2481
2583
  - db/migrate/20250122084511_add_tenant_id_to_spree_vendors.rb
2482
2584
  - db/migrate/20250123162946_add_tenant_id_to_spree_oauth_applications.rb
@@ -2495,6 +2597,7 @@ files:
2495
2597
  - db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb
2496
2598
  - db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb
2497
2599
  - db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
2600
+ - db/migrate/20250304293518_create_cm_inventory_items.rb
2498
2601
  - db/migrate/20250307013422_add_parent_id_to_cm_place.rb
2499
2602
  - db/migrate/20250307073003_add_tenant_id_to_cm_customer_notifications.rb
2500
2603
  - db/migrate/20250307083809_remove_tenant_id_from_cm_notifications.rb
@@ -2515,8 +2618,12 @@ files:
2515
2618
  - db/migrate/20250425084929_add_description_to_spree_prototypes.rb
2516
2619
  - db/migrate/20250425085938_add_preferences_to_spree_prototypes.rb
2517
2620
  - db/migrate/20250428025645_add_slug_to_spree_prototypes.rb
2621
+ - db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb
2518
2622
  - db/migrate/20250430091742_create_cm_taxon_option_types.rb
2519
2623
  - db/migrate/20250430092928_create_cm_taxon_option_values.rb
2624
+ - db/migrate/20250502025848_add_index_to_spree_products.rb
2625
+ - db/migrate/20250502030001_add_product_type_to_spree_variants.rb
2626
+ - db/migrate/20250502030002_add_product_type_to_spree_line_items.rb
2520
2627
  - db/migrate/20250506092929_add_trip_count_to_cm_vendor_stops.rb
2521
2628
  - db/migrate/20250509033437_create_spree_cm_commissioner_transactional_emails.rb
2522
2629
  - db/migrate/20250509075429_add_max_order_quantity_to_spree_product.rb
@@ -2533,6 +2640,7 @@ files:
2533
2640
  - db/migrate/20250531074036_create_spree_cm_commissioner_option_value_vehicle.rb
2534
2641
  - db/migrate/20250531074258_create_spree_cm_commissioner_vehicle_option_types.rb
2535
2642
  - db/migrate/20250602094751_add_host_to_cm_tenants.rb
2643
+ - db/migrate/20250603035256_add_inventory_item_to_spree_prices.rb
2536
2644
  - db/migrate/20250605024523_add_participation_type_to_spree_taxon.rb
2537
2645
  - db/migrate/20250606020914_create_cm_dynamic_fields.rb
2538
2646
  - db/migrate/20250606020958_create_cm_guest_dynamic_fields.rb
@@ -2543,6 +2651,21 @@ files:
2543
2651
  - db/migrate/20250611023548_add_country_code_to_guests.rb
2544
2652
  - db/migrate/20250612035937_add_intel_phone_number_to_guests.rb
2545
2653
  - db/migrate/20250616084219_add_description_to_cm_vendor_place.rb
2654
+ - db/migrate/20250619073724_drop_table_cm_line_item_seats.rb
2655
+ - db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb
2656
+ - db/migrate/20250619073844_drop_table_cm_vehicle_types.rb
2657
+ - db/migrate/20250619073957_drop_table_cm_option_value_vehicle_types.rb
2658
+ - db/migrate/20250619082354_remove_unnecessary_fields_from_cm_places.rb
2659
+ - db/migrate/20250619082736_remove_route_type_from_spree_products.rb
2660
+ - db/migrate/20250619083055_remove_unnecessary_fields_from_spree_taxons.rb
2661
+ - db/migrate/20250620083055_remove_variant_id_from_cm_trips.rb
2662
+ - db/migrate/20250620090000_update_cm_trip_connections_to_use_cm_trips.rb
2663
+ - db/migrate/20250620090001_create_cm_seat_layouts.rb
2664
+ - db/migrate/20250620090002_create_cm_seat_sections.rb
2665
+ - db/migrate/20250620090003_create_cm_blocks.rb
2666
+ - db/migrate/20250624091005_create_cm_reserved_blocks.rb
2667
+ - db/migrate/20250626083642_create_cm_variant_blocks.rb
2668
+ - db/migrate/20250627023314_add_block_id_to_cm_guests.rb
2546
2669
  - db/migrate/20250630103536_create_cm_telegram_chats.rb
2547
2670
  - db/migrate/20250701093203_add_configurations_to_cm_dynamic_field.rb
2548
2671
  - db/migrate/20250702091305_add_dynamic_field_option_to_guest_dynamic_field.rb
@@ -2555,7 +2678,20 @@ files:
2555
2678
  - db/migrate/20250714121508_rename_cm_taxon_blazer_query_to_blazer_queryables.rb
2556
2679
  - db/migrate/20250714124323_make_cm_blazer_queryables_polymorphic.rb
2557
2680
  - db/migrate/20250715103333_remove_indexes_from_cm_user_identity_providers.rb
2681
+ - db/migrate/20250716022821_add_location_reference_to_cm_vendor_places.rb
2682
+ - db/migrate/20250716031743_drop_table_cm_vendor_stops.rb
2683
+ - db/migrate/20250717023824_add_vendor_reference_to_cm_trips.rb
2684
+ - db/migrate/20250717041414_add_location_place_reference_to_cm_trip_stops.rb
2685
+ - db/migrate/20250717042539_rename_cm_trip_stops_stop_id_column_to_stop_place_id.rb
2686
+ - db/migrate/20250717042707_rename_cm_trips_origin_and_destination_to_origin_place_and_destination_place.rb
2558
2687
  - db/migrate/20250718071620_add_data_fill_stage_to_dynamic_fields.rb
2688
+ - db/migrate/20250721080738_add_vehicle_type_to_cm_vehicles.rb
2689
+ - db/migrate/20250725092713_add_block_type_to_cm_blocks.rb
2690
+ - db/migrate/20250731062816_add_departure_time_and_arrival_time_to_trip_stop.rb
2691
+ - db/migrate/20250807033035_create_spree_cm_commissioner_saved_guests.rb
2692
+ - db/migrate/20250808054835_add_saved_guest_reference_to_cm_blocks.rb
2693
+ - db/migrate/20250812015522_remove_unique_indexes_from_cm_user_identity_providers.rb
2694
+ - db/migrate/20250814073854_add_call_to_action_to_spree_products.rb
2559
2695
  - docker-compose.yml
2560
2696
  - docs/option_types/attr_types.md
2561
2697
  - docs/private_key.pem
@@ -2570,11 +2706,12 @@ files:
2570
2706
  - docs/webhook/sqs/params_job_submitted.json
2571
2707
  - lib/cm_app_logger.rb
2572
2708
  - lib/generators/spree_cm_commissioner/install/install_generator.rb
2573
- - lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_cm_commissioner/utilities.js
2709
+ - lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_dashboard/spree_cm_commissioner/utilities.js
2574
2710
  - lib/generators/spree_cm_commissioner/install/templates/config/data/nationalities.yml
2575
2711
  - lib/generators/spree_cm_commissioner/install/templates/vendor/assets/javascript/spree_cm_commissioner/telegram/all.js
2576
2712
  - lib/generators/spree_cm_commissioner/install/templates/vendor/assets/stylesheets/spree_cm_commissioner/telegram/all.css
2577
2713
  - lib/spree_cm_commissioner.rb
2714
+ - lib/spree_cm_commissioner/cached_inventory_item.rb
2578
2715
  - lib/spree_cm_commissioner/calendar_event.rb
2579
2716
  - lib/spree_cm_commissioner/engine.rb
2580
2717
  - lib/spree_cm_commissioner/factories.rb
@@ -2588,16 +2725,14 @@ files:
2588
2725
  - lib/spree_cm_commissioner/test_helper/factories/asset_factory.rb
2589
2726
  - lib/spree_cm_commissioner/test_helper/factories/back_image_factory.rb
2590
2727
  - lib/spree_cm_commissioner/test_helper/factories/blazer_query_factory.rb
2591
- - lib/spree_cm_commissioner/test_helper/factories/branch_factory.rb
2728
+ - lib/spree_cm_commissioner/test_helper/factories/block_factory.rb
2592
2729
  - lib/spree_cm_commissioner/test_helper/factories/check_in_factory.rb
2593
2730
  - lib/spree_cm_commissioner/test_helper/factories/cms_page_factory.rb
2594
2731
  - lib/spree_cm_commissioner/test_helper/factories/country_factory.rb
2595
2732
  - lib/spree_cm_commissioner/test_helper/factories/customer_factory.rb
2596
2733
  - lib/spree_cm_commissioner/test_helper/factories/customer_notification_factory.rb
2597
2734
  - lib/spree_cm_commissioner/test_helper/factories/customers_taxons_factory.rb
2598
- - lib/spree_cm_commissioner/test_helper/factories/departure_time_option_type_factory.rb
2599
2735
  - lib/spree_cm_commissioner/test_helper/factories/device_token_factory.rb
2600
- - lib/spree_cm_commissioner/test_helper/factories/duration_option_type_factory.rb
2601
2736
  - lib/spree_cm_commissioner/test_helper/factories/export_guest_csv_factory.rb
2602
2737
  - lib/spree_cm_commissioner/test_helper/factories/front_image_factory.rb
2603
2738
  - lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb
@@ -2611,11 +2746,11 @@ files:
2611
2746
  - lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
2612
2747
  - lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
2613
2748
  - lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
2749
+ - lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb
2614
2750
  - lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
2615
2751
  - lib/spree_cm_commissioner/test_helper/factories/invite_guests_factory.rb
2616
2752
  - lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
2617
2753
  - lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb
2618
- - lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb
2619
2754
  - lib/spree_cm_commissioner/test_helper/factories/notification_factory.rb
2620
2755
  - lib/spree_cm_commissioner/test_helper/factories/notification_taxons_factory.rb
2621
2756
  - lib/spree_cm_commissioner/test_helper/factories/oauth_access_token_factory.rb
@@ -2631,13 +2766,15 @@ files:
2631
2766
  - lib/spree_cm_commissioner/test_helper/factories/product_factory.rb
2632
2767
  - lib/spree_cm_commissioner/test_helper/factories/products_taxons_factory.rb
2633
2768
  - lib/spree_cm_commissioner/test_helper/factories/promotion_factory.rb
2769
+ - lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb
2634
2770
  - lib/spree_cm_commissioner/test_helper/factories/role.rb
2635
2771
  - lib/spree_cm_commissioner/test_helper/factories/role_permission_factory.rb
2772
+ - lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb
2773
+ - lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb
2636
2774
  - lib/spree_cm_commissioner/test_helper/factories/service_calendar_factory.rb
2637
2775
  - lib/spree_cm_commissioner/test_helper/factories/sms_logs.rb
2638
2776
  - lib/spree_cm_commissioner/test_helper/factories/state_factory.rb
2639
2777
  - lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb
2640
- - lib/spree_cm_commissioner/test_helper/factories/stop_factory.rb
2641
2778
  - lib/spree_cm_commissioner/test_helper/factories/subscription_factory.rb
2642
2779
  - lib/spree_cm_commissioner/test_helper/factories/taxon_brand_logo_factory.rb
2643
2780
  - lib/spree_cm_commissioner/test_helper/factories/taxon_category_icon.rb
@@ -2647,16 +2784,16 @@ files:
2647
2784
  - lib/spree_cm_commissioner/test_helper/factories/telegram_bot_factory.rb
2648
2785
  - lib/spree_cm_commissioner/test_helper/factories/tenant_factory.rb
2649
2786
  - lib/spree_cm_commissioner/test_helper/factories/transactional_email_factory.rb
2650
- - lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb
2787
+ - lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb
2651
2788
  - lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb
2789
+ - lib/spree_cm_commissioner/test_helper/factories/trip_stop_factory.rb
2652
2790
  - lib/spree_cm_commissioner/test_helper/factories/user_deletion_reasons_factory.rb
2653
2791
  - lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb
2654
2792
  - lib/spree_cm_commissioner/test_helper/factories/user_factory.rb
2655
2793
  - lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb
2794
+ - lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb
2656
2795
  - lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb
2657
2796
  - lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb
2658
- - lib/spree_cm_commissioner/test_helper/factories/vehicle_option_type_factory.rb
2659
- - lib/spree_cm_commissioner/test_helper/factories/vehicle_type_factory.rb
2660
2797
  - lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb
2661
2798
  - lib/spree_cm_commissioner/test_helper/factories/vendor_logo_factory.rb
2662
2799
  - lib/spree_cm_commissioner/test_helper/factories/vendor_photo_factory.rb
@@ -2664,16 +2801,20 @@ files:
2664
2801
  - lib/spree_cm_commissioner/test_helper/factories/video_on_demand_factory.rb
2665
2802
  - lib/spree_cm_commissioner/test_helper/factories/webhook_subscriber_factory.rb
2666
2803
  - lib/spree_cm_commissioner/test_helper/factories/webhook_subscriber_rule_factory.rb
2804
+ - lib/spree_cm_commissioner/transit/leg.rb
2805
+ - lib/spree_cm_commissioner/transit/seat_selection.rb
2667
2806
  - lib/spree_cm_commissioner/trip_query_result.rb
2668
2807
  - lib/spree_cm_commissioner/trip_result.rb
2669
- - lib/spree_cm_commissioner/trip_seat_layout_result.rb
2670
2808
  - lib/spree_cm_commissioner/user_session_jwt_token.rb
2671
2809
  - lib/spree_cm_commissioner/version.rb
2810
+ - lib/tasks/create_default_non_permanent_inventory_items.rake
2672
2811
  - lib/tasks/customer_notification_cron_scheduler.rake
2812
+ - lib/tasks/ensure_correct_product_type.rake
2673
2813
  - lib/tasks/ensure_event_for_guests.rake
2674
2814
  - lib/tasks/ensure_event_for_product_line_item_guests.rake
2675
2815
  - lib/tasks/ensure_number_for_line_items.rake
2676
2816
  - lib/tasks/fetch_email.rake
2817
+ - lib/tasks/generate_inventory_items.rake
2677
2818
  - lib/tasks/kh_location_option_values.rake
2678
2819
  - lib/tasks/kh_provinces.rake
2679
2820
  - lib/tasks/migrate_and_rebuild_place_hierarchy.rake
@@ -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