spree_cm_commissioner 2.0.3.pre.pre1 → 2.0.3.pre.pre3

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 (192) 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_search_controller.rb +60 -0
  13. data/app/finders/spree_cm_commissioner/accommodations/find.rb +37 -0
  14. data/app/finders/spree_cm_commissioner/accommodations/find_variant.rb +32 -0
  15. data/app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb +40 -0
  16. data/app/interactors/spree_cm_commissioner/inventory_item_syncer.rb +25 -0
  17. data/app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb +44 -0
  18. data/app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb +13 -0
  19. data/app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb +15 -0
  20. data/app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb +75 -0
  21. data/app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb +32 -0
  22. data/app/interactors/spree_cm_commissioner/taxi_trip_creator.rb +66 -0
  23. data/app/interactors/spree_cm_commissioner/variant_block_updater.rb +62 -0
  24. data/app/interactors/spree_cm_commissioner/vehicle_updater.rb +41 -0
  25. data/app/jobs/spree_cm_commissioner/application_job.rb +20 -0
  26. data/app/jobs/spree_cm_commissioner/application_unique_job.rb +20 -0
  27. data/app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb +7 -0
  28. data/app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb +7 -0
  29. data/app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb +11 -0
  30. data/app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb +11 -0
  31. data/app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb +9 -0
  32. data/app/models/concerns/spree_cm_commissioner/line_item_durationable.rb +9 -15
  33. data/app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb +2 -12
  34. data/app/models/concerns/spree_cm_commissioner/order_seatable.rb +44 -0
  35. data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +39 -0
  36. data/app/models/concerns/spree_cm_commissioner/product_delegation.rb +1 -3
  37. data/app/models/concerns/spree_cm_commissioner/product_type.rb +10 -0
  38. data/app/models/concerns/spree_cm_commissioner/route_type.rb +1 -1
  39. data/app/models/concerns/spree_cm_commissioner/taxon_kind.rb +1 -1
  40. data/app/models/concerns/spree_cm_commissioner/vehicle_type.rb +11 -0
  41. data/app/models/spree_cm_commissioner/block.rb +43 -0
  42. data/app/models/spree_cm_commissioner/guest.rb +18 -0
  43. data/app/models/spree_cm_commissioner/inventory.rb +11 -0
  44. data/app/models/spree_cm_commissioner/inventory_item.rb +69 -0
  45. data/app/models/spree_cm_commissioner/line_item_decorator.rb +46 -78
  46. data/app/models/spree_cm_commissioner/notification_taxon.rb +1 -1
  47. data/app/models/spree_cm_commissioner/option_type_decorator.rb +1 -11
  48. data/app/models/spree_cm_commissioner/order_decorator.rb +30 -1
  49. data/app/models/spree_cm_commissioner/place.rb +1 -4
  50. data/app/models/spree_cm_commissioner/price_decorator.rb +9 -0
  51. data/app/models/spree_cm_commissioner/product_decorator.rb +10 -6
  52. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +41 -0
  53. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +126 -0
  54. data/app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb +36 -0
  55. data/app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb +25 -0
  56. data/app/models/spree_cm_commissioner/reserved_block.rb +30 -0
  57. data/app/models/spree_cm_commissioner/seat_layout.rb +20 -0
  58. data/app/models/spree_cm_commissioner/seat_section.rb +16 -0
  59. data/app/models/spree_cm_commissioner/seats/blocks_canceler.rb +30 -0
  60. data/app/models/spree_cm_commissioner/seats/blocks_holder.rb +53 -0
  61. data/app/models/spree_cm_commissioner/seats/blocks_reserver.rb +49 -0
  62. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_on_hold_by_other_guest.rb +4 -0
  63. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_other_guest.rb +4 -0
  64. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_same_guest.rb +4 -0
  65. data/app/models/spree_cm_commissioner/seats/errors/unable_to_save_reserved_block_record.rb +4 -0
  66. data/app/models/spree_cm_commissioner/service_calendar.rb +0 -2
  67. data/app/models/spree_cm_commissioner/state_decorator.rb +0 -1
  68. data/app/models/spree_cm_commissioner/stock/availability_checker.rb +26 -25
  69. data/app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb +2 -1
  70. data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +3 -3
  71. data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +44 -0
  72. data/app/models/spree_cm_commissioner/stock_item_decorator.rb +17 -0
  73. data/app/models/spree_cm_commissioner/taxon_decorator.rb +0 -1
  74. data/app/models/spree_cm_commissioner/taxonomy_decorator.rb +0 -6
  75. data/app/models/spree_cm_commissioner/trip.rb +12 -10
  76. data/app/models/spree_cm_commissioner/trip_connection.rb +5 -5
  77. data/app/models/spree_cm_commissioner/trip_stop.rb +10 -21
  78. data/app/models/spree_cm_commissioner/variant_block.rb +9 -0
  79. data/app/models/spree_cm_commissioner/variant_decorator.rb +37 -47
  80. data/app/models/spree_cm_commissioner/variant_options.rb +0 -23
  81. data/app/models/spree_cm_commissioner/vehicle.rb +11 -16
  82. data/app/models/spree_cm_commissioner/vendor_decorator.rb +11 -14
  83. data/app/models/spree_cm_commissioner/vendor_place.rb +13 -3
  84. data/app/queries/spree_cm_commissioner/trip_query.rb +110 -131
  85. data/app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb +3 -0
  86. data/app/request_schemas/spree_cm_commissioner/application_request_schema.rb +1 -1
  87. data/app/request_schemas/spree_cm_commissioner/trip_search_request_schema.rb +20 -0
  88. data/app/request_schemas/spree_cm_commissioner/variant_request_schema.rb +19 -0
  89. data/app/serializers/spree/v2/storefront/accommodation_serializer.rb +2 -0
  90. data/app/serializers/spree/v2/storefront/amenity_serializer.rb +15 -0
  91. data/app/serializers/spree/v2/storefront/line_item_serializer_decorator.rb +1 -0
  92. data/app/serializers/spree/v2/storefront/trip_query_result_serializer.rb +14 -0
  93. data/app/serializers/spree/v2/storefront/trip_result_serializer.rb +16 -0
  94. data/app/serializers/spree/v2/storefront/trip_vehicle_serializer.rb +11 -0
  95. data/app/serializers/spree/v2/storefront/trip_vendor_serializer.rb +13 -0
  96. data/app/views/spree/admin/inventory_items/show.html.erb +72 -0
  97. data/app/views/spree/admin/stock_managements/_variant_stock_items.html.erb +7 -2
  98. data/app/views/spree/admin/stock_managements/calendar.html.erb +56 -0
  99. data/app/views/spree/admin/stock_managements/index.html.erb +55 -6
  100. data/config/initializers/paper_trail.rb +1 -0
  101. data/config/initializers/spree_permitted_attributes.rb +5 -0
  102. data/config/routes.rb +24 -2
  103. data/db/migrate/20240202080634_update_counter_cache_of_vehicle_type.rb +3 -1
  104. data/db/migrate/20250122000000_move_route_type_from_vehicles_to_trips.rb +7 -0
  105. data/db/migrate/20250304293518_create_cm_inventory_items.rb +21 -0
  106. data/db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb +5 -0
  107. data/db/migrate/20250502025848_add_index_to_spree_products.rb +5 -0
  108. data/db/migrate/20250502030001_add_product_type_to_spree_variants.rb +5 -0
  109. data/db/migrate/20250502030002_add_product_type_to_spree_line_items.rb +5 -0
  110. data/db/migrate/20250603035256_add_inventory_item_to_spree_prices.rb +7 -0
  111. data/db/migrate/20250619073724_drop_table_cm_line_item_seats.rb +5 -0
  112. data/db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb +5 -0
  113. data/db/migrate/20250619073844_drop_table_cm_vehicle_types.rb +9 -0
  114. data/db/migrate/20250619073957_drop_table_cm_option_value_vehicle_types.rb +5 -0
  115. data/db/migrate/20250619082354_remove_unnecessary_fields_from_cm_places.rb +9 -0
  116. data/db/migrate/20250619082736_remove_route_type_from_spree_products.rb +5 -0
  117. data/db/migrate/20250619083055_remove_unnecessary_fields_from_spree_taxons.rb +5 -0
  118. data/db/migrate/20250620083055_remove_variant_id_from_cm_trips.rb +5 -0
  119. data/db/migrate/20250620090000_update_cm_trip_connections_to_use_cm_trips.rb +6 -0
  120. data/db/migrate/20250620090001_create_cm_seat_layouts.rb +17 -0
  121. data/db/migrate/20250620090002_create_cm_seat_sections.rb +18 -0
  122. data/db/migrate/20250620090003_create_cm_blocks.rb +18 -0
  123. data/db/migrate/20250624091005_create_cm_reserved_blocks.rb +29 -0
  124. data/db/migrate/20250626083642_create_cm_variant_blocks.rb +24 -0
  125. data/db/migrate/20250627023314_add_block_id_to_cm_guests.rb +13 -0
  126. data/db/migrate/20250716022821_add_location_reference_to_cm_vendor_places.rb +5 -0
  127. data/db/migrate/20250716031743_drop_table_cm_vendor_stops.rb +5 -0
  128. data/db/migrate/20250717023824_add_vendor_reference_to_cm_trips.rb +5 -0
  129. data/db/migrate/20250717041414_add_location_place_reference_to_cm_trip_stops.rb +5 -0
  130. data/db/migrate/20250717042539_rename_cm_trip_stops_stop_id_column_to_stop_place_id.rb +7 -0
  131. data/db/migrate/20250717042707_rename_cm_trips_origin_and_destination_to_origin_place_and_destination_place.rb +11 -0
  132. data/db/migrate/20250721080738_add_vehicle_type_to_cm_vehicles.rb +7 -0
  133. data/db/migrate/20250725092713_add_block_type_to_cm_blocks.rb +5 -0
  134. data/db/migrate/20250731062816_add_departure_time_and_arrival_time_to_trip_stop.rb +6 -0
  135. data/docker-compose.yml +1 -1
  136. data/lib/cm_app_logger.rb +11 -4
  137. data/lib/generators/spree_cm_commissioner/install/install_generator.rb +14 -11
  138. data/lib/generators/spree_cm_commissioner/install/templates/app/javascript/{spree_cm_commissioner → spree_dashboard/spree_cm_commissioner}/utilities.js +4 -0
  139. data/lib/spree_cm_commissioner/cached_inventory_item.rb +23 -0
  140. data/lib/spree_cm_commissioner/calendar_event.rb +11 -1
  141. data/lib/spree_cm_commissioner/test_helper/factories/block_factory.rb +16 -0
  142. data/lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb +10 -0
  143. data/lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb +1 -1
  144. data/lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb +9 -0
  145. data/lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb +1 -1
  146. data/lib/spree_cm_commissioner/test_helper/factories/option_type_factory.rb +6 -30
  147. data/lib/spree_cm_commissioner/test_helper/factories/order_factory.rb +0 -36
  148. data/lib/spree_cm_commissioner/test_helper/factories/product_factory.rb +18 -34
  149. data/lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb +27 -0
  150. data/lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb +11 -0
  151. data/lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb +16 -0
  152. data/lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb +2 -2
  153. data/lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb +6 -0
  154. data/lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb +11 -3
  155. data/lib/spree_cm_commissioner/test_helper/factories/trip_stop_factory.rb +10 -0
  156. data/lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb +7 -0
  157. data/lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb +41 -19
  158. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb +1 -1
  159. data/lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb +6 -1
  160. data/lib/spree_cm_commissioner/test_helper/factories/vendor_place_factory.rb +13 -1
  161. data/lib/spree_cm_commissioner/trip_query_result.rb +16 -0
  162. data/lib/spree_cm_commissioner/trip_result.rb +12 -10
  163. data/lib/spree_cm_commissioner/version.rb +1 -1
  164. data/lib/spree_cm_commissioner.rb +35 -1
  165. data/lib/tasks/create_default_non_permanent_inventory_items.rake +16 -0
  166. data/lib/tasks/ensure_correct_product_type.rake +7 -0
  167. data/lib/tasks/generate_inventory_items.rake +7 -0
  168. data/spree_cm_commissioner.gemspec +7 -0
  169. metadata +153 -25
  170. data/app/controllers/concerns/spree_cm_commissioner/transit/taxon_bitwise.rb +0 -44
  171. data/app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb +0 -20
  172. data/app/models/spree_cm_commissioner/branch.rb +0 -12
  173. data/app/models/spree_cm_commissioner/line_item_seat.rb +0 -10
  174. data/app/models/spree_cm_commissioner/option_value_vehicle_type.rb +0 -8
  175. data/app/models/spree_cm_commissioner/stop.rb +0 -23
  176. data/app/models/spree_cm_commissioner/vehicle_seat.rb +0 -11
  177. data/app/models/spree_cm_commissioner/vehicle_type.rb +0 -76
  178. data/app/models/spree_cm_commissioner/vendor_stop.rb +0 -10
  179. data/app/queries/spree_cm_commissioner/trip_search_query.rb +0 -76
  180. data/app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb +0 -45
  181. data/app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb +0 -55
  182. data/app/queries/spree_cm_commissioner/vendor_stop_place_query.rb +0 -54
  183. data/app/services/spree_cm_commissioner/vehicle_option_value_creator.rb +0 -11
  184. data/lib/spree_cm_commissioner/test_helper/factories/branch_factory.rb +0 -12
  185. data/lib/spree_cm_commissioner/test_helper/factories/departure_time_option_type_factory.rb +0 -8
  186. data/lib/spree_cm_commissioner/test_helper/factories/duration_option_type_factory.rb +0 -8
  187. data/lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb +0 -7
  188. data/lib/spree_cm_commissioner/test_helper/factories/stop_factory.rb +0 -14
  189. data/lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb +0 -8
  190. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_option_type_factory.rb +0 -8
  191. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_type_factory.rb +0 -96
  192. data/lib/spree_cm_commissioner/trip_seat_layout_result.rb +0 -11
