spree_cm_commissioner 2.0.0.pre.pre → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) 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 -32
  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 +30 -4
  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 -81
  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 +37 -3
  65. data/app/models/spree_cm_commissioner/dynamic_field_option.rb +7 -1
  66. data/app/models/spree_cm_commissioner/guest.rb +57 -19
  67. data/app/models/spree_cm_commissioner/guest_dynamic_field.rb +61 -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 +26 -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/tenant_vendors/index.html.erb +9 -2
  128. data/app/views/spree/admin/tenants/_form.html.erb +118 -42
  129. data/app/views/spree/admin/tenants/edit.html.erb +2 -1
  130. data/app/views/spree/admin/tenants/index.html.erb +7 -1
  131. data/app/views/spree/admin/vendors/_form.html.erb +14 -0
  132. data/app/views/spree/order_mailer/confirm_email.html.erb +27 -16
  133. data/app/views/spree_cm_commissioner/layouts/order_mailer.html.erb +5 -1
  134. data/app/views/spree_cm_commissioner/order_mailer/_mailer_stylesheets.html.erb +41 -4
  135. data/app/views/spree_cm_commissioner/order_mailer/tenant/_customer_info.html.erb +42 -0
  136. data/app/views/spree_cm_commissioner/order_mailer/tenant/_footer.html.erb +25 -0
  137. data/app/views/spree_cm_commissioner/order_mailer/tenant/_greeting.html.erb +19 -0
  138. data/app/views/spree_cm_commissioner/order_mailer/tenant/_support_contact.html.erb +33 -0
  139. data/config/initializers/spree_permitted_attributes.rb +2 -5
  140. data/config/locales/en.yml +10 -1
  141. data/config/routes.rb +6 -22
  142. data/db/migrate/20240202080634_update_counter_cache_of_vehicle_type.rb +1 -3
  143. data/db/migrate/20250616084219_add_description_to_cm_vendor_place.rb +5 -0
  144. data/db/migrate/20250630103536_create_cm_telegram_chats.rb +13 -0
  145. data/db/migrate/20250701093203_add_configurations_to_cm_dynamic_field.rb +6 -0
  146. data/db/migrate/20250702091305_add_dynamic_field_option_to_guest_dynamic_field.rb +5 -0
  147. data/db/migrate/20250702091935_add_status_to_dynamic_field_option.rb +5 -0
  148. data/db/migrate/20250707032008_add_vendor_id_to_spree_category.rb +7 -0
  149. data/db/migrate/20250709073455_add_email_fields_to_spree_vendors.rb +6 -0
  150. data/db/migrate/20250711092937_add_position_to_cm_dynamic_fields.rb +11 -0
  151. data/db/migrate/20250711093045_add_position_to_cm_dynamic_field_options.rb +11 -0
  152. data/db/migrate/20250714121508_rename_cm_taxon_blazer_query_to_blazer_queryables.rb +7 -0
  153. data/db/migrate/20250714124323_make_cm_blazer_queryables_polymorphic.rb +19 -0
  154. data/db/migrate/20250715103333_remove_indexes_from_cm_user_identity_providers.rb +13 -0
  155. data/db/migrate/20250718071620_add_data_fill_stage_to_dynamic_fields.rb +5 -0
  156. data/docker-compose.yml +1 -1
  157. data/lib/cm_app_logger.rb +4 -11
  158. data/lib/generators/spree_cm_commissioner/install/install_generator.rb +11 -14
  159. data/lib/generators/spree_cm_commissioner/install/templates/app/javascript/{spree_dashboard/spree_cm_commissioner → spree_cm_commissioner}/utilities.js +0 -4
  160. data/lib/spree_cm_commissioner/calendar_event.rb +1 -11
  161. data/lib/spree_cm_commissioner/test_helper/factories/branch_factory.rb +12 -0
  162. data/lib/spree_cm_commissioner/test_helper/factories/departure_time_option_type_factory.rb +8 -0
  163. data/lib/spree_cm_commissioner/test_helper/factories/duration_option_type_factory.rb +8 -0
  164. data/lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb +0 -10
  165. data/lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb +1 -1
  166. data/lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb +1 -1
  167. data/lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb +7 -0
  168. data/lib/spree_cm_commissioner/test_helper/factories/option_type_factory.rb +30 -6
  169. data/lib/spree_cm_commissioner/test_helper/factories/order_factory.rb +36 -0
  170. data/lib/spree_cm_commissioner/test_helper/factories/product_factory.rb +34 -18
  171. data/lib/spree_cm_commissioner/test_helper/factories/stock_location_factory.rb +2 -2
  172. data/lib/spree_cm_commissioner/test_helper/factories/stop_factory.rb +14 -0
  173. data/lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb +8 -0
  174. data/lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb +3 -10
  175. data/lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb +1 -1
  176. data/lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb +19 -41
  177. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb +1 -1
  178. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_option_type_factory.rb +8 -0
  179. data/lib/spree_cm_commissioner/test_helper/factories/vehicle_type_factory.rb +96 -0
  180. data/lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb +1 -1
  181. data/lib/spree_cm_commissioner/trip_seat_layout_result.rb +11 -0
  182. data/lib/spree_cm_commissioner/version.rb +1 -1
  183. data/lib/spree_cm_commissioner.rb +1 -35
  184. data/spree_cm_commissioner.gemspec +0 -7
  185. metadata +66 -135
  186. data/app/controllers/spree/admin/inventory_items_controller.rb +0 -83
  187. data/app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb +0 -42
  188. data/app/finders/spree_cm_commissioner/accommodations/find.rb +0 -37
  189. data/app/finders/spree_cm_commissioner/accommodations/find_variant.rb +0 -32
  190. data/app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb +0 -40
  191. data/app/interactors/spree_cm_commissioner/inventory_item_syncer.rb +0 -25
  192. data/app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb +0 -44
  193. data/app/interactors/spree_cm_commissioner/stock/inventory_items_adjuster.rb +0 -13
  194. data/app/interactors/spree_cm_commissioner/stock/inventory_items_generator.rb +0 -15
  195. data/app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb +0 -75
  196. data/app/interactors/spree_cm_commissioner/stock/stock_movement_creator.rb +0 -32
  197. data/app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb +0 -7
  198. data/app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb +0 -7
  199. data/app/jobs/spree_cm_commissioner/stock/inventory_items_adjuster_job.rb +0 -11
  200. data/app/jobs/spree_cm_commissioner/stock/inventory_items_generator_job.rb +0 -11
  201. data/app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb +0 -9
  202. data/app/models/concerns/spree_cm_commissioner/order_seatable.rb +0 -44
  203. data/app/models/spree_cm_commissioner/block.rb +0 -23
  204. data/app/models/spree_cm_commissioner/inventory.rb +0 -11
  205. data/app/models/spree_cm_commissioner/inventory_item.rb +0 -69
  206. data/app/models/spree_cm_commissioner/price_decorator.rb +0 -9
  207. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +0 -41
  208. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +0 -126
  209. data/app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb +0 -36
  210. data/app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb +0 -25
  211. data/app/models/spree_cm_commissioner/reserved_block.rb +0 -30
  212. data/app/models/spree_cm_commissioner/seat_layout.rb +0 -20
  213. data/app/models/spree_cm_commissioner/seat_section.rb +0 -16
  214. data/app/models/spree_cm_commissioner/seats/blocks_canceler.rb +0 -30
  215. data/app/models/spree_cm_commissioner/seats/blocks_holder.rb +0 -53
  216. data/app/models/spree_cm_commissioner/seats/blocks_reserver.rb +0 -49
  217. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_on_hold_by_other_guest.rb +0 -4
  218. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_other_guest.rb +0 -4
  219. data/app/models/spree_cm_commissioner/seats/errors/blocks_are_reserved_by_same_guest.rb +0 -4
  220. data/app/models/spree_cm_commissioner/seats/errors/unable_to_save_reserved_block_record.rb +0 -4
  221. data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +0 -44
  222. data/app/models/spree_cm_commissioner/taxon_blazer_query.rb +0 -8
  223. data/app/models/spree_cm_commissioner/variant_block.rb +0 -9
  224. data/app/request_schemas/spree_cm_commissioner/variant_request_schema.rb +0 -19
  225. data/app/views/spree/admin/inventory_items/show.html.erb +0 -72
  226. data/app/views/spree/admin/stock_managements/calendar.html.erb +0 -56
  227. data/config/initializers/paper_trail.rb +0 -1
  228. data/db/migrate/20250304293518_create_cm_inventory_items.rb +0 -21
  229. data/db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb +0 -5
  230. data/db/migrate/20250502025848_add_index_to_spree_products.rb +0 -5
  231. data/db/migrate/20250502030001_add_product_type_to_spree_variants.rb +0 -5
  232. data/db/migrate/20250502030002_add_product_type_to_spree_line_items.rb +0 -5
  233. data/db/migrate/20250603035256_add_inventory_item_to_spree_prices.rb +0 -7
  234. data/db/migrate/20250619073724_drop_table_cm_line_item_seats.rb +0 -5
  235. data/db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb +0 -5
  236. data/db/migrate/20250619073844_drop_table_cm_vehicle_types.rb +0 -9
  237. data/db/migrate/20250619073957_drop_table_cm_option_value_vehicle_types.rb +0 -5
  238. data/db/migrate/20250619082354_remove_unnecessary_fields_from_cm_places.rb +0 -9
  239. data/db/migrate/20250619082736_remove_route_type_from_spree_products.rb +0 -5
  240. data/db/migrate/20250619083055_remove_unnecessary_fields_from_spree_taxons.rb +0 -5
  241. data/db/migrate/20250620083055_remove_variant_id_from_cm_trips.rb +0 -5
  242. data/db/migrate/20250620090000_update_cm_trip_connections_to_use_cm_trips.rb +0 -6
  243. data/db/migrate/20250620090001_create_cm_seat_layouts.rb +0 -17
  244. data/db/migrate/20250620090002_create_cm_seat_sections.rb +0 -18
  245. data/db/migrate/20250620090003_create_cm_blocks.rb +0 -18
  246. data/db/migrate/20250624091005_create_cm_reserved_blocks.rb +0 -29
  247. data/db/migrate/20250626083642_create_cm_variant_blocks.rb +0 -24
  248. data/db/migrate/20250627023314_add_block_id_to_cm_guests.rb +0 -13
  249. data/lib/spree_cm_commissioner/cached_inventory_item.rb +0 -23
  250. data/lib/spree_cm_commissioner/test_helper/factories/block_factory.rb +0 -9
  251. data/lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb +0 -9
  252. data/lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb +0 -27
  253. data/lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb +0 -8
  254. data/lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb +0 -8
  255. data/lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb +0 -6
  256. data/lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb +0 -7
  257. data/lib/tasks/create_default_non_permanent_inventory_items.rake +0 -16
  258. data/lib/tasks/ensure_correct_product_type.rake +0 -7
  259. data/lib/tasks/generate_inventory_items.rake +0 -7
