spree_cm_commissioner 2.0.0.pre.pre → 2.0.1.pre.pre1

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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/.env.example +3 -0
  3. data/.github/workflows/test_and_build_gem.yml +2 -16
  4. data/.gitignore +1 -2
  5. data/Gemfile.lock +1 -28
  6. data/Rakefile +4 -33
  7. data/app/assets/images/cm-hangmeas-checkout_image.svg +63 -0
  8. data/app/assets/images/cm-hangmeas-failed.svg +56 -0
  9. data/app/assets/images/cm-hangmeas-loader.svg +50 -0
  10. data/app/assets/images/cm-hangmeas-success.svg +51 -0
  11. data/app/assets/images/mailer/mail.png +0 -0
  12. data/app/assets/images/mailer/tenant_phone.png +0 -0
  13. data/app/assets/images/mailer/tenant_user.png +0 -0
  14. data/app/assets/javascripts/spree_cm_commissioner/backend.js +1 -0
  15. data/app/assets/javascripts/spree_cm_commissioner/tenant_payment_icon_fields.js +65 -0
  16. data/app/assets/stylesheets/spree_cm_commissioner/backend/calendar.scss +11 -8
  17. data/app/assets/stylesheets/spree_cm_commissioner/backend/commissioner_admin.css.scss +1 -0
  18. data/app/assets/stylesheets/spree_cm_commissioner/backend/tenant_payment_icon_fields.scss +60 -0
  19. data/app/controllers/concerns/spree_cm_commissioner/content_cachable.rb +2 -1
  20. data/app/controllers/concerns/spree_cm_commissioner/transit/taxon_bitwise.rb +44 -0
  21. data/app/controllers/spree/admin/event_blazer_queries_controller.rb +11 -4
  22. data/app/controllers/spree/admin/stock_managements_controller.rb +1 -63
  23. data/app/controllers/spree/admin/tenants_controller.rb +8 -0
  24. data/app/controllers/spree/admin/trip_blazer_queries_controller.rb +35 -0
  25. data/app/controllers/spree/api/v2/organizer/invite_crews_controller.rb +33 -0
  26. data/app/controllers/spree/api/v2/organizer/invite_guests_controller.rb +1 -1
  27. data/app/controllers/spree/api/v2/storefront/accommodations_controller.rb +31 -14
  28. data/app/controllers/spree/api/v2/storefront/dynamic_field_options_controller.rb +5 -1
  29. data/app/controllers/spree/api/v2/storefront/guests_controller.rb +31 -5
  30. data/app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb +2 -2
  31. data/app/controllers/spree/api/v2/tenant/checkout_controller.rb +2 -0
  32. data/app/controllers/spree_cm_commissioner/admin/variants_controller_decorator.rb +1 -1
  33. data/app/controllers/spree_cm_commissioner/api/v2/storefront/checkout_controller_decorator.rb +11 -0
  34. data/app/controllers/spree_cm_commissioner/well_known_controller.rb +31 -17
  35. data/app/factory/spree_cm_commissioner/invite_guest_claimed_telegram_message_factory.rb +23 -82
  36. data/app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb +20 -0
  37. data/app/interactors/spree_cm_commissioner/apple_app_site_association_fetcher.rb +27 -0
  38. data/app/interactors/spree_cm_commissioner/asset_links_fetcher.rb +27 -0
  39. data/app/interactors/spree_cm_commissioner/create_ticket.rb +6 -5
  40. data/app/interactors/spree_cm_commissioner/crew_invite_link_handler.rb +48 -0
  41. data/app/interactors/spree_cm_commissioner/pin_code_sender.rb +0 -1
  42. data/app/interactors/spree_cm_commissioner/sms.rb +1 -1
  43. data/app/interactors/spree_cm_commissioner/telegram_chats_auto_finder.rb +144 -0
  44. data/app/interactors/spree_cm_commissioner/user_id_token_authenticator.rb +7 -3
  45. data/app/interactors/spree_cm_commissioner/user_id_token_checker.rb +11 -3
  46. data/app/interactors/spree_cm_commissioner/user_identity_checker.rb +12 -6
  47. data/app/interactors/spree_cm_commissioner/user_registration_with_id_token.rb +7 -1
  48. data/app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb +5 -1
  49. data/app/jobs/spree_cm_commissioner/application_job.rb +0 -20
  50. data/app/jobs/spree_cm_commissioner/application_unique_job.rb +0 -20
  51. data/app/jobs/spree_cm_commissioner/sms_pin_code_job.rb +1 -1
  52. data/app/mailers/spree/order_mailer_decorator.rb +18 -3
  53. data/app/models/concerns/spree_cm_commissioner/event_check_in_flowable.rb +30 -0
  54. data/app/models/concerns/spree_cm_commissioner/line_item_durationable.rb +15 -9
  55. data/app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb +13 -1
  56. data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +0 -39
  57. data/app/models/concerns/spree_cm_commissioner/product_delegation.rb +3 -1
  58. data/app/models/concerns/spree_cm_commissioner/product_type.rb +0 -10
  59. data/app/models/concerns/spree_cm_commissioner/taxon_kind.rb +1 -1
  60. data/app/models/concerns/spree_cm_commissioner/tenant_preference.rb +5 -0
  61. data/app/models/spree_cm_commissioner/blazer_queryable.rb +8 -0
  62. data/app/models/spree_cm_commissioner/branch.rb +12 -0
  63. data/app/models/spree_cm_commissioner/crew_invite_link.rb +4 -0
  64. data/app/models/spree_cm_commissioner/dynamic_field.rb +17 -3
  65. data/app/models/spree_cm_commissioner/dynamic_field_option.rb +7 -1
  66. data/app/models/spree_cm_commissioner/guest.rb +1 -19
  67. data/app/models/spree_cm_commissioner/guest_dynamic_field.rb +21 -3
  68. data/app/models/spree_cm_commissioner/invite.rb +4 -6
  69. data/app/models/spree_cm_commissioner/invite_team.rb +3 -1
  70. data/app/models/spree_cm_commissioner/line_item_decorator.rb +78 -46
  71. data/app/models/spree_cm_commissioner/line_item_seat.rb +10 -0
  72. data/app/models/spree_cm_commissioner/notification_taxon.rb +1 -1
  73. data/app/models/spree_cm_commissioner/option_type_decorator.rb +11 -1
  74. data/app/models/spree_cm_commissioner/option_value_vehicle_type.rb +8 -0
  75. data/app/models/spree_cm_commissioner/order_decorator.rb +1 -30
  76. data/app/models/spree_cm_commissioner/pin_code.rb +3 -2
  77. data/app/models/spree_cm_commissioner/pin_code_telegram.rb +28 -0
  78. data/app/models/spree_cm_commissioner/place.rb +3 -1
  79. data/app/models/spree_cm_commissioner/product_decorator.rb +4 -10
  80. data/app/models/spree_cm_commissioner/promotion_category_decorator.rb +11 -0
  81. data/app/models/spree_cm_commissioner/service_calendar.rb +2 -0
  82. data/app/models/spree_cm_commissioner/state_decorator.rb +1 -0
  83. data/app/models/spree_cm_commissioner/stock/availability_checker.rb +25 -26
  84. data/app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb +1 -2
  85. data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +3 -3
  86. data/app/models/spree_cm_commissioner/stock_item_decorator.rb +0 -17
  87. data/app/models/spree_cm_commissioner/stop.rb +23 -0
  88. data/app/models/spree_cm_commissioner/taxon_decorator.rb +6 -2
  89. data/app/models/spree_cm_commissioner/taxonomy_decorator.rb +6 -0
  90. data/app/models/spree_cm_commissioner/telegram_chat.rb +6 -0
  91. data/app/models/spree_cm_commissioner/trip.rb +10 -12
  92. data/app/models/spree_cm_commissioner/trip_connection.rb +5 -5
  93. data/app/models/spree_cm_commissioner/trip_stop.rb +3 -2
  94. data/app/models/spree_cm_commissioner/user_identity_provider.rb +26 -4
  95. data/app/models/spree_cm_commissioner/user_taxon.rb +1 -0
  96. data/app/models/spree_cm_commissioner/variant_decorator.rb +47 -36
  97. data/app/models/spree_cm_commissioner/variant_options.rb +23 -0
  98. data/app/models/spree_cm_commissioner/vehicle.rb +14 -9
  99. data/app/models/spree_cm_commissioner/vehicle_seat.rb +11 -0
  100. data/app/models/spree_cm_commissioner/vehicle_type.rb +76 -0
  101. data/app/models/spree_cm_commissioner/vendor_decorator.rb +13 -7
  102. data/app/models/spree_cm_commissioner/vendor_place.rb +5 -6
  103. data/app/models/spree_cm_commissioner/vendor_stop.rb +2 -1
  104. data/app/overrides/spree/admin/taxons/_form/check_in_flows.html.erb.deface +18 -0
  105. data/app/overrides/spree/admin/variants/_form/kyc_field.html.erb.deface +2 -2
  106. data/app/queries/spree_cm_commissioner/guest_searcher_query.rb +45 -3
  107. data/app/queries/spree_cm_commissioner/trip_query.rb +26 -23
  108. data/app/queries/spree_cm_commissioner/trip_search_query.rb +76 -0
  109. data/app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb +45 -0
  110. data/app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb +55 -0
  111. data/app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb +0 -3
  112. data/app/request_schemas/spree_cm_commissioner/application_request_schema.rb +1 -1
  113. data/app/serializers/spree/v2/organizer/invite_crews_serializer.rb +11 -0
  114. data/app/serializers/spree/v2/storefront/accommodation_serializer.rb +0 -2
  115. data/app/serializers/spree/v2/storefront/line_item_serializer_decorator.rb +0 -1
  116. data/app/serializers/spree/v2/tenant/user_serializer.rb +1 -0
  117. data/app/serializers/spree_cm_commissioner/v2/operator/dashboard_crew_event_serializer.rb +4 -1
  118. data/app/serializers/spree_cm_commissioner/v2/storefront/dynamic_field_option_serializer.rb +1 -3
  119. data/app/serializers/spree_cm_commissioner/v2/storefront/dynamic_field_serializer.rb +1 -3
  120. data/app/serializers/spree_cm_commissioner/v2/storefront/guest_dynamic_field_serializer.rb +2 -1
  121. data/app/services/spree_cm_commissioner/organizer/export_guest_csv_service.rb +23 -15
  122. data/app/services/spree_cm_commissioner/user_authenticator.rb +1 -1
  123. data/app/services/spree_cm_commissioner/vehicle_option_value_creator.rb +11 -0
  124. data/app/views/blazer/queries/_content.html.erb +8 -0
  125. data/app/views/spree/admin/stock_managements/_variant_stock_items.html.erb +2 -7
  126. data/app/views/spree/admin/stock_managements/index.html.erb +6 -55
  127. data/app/views/spree/admin/tenants/_form.html.erb +118 -42
  128. data/app/views/spree/admin/vendors/_form.html.erb +14 -0
  129. data/app/views/spree/order_mailer/confirm_email.html.erb +27 -16
  130. data/app/views/spree_cm_commissioner/layouts/order_mailer.html.erb +5 -1
  131. data/app/views/spree_cm_commissioner/order_mailer/_mailer_stylesheets.html.erb +41 -4
  132. data/app/views/spree_cm_commissioner/order_mailer/tenant/_customer_info.html.erb +42 -0
  133. data/app/views/spree_cm_commissioner/order_mailer/tenant/_footer.html.erb +25 -0
  134. data/app/views/spree_cm_commissioner/order_mailer/tenant/_greeting.html.erb +19 -0
  135. data/app/views/spree_cm_commissioner/order_mailer/tenant/_support_contact.html.erb +33 -0
  136. data/config/initializers/spree_permitted_attributes.rb +2 -5
  137. data/config/locales/en.yml +5 -0
  138. data/config/routes.rb +6 -22
  139. data/db/migrate/20240202080634_update_counter_cache_of_vehicle_type.rb +1 -3
  140. data/db/migrate/20250616084219_add_description_to_cm_vendor_place.rb +5 -0
  141. data/db/migrate/20250630103536_create_cm_telegram_chats.rb +13 -0
  142. data/db/migrate/20250701093203_add_configurations_to_cm_dynamic_field.rb +6 -0
  143. data/db/migrate/20250702091305_add_dynamic_field_option_to_guest_dynamic_field.rb +5 -0
  144. data/db/migrate/20250702091935_add_status_to_dynamic_field_option.rb +5 -0
  145. data/db/migrate/20250707032008_add_vendor_id_to_spree_category.rb +7 -0
  146. data/db/migrate/20250709073455_add_email_fields_to_spree_vendors.rb +6 -0
  147. data/db/migrate/20250711092937_add_position_to_cm_dynamic_fields.rb +11 -0
  148. data/db/migrate/20250711093045_add_position_to_cm_dynamic_field_options.rb +11 -0
  149. data/db/migrate/20250714121508_rename_cm_taxon_blazer_query_to_blazer_queryables.rb +7 -0
  150. data/db/migrate/20250714124323_make_cm_blazer_queryables_polymorphic.rb +19 -0
  151. data/db/migrate/20250715103333_remove_indexes_from_cm_user_identity_providers.rb +13 -0
  152. data/docker-compose.yml +1 -1
  153. data/lib/cm_app_logger.rb +4 -11
  154. data/lib/generators/spree_cm_commissioner/install/install_generator.rb +11 -14
  155. data/lib/generators/spree_cm_commissioner/install/templates/app/javascript/{spree_dashboard/spree_cm_commissioner → spree_cm_commissioner}/utilities.js +0 -4
  156. data/lib/spree_cm_commissioner/calendar_event.rb +1 -11
  157. data/lib/spree_cm_commissioner/test_helper/factories/branch_factory.rb +12 -0
  158. data/lib/spree_cm_commissioner/test_helper/factories/departure_time_option_type_factory.rb +8 -0
  159. data/lib/spree_cm_commissioner/test_helper/factories/duration_option_type_factory.rb +8 -0
  160. data/lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb +0 -10
  161. data/lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb +1 -1
  162. data/lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb +1 -1
  163. data/lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb +7 -0
  164. data/lib/spree_cm_commissioner/test_helper/factories/option_type_factory.rb +30 -6
  165. data/lib/spree_cm_commissioner/test_helper/factories/order_factory.rb +36 -0
  166. data/lib/spree_cm_commissioner/test_helper/factories/product_factory.rb +34 -18
  167. data/lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb +2 -2
  168. data/lib/spree_cm_commissioner/test_helper/factories/stop_factory.rb +14 -0
  169. data/lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb +8 -0
  170. data/lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb +3 -10
  171. data/lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb +1 -1
  172. data/lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb +19 -41
  173. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb +1 -1
  174. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_option_type_factory.rb +8 -0
  175. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_type_factory.rb +96 -0
  176. data/lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb +1 -1
  177. data/lib/spree_cm_commissioner/trip_seat_layout_result.rb +11 -0
  178. data/lib/spree_cm_commissioner/version.rb +1 -1
  179. data/lib/spree_cm_commissioner.rb +1 -35
  180. data/spree_cm_commissioner.gemspec +0 -7
  181. metadata +63 -133
  182. data/app/controllers/spree/admin/inventory_items_controller.rb +0 -83
  183. data/app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb +0 -42
  184. data/app/finders/spree_cm_commissioner/accommodations/find.rb +0 -37
  185. data/app/finders/spree_cm_commissioner/accommodations/find_variant.rb +0 -32
  186. data/app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb +0 -40
  187. data/app/interactors/spree_cm_commissioner/inventory_item_syncer.rb +0 -25
  188. data/app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb +0 -44
  189. data/app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb +0 -13
  190. data/app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb +0 -15
  191. data/app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb +0 -75
  192. data/app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb +0 -32
  193. data/app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb +0 -7
  194. data/app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb +0 -7
  195. data/app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb +0 -11
  196. data/app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb +0 -11
  197. data/app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb +0 -9
  198. data/app/models/concerns/spree_cm_commissioner/order_seatable.rb +0 -44
  199. data/app/models/spree_cm_commissioner/block.rb +0 -23
  200. data/app/models/spree_cm_commissioner/inventory.rb +0 -11
  201. data/app/models/spree_cm_commissioner/inventory_item.rb +0 -69
  202. data/app/models/spree_cm_commissioner/price_decorator.rb +0 -9
  203. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +0 -41
  204. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +0 -126
  205. data/app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb +0 -36
  206. data/app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb +0 -25
  207. data/app/models/spree_cm_commissioner/reserved_block.rb +0 -30
  208. data/app/models/spree_cm_commissioner/seat_layout.rb +0 -20
  209. data/app/models/spree_cm_commissioner/seat_section.rb +0 -16
  210. data/app/models/spree_cm_commissioner/seats/blocks_canceler.rb +0 -30
  211. data/app/models/spree_cm_commissioner/seats/blocks_holder.rb +0 -53
  212. data/app/models/spree_cm_commissioner/seats/blocks_reserver.rb +0 -49
  213. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_on_hold_by_other_guest.rb +0 -4
  214. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_other_guest.rb +0 -4
  215. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_same_guest.rb +0 -4
  216. data/app/models/spree_cm_commissioner/seats/errors/unable_to_save_reserved_block_record.rb +0 -4
  217. data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +0 -44
  218. data/app/models/spree_cm_commissioner/taxon_blazer_query.rb +0 -8
  219. data/app/models/spree_cm_commissioner/variant_block.rb +0 -9
  220. data/app/request_schemas/spree_cm_commissioner/variant_request_schema.rb +0 -19
  221. data/app/views/spree/admin/inventory_items/show.html.erb +0 -72
  222. data/app/views/spree/admin/stock_managements/calendar.html.erb +0 -56
  223. data/config/initializers/paper_trail.rb +0 -1
  224. data/db/migrate/20250304293518_create_cm_inventory_items.rb +0 -21
  225. data/db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb +0 -5
  226. data/db/migrate/20250502025848_add_index_to_spree_products.rb +0 -5
  227. data/db/migrate/20250502030001_add_product_type_to_spree_variants.rb +0 -5
  228. data/db/migrate/20250502030002_add_product_type_to_spree_line_items.rb +0 -5
  229. data/db/migrate/20250603035256_add_inventory_item_to_spree_prices.rb +0 -7
  230. data/db/migrate/20250619073724_drop_table_cm_line_item_seats.rb +0 -5
  231. data/db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb +0 -5
  232. data/db/migrate/20250619073844_drop_table_cm_vehicle_types.rb +0 -9
  233. data/db/migrate/20250619073957_drop_table_cm_option_value_vehicle_types.rb +0 -5
  234. data/db/migrate/20250619082354_remove_unnecessary_fields_from_cm_places.rb +0 -9
  235. data/db/migrate/20250619082736_remove_route_type_from_spree_products.rb +0 -5
  236. data/db/migrate/20250619083055_remove_unnecessary_fields_from_spree_taxons.rb +0 -5
  237. data/db/migrate/20250620083055_remove_variant_id_from_cm_trips.rb +0 -5
  238. data/db/migrate/20250620090000_update_cm_trip_connections_to_use_cm_trips.rb +0 -6
  239. data/db/migrate/20250620090001_create_cm_seat_layouts.rb +0 -17
  240. data/db/migrate/20250620090002_create_cm_seat_sections.rb +0 -18
  241. data/db/migrate/20250620090003_create_cm_blocks.rb +0 -18
  242. data/db/migrate/20250624091005_create_cm_reserved_blocks.rb +0 -29
  243. data/db/migrate/20250626083642_create_cm_variant_blocks.rb +0 -24
  244. data/db/migrate/20250627023314_add_block_id_to_cm_guests.rb +0 -13
  245. data/lib/spree_cm_commissioner/cached_inventory_item.rb +0 -23
  246. data/lib/spree_cm_commissioner/test_helper/factories/block_factory.rb +0 -9
  247. data/lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb +0 -9
  248. data/lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb +0 -27
  249. data/lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb +0 -8
  250. data/lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb +0 -8
  251. data/lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb +0 -6
  252. data/lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb +0 -7
  253. data/lib/tasks/create_default_non_permanent_inventory_items.rake +0 -16
  254. data/lib/tasks/ensure_correct_product_type.rake +0 -7
  255. data/lib/tasks/generate_inventory_items.rake +0 -7