@@ -54,6 +54,13 @@ Gem::Specification.new do |s|
54
54
  s.add_dependency "rqrcode", "~> 2.0"
55
55
  s.add_dependency "premailer-rails"
56
56
  s.add_dependency 'counter_culture', '~> 3.2'
57
+ s.add_dependency 'paper_trail', '~> 16.0'
58
+
59
+ # Redis
60
+ s.add_dependency 'redis'
61
+ s.add_dependency 'redis-rails'
62
+ s.add_dependency 'connection_pool'
63
+
57
64
  s.add_development_dependency 'pg'
58
65
  s.add_development_dependency 'spree_dev_tools'
59
66
  s.add_dependency 'blazer', '~> 3.0.4'
metadata CHANGED
@@ -1,7 +1,7 @@
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.pre1
4
+ version: 2.0.3.pre.pre3
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
@@ -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,7 @@ 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_search_controller.rb
887
945
  - app/controllers/spree/api/v2/storefront/user_account_linkages_controller.rb
888
946
  - app/controllers/spree/api/v2/storefront/user_contacts_controller.rb
889
947
  - app/controllers/spree/api/v2/storefront/user_deletion_reasons_controller.rb
@@ -1014,7 +1072,8 @@ files:
1014
1072
  - app/factory/spree_cm_commissioner/invite_guest_claimed_telegram_message_factory.rb