@@ -3,17 +3,21 @@
3
3
  <div class="col-6">
4
4
  <%= f.field_container :name do %>
5
5
  <%= f.label :name, raw(Spree.t(:name) + required_span_tag) %>
6
- <%= f.text_field :name, required: true, class: 'form-control', placeholder: 'eg. bookme plus'%>
7
- <%= f.error_message_on :name %>
6
+ <%= f.text_field :name, required: true, class: 'form-control', placeholder: 'eg. bookme plus' %>
7
+ <% if f.object.errors[:name].any? %>
8
+ <div class="error text-danger"><%= f.object.errors[:name].join(', ') %></div>
9
+ <% end %>
8
10
  <% end %>
9
11
  </div>
10
12
 
11
- <!-- Slug Field (only show if editing) -->
13
+ <!-- Slug Field -->
12
14
  <div class="col-6">
13
15
  <%= f.field_container :slug do %>
14
16
  <%= f.label :slug, raw(Spree.t(:slug)) %>
15
17
  <%= f.text_field :slug, class: 'form-control', placeholder: 'slug' %>
16
- <%= f.error_message_on :slug %>
18
+ <% if f.object.errors[:slug].any? %>
19
+ <div class="error text-danger"><%= f.object.errors[:slug].join(', ') %></div>
20
+ <% end %>
17
21
  <% end %>