@@ -1 +0,0 @@
1
- PaperTrail.enabled = true
@@ -1,21 +0,0 @@
1
- class CreateCmInventoryItems < ActiveRecord::Migration[7.0]
2
- def up
3
- create_table :cm_inventory_items, if_not_exists: true do |t|
4
- t.integer :variant_id
5
- t.date :inventory_date
6
- t.integer :max_capacity, default: 0, null: false
7
- t.integer :quantity_available, default: 0, null: false
8
- t.integer :product_type, default: 0, null: false
9
-
10
- t.timestamps
11
- end
12
-
13
- add_index :cm_inventory_items, :variant_id, if_not_exists: true
14
- add_index :cm_inventory_items, :inventory_date, if_not_exists: true
15
- add_index :cm_inventory_items, [:variant_id, :inventory_date], unique: true, if_not_exists: true
16
- end
17
-
18
- def down
19
- drop_table :cm_inventory_items
20
- end
21
- end
@@ -1,5 +0,0 @@
1
- class AddLockVersionToCmInventoryItems < ActiveRecord::Migration[7.0]
2
- def change
3
- add_column :cm_inventory_items, :lock_version, :integer, default: 0, null: false, if_not_exists: true
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class AddIndexToSpreeProducts < ActiveRecord::Migration[7.0]
2
- def change
3
- add_index :spree_products, :product_type unless index_exists?(:spree_products, :product_type)
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class AddProductTypeToSpreeVariants < ActiveRecord::Migration[7.0]
2
- def change
3
- add_column :spree_variants, :product_type, :integer, if_not_exists: true
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class AddProductTypeToSpreeLineItems < ActiveRecord::Migration[7.0]
2
- def change
3
- add_column :spree_line_items, :product_type, :integer, if_not_exists: true
4
- end
5
- end
@@ -1,7 +0,0 @@
1
- class AddInventoryItemToSpreePrices < ActiveRecord::Migration[7.0]
2
- def change
3
- unless column_exists?(:spree_prices, :inventory_item_id)
4
- add_reference :spree_prices, :inventory_item, foreign_key: { to_table: :cm_inventory_items }
5
- end
6
- end
7
- end
@@ -1,5 +0,0 @@
1
- class DropTableCmLineItemSeats < ActiveRecord::Migration[7.0]
2
- def change
3
- drop_table :cm_line_item_seats, if_exists: true
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class DropTableCmVehicleSeats < ActiveRecord::Migration[7.0]
2
- def change
3
- drop_table :cm_vehicle_seats, if_exists: true
4
- end
5
- end
@@ -1,9 +0,0 @@
1
- class DropTableCmVehicleTypes < ActiveRecord::Migration[7.0]
2
- def change
3
- if column_exists?(:cm_vehicles, :vehicle_type_id)
4
- remove_reference :cm_vehicles, :vehicle_type, foreign_key: { to_table: :cm_vehicle_types }
5
- end
6
-
7
- drop_table :cm_vehicle_types, if_exists: true
8
- end
9
- end
@@ -1,5 +0,0 @@
1
- class DropTableCmOptionValueVehicleTypes < ActiveRecord::Migration[7.0]
2
- def change
3
- drop_table :cm_option_value_vehicle_types, if_exists: true
4
- end
5
- end
@@ -1,9 +0,0 @@
1
- class RemoveUnnecessaryFieldsFromCmPlaces < ActiveRecord::Migration[7.0]
2
- def change
3
- # It is for single table inheritance (branch, stop)
4
- # Remove it as we no longer need.
5
- remove_column :cm_places, :type if column_exists?(:cm_places, :type)
6
- remove_column :cm_places, :vendor_id if column_exists?(:cm_places, :vendor_id)
7
- remove_column :cm_places, :branch_id if column_exists?(:cm_places, :branch_id)
8
- end
9
- end
@@ -1,5 +0,0 @@
1
- class RemoveRouteTypeFromSpreeProducts < ActiveRecord::Migration[7.0]
2
- def change
3
- remove_column :spree_products, :route_type if column_exists?(:spree_products, :route_type)
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class RemoveUnnecessaryFieldsFromSpreeTaxons < ActiveRecord::Migration[7.0]
2
- def change
3
- remove_column :spree_taxons, :data_type if column_exists?(:spree_taxons, :data_type)
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class RemoveVariantIdFromCmTrips < ActiveRecord::Migration[7.0]
2
- def change
3
- remove_column :cm_trips, :variant_id if column_exists?(:cm_trips, :variant_id)
4
- end
5
- end
@@ -1,6 +0,0 @@
1
- class UpdateCmTripConnectionsToUseCmTrips < ActiveRecord::Migration[7.0]
2
- def change
3
- remove_foreign_key :cm_trip_connections, column: :from_trip_id if foreign_key_exists?(:cm_trip_connections, column: :from_trip_id)
4
- remove_foreign_key :cm_trip_connections, column: :to_trip_id if foreign_key_exists?(:cm_trip_connections, column: :to_trip_id)
5
- end
6
- end
@@ -1,17 +0,0 @@
1
- class CreateCmSeatLayouts < ActiveRecord::Migration[7.0]
2
- def change
3
- create_table :cm_seat_layouts, if_not_exists: true do |t|
4
- t.string :name
5
- t.integer :total_seats
6
- t.integer :total_sections
7
- t.integer :status, default: 0
8
-
9
- t.float :width
10
- t.float :height
11
-
12
- t.references :layoutable, polymorphic: true, index: true
13
-
14
- t.timestamps
15
- end
16
- end
17
- end
@@ -1,18 +0,0 @@
1
- class CreateCmSeatSections < ActiveRecord::Migration[7.0]
2
- def change
3
- create_table :cm_seat_sections, if_not_exists: true do |t|
4
- t.string :name
5
- t.references :seat_layout, foreign_key: { to_table: :cm_seat_layouts }, null: false
6
- t.integer :total_seats
7
-
8
- t.float :width
9
- t.float :height
10
- t.float :x
11
- t.float :y
12
- t.float :rotation
13
- t.string :shape_path
14
-
15
- t.timestamps
16
- end
17
- end
18
- end
@@ -1,18 +0,0 @@
1
- class CreateCmBlocks < ActiveRecord::Migration[7.0]
2
- def change
3
- create_table :cm_blocks, if_not_exists: true do |t|
4
- t.string :label
5
-
6
- t.references :seat_layout, foreign_key: { to_table: :cm_seat_layouts }, null: false
7
- t.references :seat_section, foreign_key: { to_table: :cm_seat_sections }, null: true
8
-
9
- t.float :width
10
- t.float :height
11
- t.float :x
12
- t.float :y
13
- t.float :rotation
14
-
15
- t.timestamps
16
- end
17
- end
18
- end
@@ -1,29 +0,0 @@
1
- class CreateCmReservedBlocks < ActiveRecord::Migration[7.0]
2
- def up
3
- create_table :cm_reserved_blocks, if_not_exists: true do |t|
4
- t.references :updated_by, foreign_key: { to_table: :spree_users }, null: true
5
- t.references :guest, foreign_key: { to_table: :cm_guests }, null: true
6
- t.references :inventory_item, foreign_key: { to_table: :cm_inventory_items }, null: false
7
- t.references :block, null: false, foreign_key: { to_table: :cm_blocks }
8
-
9
- t.integer :status, null: false
10
-
11
- t.datetime :inventory_date
12
- t.datetime :expired_at
13
-
14
- t.timestamps
15
- end
16
-
17
- unless index_exists?(:cm_reserved_blocks, [:block_id, :inventory_item_id], unique: true)
18
- add_index :cm_reserved_blocks, [:block_id, :inventory_item_id], unique: true, name: 'index_reserved_blocks_on_block_and_inventory_item'
19
- end
20
- end
21
-
22
- def down
23
- if index_exists?(:cm_reserved_blocks, [:block_id, :inventory_item_id], name: 'index_reserved_blocks_on_block_and_inventory_item')
24
- remove_index :cm_reserved_blocks, name: 'index_reserved_blocks_on_block_and_inventory_item'
25
- end
26
-
27
- drop_table :cm_reserved_blocks, if_exists: true
28
- end
29
- end
@@ -1,24 +0,0 @@
1
-
2
- class CreateCmVariantBlocks < ActiveRecord::Migration[7.0]
3
- def up
4
- create_table :cm_variant_blocks, if_not_exists: true do |t|
5
- t.references :variant, null: false, foreign_key: { to_table: :spree_variants }
6
- t.references :trip, null: false, foreign_key: { to_table: :cm_trips }
7
- t.references :block, null: false, foreign_key: { to_table: :cm_blocks }
8
-
9
- t.timestamps
10
- end
11
-
12
- unless index_exists?(:cm_variant_blocks, [:variant_id, :trip_id, :block_id], unique: true, name: 'index_variant_blocks_on_variant_trip_block')
13
- add_index :cm_variant_blocks, [:variant_id, :trip_id, :block_id], unique: true, name: 'index_variant_blocks_on_variant_trip_block'
14
- end
15
- end
16
-
17
- def down
18
- if index_exists?(:cm_variant_blocks, [:variant_id, :trip_id, :block_id], name: 'index_variant_blocks_on_variant_trip_block')
19
- remove_index :cm_variant_blocks, name: 'index_variant_blocks_on_variant_trip_block'
20
- end
21
-
22
- drop_table :cm_variant_blocks, if_exists: true
23
- end
24
- end
@@ -1,13 +0,0 @@
1
- class AddBlockIdToCmGuests < ActiveRecord::Migration[7.0]
2
- def up
3
- unless column_exists?(:cm_guests, :block_id)
4
- add_reference :cm_guests, :block, foreign_key: { to_table: :cm_blocks }
5
- end
6
- end
7
-
8
- def down
9
- if column_exists?(:cm_guests, :block_id)
10
- remove_column :cm_guests, :block_id
11
- end
12
- end
13
- end
@@ -1,23 +0,0 @@
1
- module SpreeCmCommissioner
2
- class CachedInventoryItem
3
- attr_reader :inventory_key, :active, :quantity_available, :inventory_item_id, :variant_id
4
-
5
- def initialize(inventory_key:, active:, quantity_available:, inventory_item_id:, variant_id:)
6
- @inventory_key = inventory_key
7
- @active = active
8
- @quantity_available = quantity_available
9
- @inventory_item_id = inventory_item_id
10
- @variant_id = variant_id
11
- end
12
-
13
- def active?
14
- active
15
- end
16
-
17
- def to_h
18
- instance_variables.each_with_object({}) do |var, hash|
19
- hash[var.to_s.delete('@').to_sym] = instance_variable_get(var)
20
- end
21
- end
22
- end
23
- end
@@ -1,9 +0,0 @@
1
- FactoryBot.define do
2
- factory :cm_block, class: SpreeCmCommissioner::Block do
3
- association :seat_section, factory: :cm_seat_section
4
-
5
- label { "A1" }
6
- row_index { 1 }
7
- column_index { 1 }
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- FactoryBot.define do
2
- factory :cm_inventory_item, class: SpreeCmCommissioner::InventoryItem do
3
- variant { create(:cm_variant) }
4
- max_capacity { 10 }
5
- quantity_available { 10 }
6
- product_type { 'accommodation' }
7
- inventory_date { Date.today }
8
- end
9
- end
@@ -1,27 +0,0 @@
1
- FactoryBot.define do
2
- factory :cm_reserved_block, class: SpreeCmCommissioner::ReservedBlock do
3
- association :inventory_item, factory: :cm_inventory_item
4
- association :block, factory: :cm_block
5
- association :guest, factory: :guest
6
- association :updated_by, factory: :user
7
-
8
- status { :on_hold } # or :reserved, :canceled based on enum
9
- inventory_date { Time.current }
10
- expired_at { 10.minutes.from_now }
11
-
12
- trait :reserved do
13
- status { :reserved }
14
- expired_at { nil }
15
- end
16
-
17
- trait :on_hold do
18
- status { :on_hold }
19
- expired_at { 8.minutes.from_now }
20
- end
21
-
22
- trait :canceled do
23
- status { :canceled }
24
- expired_at { nil }
25
- end
26
- end
27
- end
@@ -1,8 +0,0 @@
1
- FactoryBot.define do
2
- factory :cm_seat_layout, class: SpreeCmCommissioner::SeatLayout do
3
- name { "VIP Layout" }
4
- layout_type { :grid }
5
- status { :active }
6
- association :layoutable, factory: :cm_vehicle
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- FactoryBot.define do
2
- factory :cm_seat_section, class: SpreeCmCommissioner::SeatSection do
3
- association :seat_layout, factory: :cm_seat_layout
4
- name { "Front Section" }
5
- row { 10 }
6
- column { 10 }
7
- end
8
- end
@@ -1,6 +0,0 @@
1
- FactoryBot.define do
2
- factory :cm_trip_connection, class: SpreeCmCommissioner::TripConnection do
3
- from_trip_id { create(:cm_trip) }
4
- to_trip_id { create(:cm_trip) }
5
- end
6
- end
@@ -1,7 +0,0 @@
1
- FactoryBot.define do
2
- factory :cm_variant_block, class: SpreeCmCommissioner::VariantBlock do
3
- association :variant, factory: :cm_variant
4
- association :trip, factory: :cm_trip
5
- association :block, factory: :cm_block
6
- end
7
- end
@@ -1,16 +0,0 @@
1
- # recommend to be used in schedule.yml & manually access in /sidekiq/cron
2
- namespace :spree_cm_commissioner do
3
- desc 'Create default inventory items for non-permanent stock products'
4
- task create_default_non_permanent_inventory_items: :environment do
5
- Spree::Variant.active.with_non_permanent_stock.find_each do |variant|
6
- total_purchases = variant.complete_line_items.sum(:quantity).to_i || 0
7
- max_capacity = variant.total_on_hand || 0
8
- quantity_available = [max_capacity - total_purchases, 0].max
9
-
10
- variant.create_default_non_permanent_inventory_item!(
11
- max_capacity: max_capacity,
12
- quantity_available: quantity_available
13
- )
14
- end
15
- end
16
- end
@@ -1,7 +0,0 @@
1
- # recommend to be used in schedule.yml & manually access in /sidekiq/cron
2
- namespace :spree_cm_commissioner do
3
- desc 'Ensure product_type in variants, line_items, inventory_items are correct with product'
4
- task ensure_correct_product_type: :environment do
5
- SpreeCmCommissioner::EnsureCorrectProductTypeJob.perform_now
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- # recommend to be used in schedule.yml & schedule run it everyday
2
- namespace :spree_cm_commissioner do
3
- desc 'Generate inventory items for permanent_stock variants.'
4
- task generate_inventory_items: :environment do
5
- SpreeCmCommissioner::Stock::PermanentInventoryItemsGeneratorJob.perform_now
6
- end
7
- end