1015
1073
  - app/factory/spree_cm_commissioner/order_telegram_message_factory.rb
1016
1074
  - app/factory/spree_cm_commissioner/telegram_message_factory.rb
1017
- - app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb
1075
+ - app/finders/spree_cm_commissioner/accommodations/find.rb
1076
+ - app/finders/spree_cm_commissioner/accommodations/find_variant.rb
1018
1077
  - app/finders/spree_cm_commissioner/orders/find.rb
1019
1078
  - app/finders/spree_cm_commissioner/orders/find_by_state.rb
1020
1079
  - app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
@@ -1066,6 +1125,7 @@ files:
1066
1125
  - app/interactors/spree_cm_commissioner/customer_promotion_creator.rb
1067
1126
  - app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb
1068
1127
  - app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb
1128
+ - app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb
1069
1129
  - app/interactors/spree_cm_commissioner/event_line_items_date_syncer.rb
1070
1130
  - app/interactors/spree_cm_commissioner/event_qr_generator.rb
1071
1131
  - app/interactors/spree_cm_commissioner/existing_account_checker.rb
@@ -1081,6 +1141,7 @@ files:
1081
1141
  - app/interactors/spree_cm_commissioner/imported_csv_downloader.rb
1082
1142
  - app/interactors/spree_cm_commissioner/international_mobile_formatter.rb
1083
1143
  - app/interactors/spree_cm_commissioner/invalidate_cache_request.rb
1144
+ - app/interactors/spree_cm_commissioner/inventory_item_syncer.rb
1084
1145
  - app/interactors/spree_cm_commissioner/invoice_creator.rb
1085
1146
  - app/interactors/spree_cm_commissioner/media/signed_cookie_generator.rb
1086
1147
  - app/interactors/spree_cm_commissioner/media/signed_path_generator.rb
@@ -1116,9 +1177,15 @@ files:
1116
1177
  - app/interactors/spree_cm_commissioner/sms.rb
1117
1178
  - app/interactors/spree_cm_commissioner/sqs/media_convert_job_status.rb
1118
1179
  - app/interactors/spree_cm_commissioner/state_updater.rb
1180
+ - app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb
1181
+ - app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb
1182
+ - app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb
1183
+ - app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb
1184
+ - app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb
1119
1185
  - app/interactors/spree_cm_commissioner/subscriptions_order_creator.rb
1120
1186
  - app/interactors/spree_cm_commissioner/subscriptions_order_cron_executor.rb
1121
1187
  - app/interactors/spree_cm_commissioner/subscriptions_prepaid_order_creator.rb
1188
+ - app/interactors/spree_cm_commissioner/taxi_trip_creator.rb
1122
1189
  - app/interactors/spree_cm_commissioner/telegram_chats_auto_finder.rb