18
22
  </div>
19
23
 
@@ -22,16 +26,20 @@
22
26
  <%= f.field_container :description do %>
23
27
  <%= f.label :description, raw(Spree.t(:description)) %>
24
28
  <%= f.text_area :description, class: 'form-control', placeholder: 'description' %>
25
- <%= f.error_message_on :description %>
29
+ <% if f.object.errors[:description].any? %>
30
+ <div class="error text-danger"><%= f.object.errors[:description].join(', ') %></div>
31
+ <% end %>
26
32
  <% end %>
27
33
  </div>
28
34
 
29
- <!-- Host Field -->
35
+ <!-- Host Field -->
30
36
  <div class="col-12">
31
37
  <%= f.field_container :host do %>
32
38
  <%= f.label :host, raw(Spree.t(:host) + required_span_tag) %>
33
39
  <%= f.text_field :host, required: true, class: 'form-control', placeholder: 'host' %>
34
- <%= f.error_message_on :host %>
40
+ <% if f.object.errors[:host].any? %>
41
+ <div class="error text-danger"><%= f.object.errors[:host].join(', ') %></div>
42
+ <% end %>
35
43
  <% end %>
36
44
  </div>
37
45
 
@@ -39,21 +47,26 @@
39
47
  <div class="col-12">
40
48
  <%= f.field_container :preferred_assetlinks do %>
41
49
  <%= f.label :preferred_assetlinks, raw(Spree.t(:assetlinks)) %>
42
- <%= f.text_area :preferred_assetlinks, class: 'form-control',
43
- placeholder: 'example:
44
- [
45
- {
46
- "relation": ["delegate_permission/common.handle_all_urls"],
47
- "target": {
48
- "namespace": "android_app",
49
- "package_name": "com.yourapp.app",
50
- "sha256_cert_fingerprints": [
51
- "SHA256_CERTIFICATE_FINGERPRINT_HERE"
52
- ]
53
- }
54
- }
55
- ]', rows: 5 %>
56
- <%= f.error_message_on :preferred_assetlinks %>
50
+ <%= f.text_area :preferred_assetlinks, class: 'form-control', rows: 5,
51
+ placeholder: <<~JSON.strip
52
+ example:
53
+ [
54
+ {
55
+ "relation": ["delegate_permission/common.handle_all_urls"],
56
+ "target": {
57
+ "namespace": "android_app",
58
+ "package_name": "com.yourapp.app",
59
+ "sha256_cert_fingerprints": [
60
+ "SHA256_CERTIFICATE_FINGERPRINT_HERE"
61
+ ]
62
+ }
63
+ }
64
+ ]
65
+ JSON
66
+ %>
67
+ <% if f.object.errors[:preferred_assetlinks].any? %>
68
+ <div class="error text-danger"><%= f.object.errors[:preferred_assetlinks].join(', ') %></div>
69
+ <% end %>
57
70
  <% end %>
58
71
  </div>
59
72
 
@@ -61,34 +74,97 @@
61
74
  <div class="col-12">
62
75
  <%= f.field_container :preferred_apple_app_site_association do %>
63
76
  <%= f.label :preferred_apple_app_site_association, raw(Spree.t(:apple_app_site_association)) %>
64
- <%= f.text_area :preferred_apple_app_site_association, class: 'form-control',
65
- placeholder: 'example:
66
- {
67
- "webcredentials": {
68
- "apps": [
69
- "TEAM_ID.com.yourapp.app"
70
- ]
71
- },
72
- "applinks": {
73
- "apps": [],
74
- "details": [
75
- {
76
- "appID": "TEAM_ID.com.yourapp.app",
77
- "paths": ["*"]
77
+ <%= f.text_area :preferred_apple_app_site_association, class: 'form-control', rows: 5,
78
+ placeholder: <<~JSON.strip
79
+ example:
80
+ {
81
+ "webcredentials": {
82
+ "apps": [
83
+ "TEAM_ID.com.yourapp.app"
84
+ ]
85
+ },
86
+ "applinks": {
87
+ "apps": [],
88
+ "details": [
89
+ {
90
+ "appID": "TEAM_ID.com.yourapp.app",
91
+ "paths": ["*"]
92
+ }
93
+ ]
78
94
  }
79
- ]
80
- }
81
- }', rows: 5 %>
82
- <%= f.error_message_on :preferred_apple_app_site_association %>
95
+ }
96
+ JSON
97
+ %>
98
+ <% if f.object.errors[:preferred_apple_app_site_association].any? %>
99
+ <div class="error text-danger"><%= f.object.errors[:preferred_apple_app_site_association].join(', ') %></div>
100
+ <% end %>
83
101
  <% end %>
84
102
  </div>
85
103
 
104
+ <!-- Brand Primary Color Field -->
105
+ <div class="col-md-6">
106
+ <%= f.label :preferred_brand_primary_color, Spree.t(:brand_primary_color), class: 'form-label' %>
107
+ <%= f.text_field :preferred_brand_primary_color, class: 'form-control color-picker', placeholder: '#FF5733', value: @object.preferred_brand_primary_color %>
108
+ <div class="color-preview" style="margin-top: 10px;">
109
+ <%= content_tag :div, nil, style: "background-color: #{@object.preferred_brand_primary_color}; width: 60px; height: 60px; border: 1px solid #ccc; box-sizing: border-box; display: block;" %>
110
+ </div>
111
+ </div>
112
+
86
113
  <!-- State Field -->
87
114
  <div class="col-6">
88
115
  <%= f.field_container :state do %>
89
116
  <%= f.label :state, raw(Spree.t(:state)) %>
90
- <%= f.select :state, options_for_select([['Enabled', 'enabled'], ['Disabled', 'disabled']], @object.state), { required: true }, class: 'select2 form-control' %>
91
- <%= f.error_message_on :state %>
117
+ <%= f.select :state,
118
+ options_for_select([['Enabled', 'enabled'], ['Disabled', 'disabled']], f.object&.state),
119
+ { required: true },
120
+ class: 'select2 form-control' %>
121
+ <% if f.object.errors[:state].any? %>
122
+ <div class="error text-danger"><%= f.object.errors[:state].join(', ') %></div>
123
+ <% end %>
92
124
  <% end %>
93
125
  </div>
94
126
  </div>
127
+
128
+ <div data-hook="admin_tenant_form_fields" class="row">
129
+ <div class="col-12">
130
+ <div class="row gy-4">
131
+ <% payment_icon_fields = [
132
+ { field: :preferred_payment_checkout_image, label: Spree.t(:payment_checkout_image), target: 'checkout' },
133
+ { field: :preferred_payment_failed_image, label: Spree.t(:payment_failed_image), target: 'failed' },
134
+ { field: :preferred_payment_success_image, label: Spree.t(:payment_success_image), target: 'success' },
135
+ { field: :preferred_payment_loader, label: Spree.t(:payment_loader), target: 'loader' }
136
+ ] %>
137
+
138
+ <% payment_icon_fields.each do |icon| %>
139
+ <div class="col-md-3">
140
+ <%= f.field_container icon[:field] do %>
141
+ <div class="d-flex flex-column align-items-center text-center">
142
+ <label class="form-label fw-bold mb-2" for="tenant_<%= icon[:field] %>">
143
+ <%= icon[:label] %>
144
+ </label>
145
+
146
+ <div class="icon-preview-container mb-2" id="icon-preview-container-<%= icon[:field] %>">
147
+ <span class="payment-icon-preview" id="icon-preview-<%= icon[:field] %>">
148
+ <% if f.object.send(icon[:field]).present? %>
149
+ <%= render_vector_icon(f.object.send(icon[:field])) %>
150
+ <% else %>
151
+ <span class="no-icon-placeholder"></span>
152
+ <% end %>
153
+ </span>
154
+ <span class="remove-icon-btn <%= 'hidden' unless f.object.send(icon[:field]).present? %>" data-target="<%= icon[:field] %>">&times;</span>
155
+ </div>
156
+ </div>
157
+
158
+ <%= f.collection_select icon[:field],
159
+ @vector_icons, :path, :path,
160
+ { include_blank: 'None' },
161
+ { class: 'select2 form-control tenant-payment-icon-select mt-2', data: { target: icon[:target] } } %>
162
+ <% if f.object.errors[icon[:field]].any? %>
163
+ <div class="text-danger small mt-1"><%= f.object.errors[icon[:field]].join(', ') %></div>
164
+ <% end %>
165
+ <% end %>
166
+ </div>
167
+ <% end %>
168
+ </div>
169
+ </div>
170
+ </div>
@@ -1,6 +1,7 @@
1
1
  <% content_for :page_title do %>
2
2
  <%= page_header_back_button spree.admin_tenants_url %>
3
- <%= link_to @object.name, spree.admin_tenants_url %>
3
+ <%= link_to Spree.t('tenants'), spree.admin_tenants_url %> /
4
+ <%= @object.name %>
4
5
  <% end %>
5
6
 
6
7
  <%= render partial: 'tabs', locals: { current: :edit } %>
@@ -40,7 +40,13 @@
40
40
  <tbody>
41
41
  <% @collection.each do |tenant| %>
42
42
  <tr id="<%= spree_dom_id tenant %>" data-hook="admin_tenants_index_rows">
43
- <td><%= tenant.name %></td>
43
+ <td>
44
+ <% if can?(:edit, tenant) %>
45
+ <%= link_to tenant.name, edit_admin_tenant_path(tenant.slug) %>
46
+ <% else %>
47
+ <%= tenant.name %>
48
+ <% end %>
49
+ </td>
44
50
  <td><%= tenant.slug %></td>
45
51
  <td><%= tenant.description %></td>
46
52
  <td><%= tenant.created_at %></td>
@@ -60,4 +60,18 @@
60
60
  <%= f.label :notification_email %>
61
61
  <%= f.email_field :notification_email, class: 'form-control' %>
62
62
  <% end %>
63
+ <%= f.field_container :from_email do %>
64
+ <%= f.label :from_email, Spree.t(:from_email)%>
65
+ <%= f.email_field :from_email, class: 'form-control' %>
66
+ <small class="form-text text-muted">
67
+ This is the email which will be the sender of all your Store emails (Order Confirmation, Shipment notification etc)
68
+ </small>
69
+ <% end %>
70
+ <%= f.field_container :support_email do %>
71
+ <%= f.label :support_email, Spree.t(:support_email) %>
72
+ <%= f.email_field :support_email, class: 'form-control' %>
73
+ <small class="form-text text-muted">
74
+ This email is visible to your Store visitors in the Footer section
75
+ </small>
76
+ <% end %>
63
77
  </div>
@@ -1,22 +1,33 @@
1
1
  <tr>
2
- <td class="email-body" width="570" cellpadding="0" cellspacing="0">
3
- <table class="email-body_inner" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
4
- <!-- Body content -->
2
+ <td class="email-body" width="570" cellpadding="0" cellspacing="0">
3
+ <table class="email-body_inner" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
5
4
  <tbody>
6
- <tr>
7
- <td>
8
- <div class="f-fallback">
9
- <%= render 'spree_cm_commissioner/order_mailer/greeting', order: @order %>
10
- <div class="content">
5
+ <tr>
6
+ <td>
7
+ <% if @order.tenant.nil? %>
8
+ <div class="f-fallback">
9
+ <%= render 'spree_cm_commissioner/order_mailer/greeting', order: @order %>
10
+ <div class="content">
11
11
  <%= render 'spree_cm_commissioner/order_mailer/order_total', order: @order %>
12
12
  <%= render 'spree_cm_commissioner/order_mailer/your_booking', order: @order, show_booking_header: true %>
13
13
  <%= render 'spree_cm_commissioner/order_mailer/customer_info', order: @order %>
14
- <%= render 'spree_cm_commissioner/order_mailer/support_contact'%>
15
- </div>
16
- </div>
17
- </td>
18
- </tr>
14
+ <%= render 'spree_cm_commissioner/order_mailer/support_contact' %>
15
+ </div>
16
+ </div>
17
+ <% else %>
18
+ <div class="f-fallback">
19
+ <%= render 'spree_cm_commissioner/order_mailer/tenant/greeting', order: @order %>
20
+ <div class="content">
21
+ <%= render 'spree_cm_commissioner/order_mailer/order_total', order: @order %>
22
+ <%= render 'spree_cm_commissioner/order_mailer/your_booking', order: @order, show_booking_header: true %>
23
+ <%= render 'spree_cm_commissioner/order_mailer/tenant/customer_info', order: @order %>
24
+ <%= render 'spree_cm_commissioner/order_mailer/tenant/support_contact' %>
25
+ </div>
26
+ </div>
27
+ <% end %>
28
+ </td>
29
+ </tr>
19
30
  </tbody>
20
- </table>
21
- </td>
22
- </tr>
31
+ </table>
32
+ </td>
33
+ </tr>
@@ -23,7 +23,11 @@
23
23
  <table class="email-footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
24
24
  <tr>
25
25
  <td>
26
- <%= render 'spree_cm_commissioner/order_mailer/footer', store: @order.store%>
26
+ <% if @order.tenant.nil? %>
27
+ <%= render 'spree_cm_commissioner/order_mailer/footer', store: @order.store %>
28
+ <% else %>
29
+ <%= render 'spree_cm_commissioner/order_mailer/tenant/footer', store: @order.store %>
30
+ <% end %>
27
31
  </td>
28
32
  </tr>
29
33
  </table>
@@ -55,10 +55,10 @@
55
55
  border-radius: 1.5625rem 1.5625rem 0 0;
56
56
  background: #653ed7;
57
57
  background: url(<%= image_path("mailer/event-mailer-bg.png") %>) center center / cover,
58
- linear-gradient(45deg, #653ed7, rgba(0, 0, 255, 0) 70.71%),
59
- linear-gradient(225deg, #653ed7, rgba(0, 0, 255, 0) 70.71%),
60
- linear-gradient(330deg, #35ace0, rgba(0, 0, 255, 0) 70.71%),
61
- linear-gradient(150deg, #35ace0, rgba(0, 0, 255, 0) 70.71%);
58
+ linear-gradient(45deg, #653ed7, rgba(0, 0, 255, 0) 70.71%),
59
+ linear-gradient(225deg, #653ed7, rgba(0, 0, 255, 0) 70.71%),
60
+ linear-gradient(330deg, #35ace0, rgba(0, 0, 255, 0) 70.71%),
61
+ linear-gradient(150deg, #35ace0, rgba(0, 0, 255, 0) 70.71%);
62
62
  }
63
63
  #confirm-email #greeting-card p,
64
64
  #confirm-email #greeting-card .booking-confirmm,
@@ -66,6 +66,24 @@
66
66
  #confirm-email #greeting-card .description {
67
67
  color: #fff;
68
68
  }
69
+
70
+ #confirm-email #greeting-card-1 {
71
+ color: #fff;
72
+ padding: 1.5rem;
73
+ background-size: cover;
74
+ background-position: center;
75
+ background-repeat: no-repeat;
76
+ border-radius: 1.5625rem 1.5625rem 0 0;
77
+ background: #<%= @brand_color %>;
78
+ }
79
+ #confirm-email #greeting-card-1 p,
80
+ #confirm-email #greeting-card-1 .header,
81
+ #confirm-email #greeting-card-1 .booking-confirm,
82
+ #confirm-email #greeting-card-1 .hello,
83
+ #confirm-email #greeting-card-1 .description {
84
+ color: #fff;
85
+ }
86
+
69
87
  #confirm-email .align-right {
70
88
  vertical-align: top;
71
89
  }
@@ -74,6 +92,15 @@
74
92
  margin-top: 1.25rem;
75
93
  margin-bottom: 0.625rem;
76
94
  }
95
+ #confirm-email .icon-hang-meas {
96
+ width: 6.25rem;
97
+ }
98
+ #confirm-email .header {
99
+ display: flex;
100
+ align-items: center;
101
+ justify-content: space-between;
102
+ width: 100%;
103
+ }
77
104
  #confirm-email #greeting-card .hello,
78
105
  .booking-confirm {
79
106
  font-size: 1.375rem;
@@ -83,6 +110,15 @@
83
110
  margin-bottom: 0.25rem;
84
111
  margin-top: 1.25rem;
85
112
  }
113
+ #confirm-email #greeting-card-1 .booking-confirm {
114
+ font-size: 1.375rem;
115
+ font-style: normal;
116
+ font-weight: 700;
117
+ line-height: 1.75rem;
118
+ margin-bottom: 0.25rem;
119
+ margin-top: 1.25rem;
120
+ color: #fff;
121
+ }
86
122
  #confirm-email #greeting-card .booking-confirm {