1123
1190
  - app/interactors/spree_cm_commissioner/telegram_chats_finder.rb
1124
1191
  - app/interactors/spree_cm_commissioner/telegram_debug_pin_code_sender.rb
@@ -1143,7 +1210,9 @@ files:
1143
1210
  - app/interactors/spree_cm_commissioner/user_registration_with_id_token.rb
1144
1211
  - app/interactors/spree_cm_commissioner/user_telegram_web_app_authenticator.rb
1145
1212
  - app/interactors/spree_cm_commissioner/user_vattanac_bank_web_app_authenticator.rb
1213
+ - app/interactors/spree_cm_commissioner/variant_block_updater.rb
1146
1214
  - app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb
1215
+ - app/interactors/spree_cm_commissioner/vehicle_updater.rb
1147
1216
  - app/interactors/spree_cm_commissioner/vendor_nearby_place_builder.rb
1148
1217
  - app/interactors/spree_cm_commissioner/vendor_updater.rb
1149
1218
  - app/interactors/spree_cm_commissioner/video_on_demand_creator.rb
@@ -1165,6 +1234,7 @@ files:
1165
1234
  - app/jobs/spree_cm_commissioner/customer_notification_cron_job.rb
1166
1235
  - app/jobs/spree_cm_commissioner/customer_notification_sender_job.rb
1167
1236
  - app/jobs/spree_cm_commissioner/enqueue_cart/add_item_job.rb
1237
+ - app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb
1168
1238
  - app/jobs/spree_cm_commissioner/ensure_event_for_product_line_item_guests_job.rb
1169
1239
  - app/jobs/spree_cm_commissioner/ensure_event_id_for_guests_job.rb
1170
1240
  - app/jobs/spree_cm_commissioner/event_line_items_date_syncer_job.rb
@@ -1172,6 +1242,7 @@ files:
1172
1242
  - app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
1173
1243
  - app/jobs/spree_cm_commissioner/import_order_job.rb
1174
1244
  - app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
1245
+ - app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
1175
1246
  - app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
1176
1247
  - app/jobs/spree_cm_commissioner/option_value_variants_public_metadata_updater_job.rb
1177
1248
  - app/jobs/spree_cm_commissioner/order_complete_telegram_sender_job.rb
@@ -1181,6 +1252,9 @@ files:
1181
1252
  - app/jobs/spree_cm_commissioner/sms_job.rb
1182
1253
  - app/jobs/spree_cm_commissioner/sms_pin_code_job.rb
1183
1254
  - app/jobs/spree_cm_commissioner/state_job.rb
1255
+ - app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb
1256
+ - app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb
1257
+ - app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb
1184
1258
  - app/jobs/spree_cm_commissioner/subscription_order_executor_job.rb
1185
1259
  - app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
1186
1260
  - app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
@@ -1209,6 +1283,7 @@ files:
1209
1283
  - app/models/concerns/spree_cm_commissioner/metafield.rb
1210
1284
  - app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb
1211
1285
  - app/models/concerns/spree_cm_commissioner/option_value_attr_type.rb
1286
+ - app/models/concerns/spree_cm_commissioner/order_seatable.rb
1212
1287
  - app/models/concerns/spree_cm_commissioner/order_state_machine.rb
1213
1288
  - app/models/concerns/spree_cm_commissioner/parameterize_name.rb
1214
1289
  - app/models/concerns/spree_cm_commissioner/participation_type_bitwise.rb
@@ -1225,6 +1300,7 @@ files:
1225
1300
  - app/models/concerns/spree_cm_commissioner/user_notification.rb
1226
1301
  - app/models/concerns/spree_cm_commissioner/user_preference.rb
1227
1302
  - app/models/concerns/spree_cm_commissioner/variant_options_concern.rb
1303
+ - app/models/concerns/spree_cm_commissioner/vehicle_type.rb
1228
1304
  - app/models/concerns/spree_cm_commissioner/vendor_preference.rb
1229
1305
  - app/models/concerns/spree_cm_commissioner/vendor_promotable.rb
1230
1306
  - app/models/concerns/spree_cm_commissioner/video_on_demand_bitwise.rb
@@ -1237,7 +1313,7 @@ files:
1237
1313
  - app/models/spree_cm_commissioner/back_image.rb
1238
1314
  - app/models/spree_cm_commissioner/base.rb
1239
1315
  - app/models/spree_cm_commissioner/blazer_queryable.rb
1240
- - app/models/spree_cm_commissioner/branch.rb
1316
+ - app/models/spree_cm_commissioner/block.rb
1241
1317
  - app/models/spree_cm_commissioner/check_in.rb
1242
1318
  - app/models/spree_cm_commissioner/check_in_ability.rb
1243
1319
  - app/models/spree_cm_commissioner/check_in_record.rb
@@ -1286,6 +1362,8 @@ files:
1286
1362
  - app/models/spree_cm_commissioner/image_methods_decorator.rb
1287
1363
  - app/models/spree_cm_commissioner/import.rb
1288
1364
  - app/models/spree_cm_commissioner/imports/import_order.rb
1365
+ - app/models/spree_cm_commissioner/inventory.rb
1366
+ - app/models/spree_cm_commissioner/inventory_item.rb
1289
1367
  - app/models/spree_cm_commissioner/invite.rb
1290
1368
  - app/models/spree_cm_commissioner/invite_guest.rb
1291
1369
  - app/models/spree_cm_commissioner/invite_team.rb
@@ -1293,7 +1371,6 @@ files:
1293
1371
  - app/models/spree_cm_commissioner/invite_user_taxon.rb
1294
1372
  - app/models/spree_cm_commissioner/invoice.rb
1295
1373
  - app/models/spree_cm_commissioner/line_item_decorator.rb
1296
- - app/models/spree_cm_commissioner/line_item_seat.rb
1297
1374
  - app/models/spree_cm_commissioner/notification.rb
1298
1375
  - app/models/spree_cm_commissioner/notification_taxon.rb