87
123
  font-size: 1.5rem;
88
124
  padding: 0.625rem 0;
@@ -233,6 +269,7 @@
233
269
  }
234
270
  #confirm-email .notice-info .description {
235
271
  padding-left: 0.75rem;
272
+ color: #939393;
236
273
  }
237
274
  #confirm-email .notice-info a {
238
275
  color: #6444D8;
@@ -0,0 +1,42 @@
1
+ <div class="content-cell">
2
+ <div class="container">
3
+ <h2><%= I18n.t('mail.order_mailer.customer_info') %></h2>
4
+ <div class="flex two-columns">
5
+ <div class="two-columns-item">
6
+ <div class="flex two-columns-item_detail">
7
+ <div class="two-columns_icon"><%= image_tag "mailer/tenant_user.png", class: "mail-icon" %></div>
8
+ <div class="two-columns_text-container">
9
+ <p class="two-columns_title">Name</p>
10
+ <p class="two-columns_description"><%= user_full_name(order) %></p>
11
+ </div>
12
+ </div>
13
+ <div class="flex two-columns-item_detail">
14
+ <div class="two-columns_icon"><%= image_tag "mailer/mail.png", class: "mail-icon" %></div>
15
+ <div class="two-columns_text-container">
16
+ <p class="two-columns_title">Email</p>
17
+ <% if order.email.present? %>
18
+ <p class="two-columns_description"><%= link_to order.email, "mailto:#{order.email}" %></p>
19
+ <% end %>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ <div class="vertical-separater"></div>
24
+ <div class="two-columns-item">
25
+ <div class="flex two-columns-item_detail">
26
+ <div class="two-columns_icon"><%= image_tag "mailer/tenant_phone.png", class: "mail-icon" %></div>
27
+ <div class="two-columns_text-container">
28
+ <p class="two-columns_title">Contact</p>
29
+ <% if order.phone_number.present? || order.intel_phone_number.present? %>
30
+ <p class="two-columns_description">
31
+ <%= link_to(
32
+ order.phone_number || order.intel_phone_number,
33
+ "tel:#{order.phone_number || order.intel_phone_number}") %>
34
+ </p>
35
+ <% end %>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <hr>
41
+ </div>
42
+ </div>
@@ -0,0 +1,25 @@
1
+ <div class="email-footer_inner">
2
+ <div class="mb-24"><%= store.description%></div>
3
+ <div class="mb-24 f-14"><%= store.address%></div>
4
+ <h2 class="mb-24">Connect with us</h2>
5
+ <table class="mb-24 social_icons">
6
+ <tbody>
7
+ <tr>
8
+ <% if store.facebook? %>
9
+ <td class="social_icon">
10
+ <%= link_to store.facebook, target: :_blank do %>
11
+ <%= image_tag "mailer/facebook.png", class: "mail-icon"%>
12
+ <% end %>
13
+ </td>
14
+ <% end %>
15
+ <% if store.instagram?%>
16
+ <td class="social_icon">
17
+ <%= link_to store.instagram, target: :_blank do %>
18
+ <%= image_tag "mailer/instagram.png", class: "mail-icon"%>
19
+ <% end %>
20
+ </td>
21
+ <% end %>
22
+ </tr>
23
+ </tbody>
24
+ </table>
25
+ </div>
@@ -0,0 +1,19 @@
1
+ <div id="greeting-card-1">
2
+ <div>
3
+ <div class="header">
4
+ <h1><%=@order.store.name %></h1>
5
+ <% if @vendor_logo_url.present? %>
6
+ <img src="<%= @vendor_logo_url %>" alt="Vendor Logo" class="icon-hang-meas">
7
+ <% end %>
8
+ </div>
9
+ <div class="booking-confirm">
10
+ <%= I18n.t('mail.order_mailer.booking_confirm') %>
11
+ </div>
12
+ <div class="hello">
13
+ <%= I18n.t('mail.order_mailer.hello', full_name: user_full_name(order)) %>
14
+ </div>
15
+ <div class="description">
16
+ <%= I18n.t('mail.order_mailer.booking_event', order_number: @order.number || 'NA') %>
17
+ </div>
18
+ </div>
19
+ </div>
@@ -0,0 +1,33 @@
1
+ <div class="content-cell">
2
+ <div class="container">
3
+ <h2><%= I18n.t('mail.order_mailer.bookmeplus_support')%></h2>
4
+ <div class="flex two-columns">
5
+ <div class="two-columns-item">
6
+ <div class="flex two-columns-item_detail">
7
+ <div class="two-columns_icon"><%= image_tag "mailer/tenant_phone.png", class: "mail-icon"%></div>
8
+ <div class="two-columns_text-container">
9
+ <p class="two-columns_title">Contact</p>
10
+ <% if current_store.contact_phone.present? %>
11
+ <p class="two-columns_description">
12
+ <%= link_to current_store.contact_phone, "tel:#{current_store.contact_phone}" %>
13
+ </p>
14
+ <% end %>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ <div class="vertical-separater"></div>
19
+ <div class="two-columns-item">
20
+ <div class="flex two-columns-item_detail">
21
+ <div class="two-columns_icon"><%= image_tag "mailer/mail.png", class: "mail-icon"%></div>
22
+ <div class="two-columns_text-container">
23
+ <p class="two-columns_title">Email</p>
24
+ <p class="two-columns_description">
25
+ <%= @vendor&.support_email.present? ? link_to(@vendor.support_email, "mailto:#{@vendor.support_email}") : "N/A" %>
26
+ </p>
27
+
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
@@ -31,6 +31,8 @@ module Spree
31
31
  subtitle
32
32
  preferred_background_color
33
33
  preferred_foreground_color
34
+ preferred_group_check_in_enabled
35
+ preferred_individual_check_in_enabled
34
36
  show_badge_status
35
37
  purchasable_on
36
38
  available_on
@@ -58,10 +60,5 @@ module Spree
58
60
  age
59
61
  gender
60
62
  ]
61
-
62
- @@stock_movement_attributes += %i[
63
- originator_type
64
- originator_id
65
- ]
66
63
  end
67
64
  end
@@ -54,7 +54,11 @@ en:
54
54
  guest_card_classes:
55
55
  empty_info: "No guest card classes information available."
56
56
  background_image: "Background Image"
57
-
57
+ guest_dynamic_field:
58
+ errors:
59
+ pre_registration_required: "is required before ticket issuance"
60
+ post_registration_required: "must be completed after purchase"
61
+ during_check_in_required: "is required during check-in"
58
62
  google_wallet:
59
63
  note: "Click <b>Create</b> or <b> Update</b> to connect to Google Wallet after filled all information "
60
64
  google_wallet_class_created: "Google Wallet class created successfully."
@@ -459,6 +463,10 @@ en:
459
463
  businesses_cant_be_blank: "Businesses can't be blank"
460
464
  phone_number_cant_be_blank: "Phone number can't be blank"