1299
1376
  - app/models/spree_cm_commissioner/oauth_access_token_decorator.rb
@@ -1301,7 +1378,6 @@ files:
1301
1378
  - app/models/spree_cm_commissioner/option_type_decorator.rb
1302
1379
  - app/models/spree_cm_commissioner/option_value_decorator.rb
1303
1380
  - app/models/spree_cm_commissioner/option_value_vehicle.rb
1304
- - app/models/spree_cm_commissioner/option_value_vehicle_type.rb
1305
1381
  - app/models/spree_cm_commissioner/option_value_vendor.rb
1306
1382
  - app/models/spree_cm_commissioner/order/address_book_decorator.rb
1307
1383
  - app/models/spree_cm_commissioner/order_decorator.rb
@@ -1320,6 +1396,7 @@ files:
1320
1396
  - app/models/spree_cm_commissioner/pin_code_telegram.rb
1321
1397
  - app/models/spree_cm_commissioner/pin_code_update_user_login.rb
1322
1398
  - app/models/spree_cm_commissioner/place.rb
1399
+ - app/models/spree_cm_commissioner/price_decorator.rb
1323
1400
  - app/models/spree_cm_commissioner/product_completion_step.rb
1324
1401
  - app/models/spree_cm_commissioner/product_completion_steps/chatrace_telegram.rb
1325
1402
  - app/models/spree_cm_commissioner/product_decorator.rb
@@ -1341,10 +1418,24 @@ files:
1341
1418
  - app/models/spree_cm_commissioner/promotion_decorator.rb
1342
1419
  - app/models/spree_cm_commissioner/property_decorator.rb
1343
1420
  - app/models/spree_cm_commissioner/prototype_decorator.rb
1421
+ - app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb
1422
+ - app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb
1423
+ - app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb
1424
+ - app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb
1425
+ - app/models/spree_cm_commissioner/reserved_block.rb
1344
1426
  - app/models/spree_cm_commissioner/role_decorator.rb
1345
1427
  - app/models/spree_cm_commissioner/role_permission.rb
1346
1428
  - app/models/spree_cm_commissioner/s3_presigned_url.rb
1347
1429
  - app/models/spree_cm_commissioner/s3_presigned_url_builder.rb
1430
+ - app/models/spree_cm_commissioner/seat_layout.rb
1431
+ - app/models/spree_cm_commissioner/seat_section.rb
1432
+ - app/models/spree_cm_commissioner/seats/blocks_canceler.rb
1433
+ - app/models/spree_cm_commissioner/seats/blocks_holder.rb
1434
+ - app/models/spree_cm_commissioner/seats/blocks_reserver.rb
1435
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_on_hold_by_other_guest.rb
1436
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_other_guest.rb
1437
+ - app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_same_guest.rb
1438
+ - app/models/spree_cm_commissioner/seats/errors/unable_to_save_reserved_block_record.rb
1348
1439
  - app/models/spree_cm_commissioner/service_calendar.rb
1349
1440
  - app/models/spree_cm_commissioner/sms_log.rb
1350
1441
  - app/models/spree_cm_commissioner/state_change_decorator.rb
@@ -1353,9 +1444,9 @@ files:
1353
1444
  - app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb
1354
1445
  - app/models/spree_cm_commissioner/stock/inventory_unit_builder_decorator.rb
1355
1446
  - app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb
1447
+ - app/models/spree_cm_commissioner/stock/order_availability_checker.rb
1356
1448
  - app/models/spree_cm_commissioner/stock_item_decorator.rb
1357
1449
  - app/models/spree_cm_commissioner/stock_location_decorator.rb
1358
- - app/models/spree_cm_commissioner/stop.rb
1359
1450
  - app/models/spree_cm_commissioner/store_decorator.rb
1360
1451
  - app/models/spree_cm_commissioner/subscription.rb
1361
1452
  - app/models/spree_cm_commissioner/taxon_app_banner.rb
@@ -1385,6 +1476,7 @@ files:
1385
1476
  - app/models/spree_cm_commissioner/user_place.rb
1386
1477
  - app/models/spree_cm_commissioner/user_profile.rb
1387
1478
  - app/models/spree_cm_commissioner/user_taxon.rb
1479
+ - app/models/spree_cm_commissioner/variant_block.rb
1388
1480
  - app/models/spree_cm_commissioner/variant_decorator.rb
1389
1481
  - app/models/spree_cm_commissioner/variant_guest_card_class.rb
1390
1482
  - app/models/spree_cm_commissioner/variant_options.rb
@@ -1392,8 +1484,6 @@ files:
1392
1484
  - app/models/spree_cm_commissioner/vehicle.rb
1393
1485
  - app/models/spree_cm_commissioner/vehicle_option_type.rb
1394
1486
  - 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
1487
  - app/models/spree_cm_commissioner/vendor_app_promotion_banner.rb
1398
1488
  - app/models/spree_cm_commissioner/vendor_decorator.rb
1399
1489
  - app/models/spree_cm_commissioner/vendor_logo.rb
@@ -1402,7 +1492,6 @@ files:
1402
1492
  - app/models/spree_cm_commissioner/vendor_photo.rb
1403
1493
  - app/models/spree_cm_commissioner/vendor_place.rb
1404
1494
  - app/models/spree_cm_commissioner/vendor_promotion_rule.rb
1405
- - app/models/spree_cm_commissioner/vendor_stop.rb
1406
1495
  - app/models/spree_cm_commissioner/vendor_web_promotion_banner.rb
1407
1496
  - app/models/spree_cm_commissioner/video.rb
1408
1497
  - app/models/spree_cm_commissioner/video_on_demand.rb
@@ -1565,17 +1654,15 @@ files:
1565
1654
  - app/queries/spree_cm_commissioner/subscription_revenue_overview_query.rb
1566
1655
  - app/queries/spree_cm_commissioner/tickets_searcher_query.rb
1567
1656
  - app/queries/spree_cm_commissioner/trip_query.rb
1568
- - app/queries/spree_cm_commissioner/trip_search_query.rb
1569
1657
  - app/queries/spree_cm_commissioner/trip_seat_layout_query.rb