461
465
  quantity_cant_be_less_than_or_equal_to_zero: "Quantity can't be less or equal than 0"
466
+ spree_cm_commissioner/vendor_place:
467
+ attributes:
468
+ place_id:
469
+ taken: "has already existed with this place type"
462
470
 
463
471
  mail:
464
472
  order_mailer:
@@ -543,6 +551,7 @@ en:
543
551
  update_user_login: "update user code"
544
552
  contact_update: "update contact code"
545
553
  otp_code: "OTP code"
554
+ telegram_verification: "telegram code"
546
555
 
547
556
  notifications:
548
557
  spree_cm_commissioner:
data/config/routes.rb CHANGED
@@ -138,21 +138,7 @@ Spree::Core::Engine.add_routes do
138
138
  end
139
139
  end
140
140
 
141
- resources :stock_managements do
142
- collection do
143
- get :calendar
144
- end
145
- end
146
-
147
- resources :variants do
148
- resources :inventory_items, only: %i[show create] do
149
- member do
150
- patch :reset
151
- patch :update_prices
152
- delete :delete_prices
153
- end
154
- end
155
- end
141
+ resources :stock_managements
156
142
 
157
143
  resources :product_completion_steps do
158
144
  collection do
@@ -288,6 +274,7 @@ Spree::Core::Engine.add_routes do
288
274
  resources :vendors, controller: :tenant_vendors
289
275
  end
290
276
  resources :event_blazer_queries
277
+ resources :trip_blazer_queries
291
278
  end
292
279
 
293
280
  resources :events, controller: 'events/base' do
@@ -464,6 +451,7 @@ Spree::Core::Engine.add_routes do
464
451
  resources :images
465
452
  resource :s3_signed_urls
466
453
  resources :invites
454
+ resources :invite_crews, only: %i[show update]
467
455
  resources :invite_guests, only: %i[show update]
468
456
  end
469
457
 
@@ -543,8 +531,6 @@ Spree::Core::Engine.add_routes do
543
531
  end
544
532
 
545
533
  namespace :storefront do
546
- resources :inventory_item
547
-
548
534
  resources :waiting_room_sessions, only: :create
549
535
  resources :vattanac_banks, only: %i[create]
550
536
  resource :cart, controller: :cart, only: %i[show create destroy] do
@@ -570,10 +556,7 @@ Spree::Core::Engine.add_routes do
570
556
  resource :cart_guests, only: %i[create destroy]
571
557
  resources :cart_payment_method_groups, only: %i[index]
572
558
 
573
- resources :accommodations, only: %i[index show] do
574
- resources :variants, only: %i[index show], module: :accommodations
575
- end
576
-
559
+ resources :accommodations, only: %i[index show]
577
560
  resources :line_items, only: %i[index show]
578
561
  resources :account_checker
579
562
  resource :account_recovers, only: [:update]
@@ -688,5 +671,6 @@ Rails.application.routes.draw do
688
671
  get 'o/:id', to: 'spree_cm_commissioner/orders#show', as: 'order'
689
672
  get 'li/:id', to: 'spree_cm_commissioner/line_item_qr_images#show', as: 'line_item_qr_image'
690
673
  get 'g/:id', to: 'spree_cm_commissioner/guest_cards#show', as: 'guest_cards'
691
- get '.well-known/:id', to: 'spree_cm_commissioner/well_known#show', constraints: { id: /(assetlinks\.json|apple-app-site-association)/ }
674
+ get '.well-known/assetlinks.json', to: 'spree_cm_commissioner/well_known#assetlinks_json'
675
+ get '.well-known/apple-app-site-association', to: 'spree_cm_commissioner/well_known#apple_app_site_association'
692
676
  end
@@ -1,7 +1,5 @@
1
1
  class UpdateCounterCacheOfVehicleType < ActiveRecord::Migration[7.0]
2
- def up
3
- if defined?(SpreeCmCommissioner::VehicleSeat) && SpreeCmCommissioner::VehicleSeat.respond_to?(:counter_culture_fix_counts)
2
+ def up
4
3
  SpreeCmCommissioner::VehicleSeat.counter_culture_fix_counts
5
4
  end
6
- end
7
5
  end
@@ -0,0 +1,5 @@
1
+ class AddDescriptionToCmVendorPlace < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_vendor_places, :description, :string, if_not_exists: true
4
+ end
5
+ end