1570
1658
  - 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
1659
  - app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
1575
1660
  - app/request_schemas/spree_cm_commissioner/application_request_schema.rb
1576
1661
  - app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
1662
+ - app/request_schemas/spree_cm_commissioner/trip_search_request_schema.rb
1577
1663
  - app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
1578
1664
  - app/request_schemas/spree_cm_commissioner/user_profile_request_schema.rb
1665
+ - app/request_schemas/spree_cm_commissioner/variant_request_schema.rb
1579
1666
  - app/serializables/spree_cm_commissioner/event_chart.rb
1580
1667
  - app/serializables/spree_cm_commissioner/event_ticket_aggregator.rb
1581
1668
  - app/serializables/spree_cm_commissioner/pie_chart_event_aggregator.rb
@@ -1596,6 +1683,7 @@ files:
1596
1683
  - app/serializers/spree/v2/storefront/accommodation_serializer.rb
1597
1684
  - app/serializers/spree/v2/storefront/active_homepage_event_serializer.rb
1598
1685
  - app/serializers/spree/v2/storefront/address_serializer_decorator.rb
1686
+ - app/serializers/spree/v2/storefront/amenity_serializer.rb
1599
1687
  - app/serializers/spree/v2/storefront/cart_serializer_decorator.rb
1600
1688
  - app/serializers/spree/v2/storefront/customer_notification_serializer.rb
1601
1689
  - app/serializers/spree/v2/storefront/firestore_queue_serializer.rb
@@ -1614,6 +1702,10 @@ files:
1614
1702
  - app/serializers/spree/v2/storefront/stock_location_serializer_decorator.rb
1615
1703
  - app/serializers/spree/v2/storefront/store_promotion_serializer.rb
1616
1704
  - app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb
1705
+ - app/serializers/spree/v2/storefront/trip_query_result_serializer.rb
1706
+ - app/serializers/spree/v2/storefront/trip_result_serializer.rb
1707
+ - app/serializers/spree/v2/storefront/trip_vehicle_serializer.rb
1708
+ - app/serializers/spree/v2/storefront/trip_vendor_serializer.rb
1617
1709
  - app/serializers/spree/v2/storefront/user_deletion_reason_serializer.rb
1618
1710
  - app/serializers/spree/v2/storefront/user_device_token_serializer.rb
1619
1711
  - app/serializers/spree/v2/storefront/user_profile_serializer.rb
@@ -1761,7 +1853,6 @@ files:
1761
1853
  - app/services/spree_cm_commissioner/seeds/roles_decorator.rb
1762
1854
  - app/services/spree_cm_commissioner/user_authenticator.rb
1763
1855
  - app/services/spree_cm_commissioner/user_roles_assigner.rb
1764
- - app/services/spree_cm_commissioner/vehicle_option_value_creator.rb
1765
1856
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
1766
1857
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
1767
1858
  - app/services/spree_cm_commissioner/webhooks/subscribers/handle_request_decorator.rb
@@ -1854,6 +1945,7 @@ files:
1854
1945
  - app/views/spree/admin/import_new_orders/index.html.erb
1855
1946
  - app/views/spree/admin/import_new_orders/new.html.erb
1856
1947
  - app/views/spree/admin/import_new_orders/show.html.erb
1948
+ - app/views/spree/admin/inventory_items/show.html.erb
1857
1949
  - app/views/spree/admin/kyc/_form.html.erb
1858
1950
  - app/views/spree/admin/kyc/edit.html.erb
1859
1951
  - app/views/spree/admin/line_items/_form.html.erb
@@ -1915,6 +2007,7 @@ files:
1915
2007
  - app/views/spree/admin/shared/sub_menu/_calendar.html.erb
1916
2008
  - app/views/spree/admin/shared/sub_menu/_homepage.html.erb
1917
2009
  - app/views/spree/admin/stock_managements/_variant_stock_items.html.erb
2010
+ - app/views/spree/admin/stock_managements/calendar.html.erb
1918
2011
  - app/views/spree/admin/stock_managements/index.html.erb
1919
2012
  - app/views/spree/admin/system/show.html.erb
1920
2013
  - app/views/spree/admin/taxon_childrens/index.html.erb
@@ -2211,6 +2304,7 @@ files:
2211
2304
  - config/initializers/doorkeeper.rb
2212
2305
  - config/initializers/exception_notification.rb
2213
2306
  - config/initializers/google_map.rb
2307
+ - config/initializers/paper_trail.rb
2214
2308
  - config/initializers/phonelib.rb
2215
2309
  - config/initializers/premailer_rails.rb
2216
2310
  - config/initializers/recaptcha_enterprise.rb
@@ -2477,6 +2571,7 @@ files:
2477
2571
  - db/migrate/20241219070959_add_page_path_to_cm_waiting_room_sessions.rb
2478
2572
  - db/migrate/20250116081414_remove_active_from_homepage_sections_relatables.rb
2479
2573
  - db/migrate/20250117092553_add_available_on_and_discontinue_on_to_homepage_section_relatables.rb
2574
+ - db/migrate/20250122000000_move_route_type_from_vehicles_to_trips.rb
2480
2575
  - db/migrate/20250122083010_create_cm_tenants.rb
2481
2576
  - db/migrate/20250122084511_add_tenant_id_to_spree_vendors.rb
2482
2577
  - db/migrate/20250123162946_add_tenant_id_to_spree_oauth_applications.rb
@@ -2495,6 +2590,7 @@ files:
2495
2590
  - db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb
2496
2591
  - db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb
2497
2592
  - db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
2593
+ - db/migrate/20250304293518_create_cm_inventory_items.rb
2498
2594
  - db/migrate/20250307013422_add_parent_id_to_cm_place.rb
2499
2595
  - db/migrate/20250307073003_add_tenant_id_to_cm_customer_notifications.rb
2500
2596
  - db/migrate/20250307083809_remove_tenant_id_from_cm_notifications.rb
@@ -2515,8 +2611,12 @@ files:
2515
2611
  - db/migrate/20250425084929_add_description_to_spree_prototypes.rb
2516
2612
  - db/migrate/20250425085938_add_preferences_to_spree_prototypes.rb
2517
2613
  - db/migrate/20250428025645_add_slug_to_spree_prototypes.rb
2614
+ - db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb
2518
2615
  - db/migrate/20250430091742_create_cm_taxon_option_types.rb
2519
2616
  - db/migrate/20250430092928_create_cm_taxon_option_values.rb
2617
+ - db/migrate/20250502025848_add_index_to_spree_products.rb
2618
+ - db/migrate/20250502030001_add_product_type_to_spree_variants.rb
2619
+ - db/migrate/20250502030002_add_product_type_to_spree_line_items.rb
2520
2620
  - db/migrate/20250506092929_add_trip_count_to_cm_vendor_stops.rb
2521
2621
  - db/migrate/20250509033437_create_spree_cm_commissioner_transactional_emails.rb
2522
2622
  - db/migrate/20250509075429_add_max_order_quantity_to_spree_product.rb
@@ -2533,6 +2633,7 @@ files:
2533
2633
  - db/migrate/20250531074036_create_spree_cm_commissioner_option_value_vehicle.rb
2534
2634
  - db/migrate/20250531074258_create_spree_cm_commissioner_vehicle_option_types.rb
2535
2635
  - db/migrate/20250602094751_add_host_to_cm_tenants.rb
2636
+ - db/migrate/20250603035256_add_inventory_item_to_spree_prices.rb
2536
2637
  - db/migrate/20250605024523_add_participation_type_to_spree_taxon.rb
2537
2638
  - db/migrate/20250606020914_create_cm_dynamic_fields.rb
2538
2639
  - db/migrate/20250606020958_create_cm_guest_dynamic_fields.rb
@@ -2543,6 +2644,21 @@ files:
2543
2644
  - db/migrate/20250611023548_add_country_code_to_guests.rb
2544
2645
  - db/migrate/20250612035937_add_intel_phone_number_to_guests.rb
2545
2646
  - db/migrate/20250616084219_add_description_to_cm_vendor_place.rb
2647
+ - db/migrate/20250619073724_drop_table_cm_line_item_seats.rb
2648
+ - db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb
2649
+ - db/migrate/20250619073844_drop_table_cm_vehicle_types.rb
2650
+ - db/migrate/20250619073957_drop_table_cm_option_value_vehicle_types.rb
2651
+ - db/migrate/20250619082354_remove_unnecessary_fields_from_cm_places.rb
2652
+ - db/migrate/20250619082736_remove_route_type_from_spree_products.rb
2653
+ - db/migrate/20250619083055_remove_unnecessary_fields_from_spree_taxons.rb
2654
+ - db/migrate/20250620083055_remove_variant_id_from_cm_trips.rb
2655
+ - db/migrate/20250620090000_update_cm_trip_connections_to_use_cm_trips.rb
2656
+ - db/migrate/20250620090001_create_cm_seat_layouts.rb
2657
+ - db/migrate/20250620090002_create_cm_seat_sections.rb
2658
+ - db/migrate/20250620090003_create_cm_blocks.rb
2659
+ - db/migrate/20250624091005_create_cm_reserved_blocks.rb
2660
+ - db/migrate/20250626083642_create_cm_variant_blocks.rb
2661
+ - db/migrate/20250627023314_add_block_id_to_cm_guests.rb
2546
2662
  - db/migrate/20250630103536_create_cm_telegram_chats.rb
2547
2663
  - db/migrate/20250701093203_add_configurations_to_cm_dynamic_field.rb
2548
2664
  - db/migrate/20250702091305_add_dynamic_field_option_to_guest_dynamic_field.rb
@@ -2555,7 +2671,16 @@ files:
2555
2671
  - db/migrate/20250714121508_rename_cm_taxon_blazer_query_to_blazer_queryables.rb
2556
2672
  - db/migrate/20250714124323_make_cm_blazer_queryables_polymorphic.rb
2557
2673
  - db/migrate/20250715103333_remove_indexes_from_cm_user_identity_providers.rb
2674
+ - db/migrate/20250716022821_add_location_reference_to_cm_vendor_places.rb
2675
+ - db/migrate/20250716031743_drop_table_cm_vendor_stops.rb
2676
+ - db/migrate/20250717023824_add_vendor_reference_to_cm_trips.rb
2677
+ - db/migrate/20250717041414_add_location_place_reference_to_cm_trip_stops.rb
2678
+ - db/migrate/20250717042539_rename_cm_trip_stops_stop_id_column_to_stop_place_id.rb
2679
+ - db/migrate/20250717042707_rename_cm_trips_origin_and_destination_to_origin_place_and_destination_place.rb
2558
2680
  - db/migrate/20250718071620_add_data_fill_stage_to_dynamic_fields.rb
2681
+ - db/migrate/20250721080738_add_vehicle_type_to_cm_vehicles.rb
2682
+ - db/migrate/20250725092713_add_block_type_to_cm_blocks.rb
2683
+ - db/migrate/20250731062816_add_departure_time_and_arrival_time_to_trip_stop.rb
2559
2684
  - docker-compose.yml
2560
2685
  - docs/option_types/attr_types.md
2561
2686
  - docs/private_key.pem
@@ -2570,11 +2695,12 @@ files:
2570
2695
  - docs/webhook/sqs/params_job_submitted.json
2571
2696
  - lib/cm_app_logger.rb
2572
2697
  - lib/generators/spree_cm_commissioner/install/install_generator.rb
2573
- - lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_cm_commissioner/utilities.js
2698
+ - lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_dashboard/spree_cm_commissioner/utilities.js
2574
2699
  - lib/generators/spree_cm_commissioner/install/templates/config/data/nationalities.yml
2575
2700
  - lib/generators/spree_cm_commissioner/install/templates/vendor/assets/javascript/spree_cm_commissioner/telegram/all.js
2576
2701
  - lib/generators/spree_cm_commissioner/install/templates/vendor/assets/stylesheets/spree_cm_commissioner/telegram/all.css
2577
2702
  - lib/spree_cm_commissioner.rb
2703
+ - lib/spree_cm_commissioner/cached_inventory_item.rb
2578
2704
  - lib/spree_cm_commissioner/calendar_event.rb
2579
2705
  - lib/spree_cm_commissioner/engine.rb
2580
2706
  - lib/spree_cm_commissioner/factories.rb
@@ -2588,16 +2714,14 @@ files:
2588
2714
  - lib/spree_cm_commissioner/test_helper/factories/asset_factory.rb
2589
2715
  - lib/spree_cm_commissioner/test_helper/factories/back_image_factory.rb
2590
2716
  - lib/spree_cm_commissioner/test_helper/factories/blazer_query_factory.rb
2591
- - lib/spree_cm_commissioner/test_helper/factories/branch_factory.rb
2717
+ - lib/spree_cm_commissioner/test_helper/factories/block_factory.rb
2592
2718
  - lib/spree_cm_commissioner/test_helper/factories/check_in_factory.rb
2593
2719
  - lib/spree_cm_commissioner/test_helper/factories/cms_page_factory.rb
2594
2720
  - lib/spree_cm_commissioner/test_helper/factories/country_factory.rb
2595
2721
  - lib/spree_cm_commissioner/test_helper/factories/customer_factory.rb
2596
2722
  - lib/spree_cm_commissioner/test_helper/factories/customer_notification_factory.rb
2597
2723
  - 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
2724
  - 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
2725
  - lib/spree_cm_commissioner/test_helper/factories/export_guest_csv_factory.rb
2602
2726
  - lib/spree_cm_commissioner/test_helper/factories/front_image_factory.rb
2603
2727
  - lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb
@@ -2611,11 +2735,11 @@ files:
2611
2735
  - lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
2612
2736
  - lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
2613
2737
  - lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
2738
+ - lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb
2614
2739
  - lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
2615
2740
  - lib/spree_cm_commissioner/test_helper/factories/invite_guests_factory.rb
2616
2741
  - lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
2617
2742
  - 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
2743
  - lib/spree_cm_commissioner/test_helper/factories/notification_factory.rb
2620
2744
  - lib/spree_cm_commissioner/test_helper/factories/notification_taxons_factory.rb
2621
2745
  - lib/spree_cm_commissioner/test_helper/factories/oauth_access_token_factory.rb
@@ -2631,13 +2755,15 @@ files:
2631
2755
  - lib/spree_cm_commissioner/test_helper/factories/product_factory.rb
2632
2756
  - lib/spree_cm_commissioner/test_helper/factories/products_taxons_factory.rb
2633
2757
  - lib/spree_cm_commissioner/test_helper/factories/promotion_factory.rb
2758
+ - lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb
2634
2759
  - lib/spree_cm_commissioner/test_helper/factories/role.rb
2635
2760
  - lib/spree_cm_commissioner/test_helper/factories/role_permission_factory.rb
2761
+ - lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb
2762
+ - lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb
2636
2763
  - lib/spree_cm_commissioner/test_helper/factories/service_calendar_factory.rb
2637
2764
  - lib/spree_cm_commissioner/test_helper/factories/sms_logs.rb
2638
2765
  - lib/spree_cm_commissioner/test_helper/factories/state_factory.rb
2639
2766
  - lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb
2640
- - lib/spree_cm_commissioner/test_helper/factories/stop_factory.rb
2641
2767
  - lib/spree_cm_commissioner/test_helper/factories/subscription_factory.rb
2642
2768
  - lib/spree_cm_commissioner/test_helper/factories/taxon_brand_logo_factory.rb
2643
2769
  - lib/spree_cm_commissioner/test_helper/factories/taxon_category_icon.rb
@@ -2647,16 +2773,16 @@ files:
2647
2773
  - lib/spree_cm_commissioner/test_helper/factories/telegram_bot_factory.rb
2648
2774
  - lib/spree_cm_commissioner/test_helper/factories/tenant_factory.rb
2649
2775
  - lib/spree_cm_commissioner/test_helper/factories/transactional_email_factory.rb
2650
- - lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb
2776
+ - lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb
2651
2777
  - lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb
2778
+ - lib/spree_cm_commissioner/test_helper/factories/trip_stop_factory.rb
2652
2779
  - lib/spree_cm_commissioner/test_helper/factories/user_deletion_reasons_factory.rb
2653
2780
  - lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb
2654
2781
  - lib/spree_cm_commissioner/test_helper/factories/user_factory.rb
2655
2782
  - lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb
2783
+ - lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb
2656
2784
  - lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb
2657
2785
  - 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
2786
  - lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb
2661
2787
  - lib/spree_cm_commissioner/test_helper/factories/vendor_logo_factory.rb
2662
2788
  - lib/spree_cm_commissioner/test_helper/factories/vendor_photo_factory.rb
@@ -2666,14 +2792,16 @@ files:
2666
2792
  - lib/spree_cm_commissioner/test_helper/factories/webhook_subscriber_rule_factory.rb
2667
2793
  - lib/spree_cm_commissioner/trip_query_result.rb
2668
2794
  - lib/spree_cm_commissioner/trip_result.rb
2669
- - lib/spree_cm_commissioner/trip_seat_layout_result.rb
2670
2795
  - lib/spree_cm_commissioner/user_session_jwt_token.rb
2671
2796
  - lib/spree_cm_commissioner/version.rb
2797
+ - lib/tasks/create_default_non_permanent_inventory_items.rake
2672
2798
  - lib/tasks/customer_notification_cron_scheduler.rake
2799
+ - lib/tasks/ensure_correct_product_type.rake
2673
2800
  - lib/tasks/ensure_event_for_guests.rake
2674
2801
  - lib/tasks/ensure_event_for_product_line_item_guests.rake
2675
2802
  - lib/tasks/ensure_number_for_line_items.rake
2676
2803
  - lib/tasks/fetch_email.rake
2804
+ - lib/tasks/generate_inventory_items.rake
2677
2805
  - lib/tasks/kh_location_option_values.rake
2678
2806
  - lib/tasks/kh_provinces.rake
2679
2807
  - 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
@@ -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