spree_cm_commissioner 2.13.2 → 2.13.3.pre.pre2

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 (278) hide show
  1. checksums.yaml +4 -4
  2. data/.env.example +1 -0
  3. data/Gemfile.lock +1 -1
  4. data/app/controllers/concerns/spree_cm_commissioner/operator/event_authorization.rb +19 -0
  5. data/app/controllers/spree/admin/homepage_section_controller.rb +32 -8
  6. data/app/controllers/spree/admin/integrations_controller.rb +5 -7
  7. data/app/controllers/spree/admin/inventory_items_controller.rb +12 -0
  8. data/app/controllers/spree/admin/notification_users_controller.rb +39 -7
  9. data/app/controllers/spree/admin/service_fee_rules_controller.rb +83 -0
  10. data/app/controllers/spree/admin/stock_managements_controller.rb +5 -5
  11. data/app/controllers/spree/api/switch_cm/base_controller.rb +98 -0
  12. data/app/controllers/spree/api/switch_cm/ota/avail_notifs_controller.rb +17 -0
  13. data/app/controllers/spree/api/switch_cm/ota/base_controller.rb +27 -0
  14. data/app/controllers/spree/api/switch_cm/ota/product_notifs_controller.rb +44 -0
  15. data/app/controllers/spree/api/switch_cm/ota/pushes_controller.rb +46 -0
  16. data/app/controllers/spree/api/switch_cm/ota/rate_amount_notifs_controller.rb +17 -0
  17. data/app/controllers/spree/api/switch_cm/ota/res_modify_notifs_controller.rb +31 -0
  18. data/app/controllers/spree/api/switch_cm/ota/res_notifs_controller.rb +29 -0
  19. data/app/controllers/spree/api/switch_cm/ota/reservation_streams_controller.rb +83 -0
  20. data/app/controllers/spree/api/switch_cm/tokens_controller.rb +68 -0
  21. data/app/controllers/spree/api/switch_cm/xml/availabilities_controller.rb +39 -0
  22. data/app/controllers/spree/api/switch_cm/xml/base_controller.rb +37 -0
  23. data/app/controllers/spree/api/switch_cm/xml/reservation_summaries_controller.rb +28 -0
  24. data/app/controllers/spree/api/switch_cm/xml/reservations_controller.rb +56 -0
  25. data/app/controllers/spree/api/switch_cm/xml/room_rate_availabilities_controller.rb +56 -0
  26. data/app/controllers/spree/api/switch_cm/xml/room_rates_controller.rb +32 -0
  27. data/app/controllers/spree/api/v2/operator/check_ins_controller.rb +7 -6
  28. data/app/controllers/spree/api/v2/operator/event_charts_controller.rb +8 -10
  29. data/app/controllers/spree/api/v2/operator/event_ticket_aggregators_controller.rb +14 -4
  30. data/app/controllers/spree/api/v2/operator/pie_chart_event_aggregators_controller.rb +15 -1
  31. data/app/controllers/spree/api/v2/platform/homepage_section_relatable_options_controller.rb +28 -0
  32. data/app/controllers/spree/api/v2/storefront/cross_app_handoff_tokens_controller.rb +41 -0
  33. data/app/controllers/spree/api/v2/storefront/homepage_sections_controller.rb +4 -2
  34. data/app/controllers/spree/api/v2/storefront/transit/item_availabilities_controller.rb +66 -0
  35. data/app/controllers/spree/api/v2/tenant/checkout_controller.rb +11 -0
  36. data/app/controllers/spree/api/v2/tenant/vendor_photos_controller.rb +25 -0
  37. data/app/controllers/spree_cm_commissioner/admin/orders_controller_decorator.rb +9 -1
  38. data/app/controllers/spree_cm_commissioner/api/v2/storefront/checkout_controller_decorator.rb +15 -0
  39. data/app/factory/spree_cm_commissioner/order_telegram_message_factory.rb +6 -2
  40. data/app/helpers/spree/admin/customer_notifications_helper.rb +57 -0
  41. data/app/helpers/spree_cm_commissioner/admin/homepage_segment_helper.rb +45 -23
  42. data/app/interactors/spree_cm_commissioner/customer_notification_sender.rb +18 -9
  43. data/app/interactors/spree_cm_commissioner/user_cross_app_handoff_authenticator.rb +17 -0
  44. data/app/jobs/spree_cm_commissioner/audit_event_job.rb +29 -0
  45. data/app/models/concerns/spree_cm_commissioner/audit_wrapper.rb +139 -0
  46. data/app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb +37 -1
  47. data/app/models/concerns/spree_cm_commissioner/integrations/inventory_sync_cachable.rb +9 -0
  48. data/app/models/concerns/spree_cm_commissioner/line_item_open_dated_trippable.rb +2 -2
  49. data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +10 -0
  50. data/app/models/concerns/spree_cm_commissioner/phone_number_sanitizer.rb +5 -1
  51. data/app/models/concerns/spree_cm_commissioner/user_notification.rb +3 -1
  52. data/app/models/concerns/spree_cm_commissioner/variant_metadata.rb +24 -0
  53. data/app/models/concerns/spree_cm_commissioner/vehicle_kind.rb +1 -1
  54. data/app/models/spree_cm_commissioner/adjustable/adjuster/service_fee.rb +31 -0
  55. data/app/models/spree_cm_commissioner/adjustment_decorator.rb +1 -0
  56. data/app/models/spree_cm_commissioner/audit_event.rb +11 -0
  57. data/app/models/spree_cm_commissioner/calculators/service_fee_flat_amount.rb +17 -0
  58. data/app/models/spree_cm_commissioner/calculators/service_fee_percent.rb +20 -0
  59. data/app/models/spree_cm_commissioner/currency_rate.rb +15 -0
  60. data/app/models/spree_cm_commissioner/customer_notification.rb +15 -1
  61. data/app/models/spree_cm_commissioner/homepage_section.rb +25 -0
  62. data/app/models/spree_cm_commissioner/integration.rb +46 -0
  63. data/app/models/spree_cm_commissioner/integrations/book_me_bus_v1.rb +64 -0
  64. data/app/models/spree_cm_commissioner/integrations/larryta.rb +81 -0
  65. data/app/models/spree_cm_commissioner/integrations/stadium_x_v1.rb +4 -10
  66. data/app/models/spree_cm_commissioner/integrations/switch_cm.rb +86 -0
  67. data/app/models/spree_cm_commissioner/integrations/vireak_buntham.rb +82 -0
  68. data/app/models/spree_cm_commissioner/inventory_item.rb +18 -0
  69. data/app/models/spree_cm_commissioner/line_item_decorator.rb +2 -0
  70. data/app/models/spree_cm_commissioner/order_decorator.rb +13 -1
  71. data/app/models/spree_cm_commissioner/order_updater_decorator.rb +31 -0
  72. data/app/models/spree_cm_commissioner/place.rb +2 -0
  73. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +2 -1
  74. data/app/models/spree_cm_commissioner/route.rb +1 -0
  75. data/app/models/spree_cm_commissioner/seat_layout.rb +1 -0
  76. data/app/models/spree_cm_commissioner/service_fee_rule.rb +183 -0
  77. data/app/models/spree_cm_commissioner/stock/availability_checker.rb +1 -1
  78. data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +1 -1
  79. data/app/models/spree_cm_commissioner/stock_item_decorator.rb +4 -0
  80. data/app/models/spree_cm_commissioner/trip.rb +2 -1
  81. data/app/models/spree_cm_commissioner/trip_stop.rb +2 -0
  82. data/app/models/spree_cm_commissioner/user_decorator.rb +4 -0
  83. data/app/models/spree_cm_commissioner/variant_decorator.rb +5 -0
  84. data/app/models/spree_cm_commissioner/vehicle.rb +3 -0
  85. data/app/models/spree_cm_commissioner/vehicle_type.rb +1 -0
  86. data/app/models/spree_cm_commissioner/vendor_decorator.rb +17 -0
  87. data/app/models/spree_cm_commissioner/vendor_place.rb +2 -0
  88. data/app/overrides/spree/admin/orders/index/line_items_row.html.erb.deface +14 -0
  89. data/app/overrides/spree/admin/orders/index/row_actions.html.erb.deface +17 -0
  90. data/app/overrides/spree/admin/shared/sub_menu/_configuration/menu_items.html.erb.deface +5 -0
  91. data/app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb +6 -7
  92. data/app/serializables/spree_cm_commissioner/item_availability_sync.rb +10 -0
  93. data/app/serializers/spree/api/v2/platform/service_fee_rule_serializer.rb +17 -0
  94. data/app/serializers/spree/v2/storefront/homepage_section_serializer.rb +1 -1
  95. data/app/serializers/spree/v2/storefront/line_item_serializer_decorator.rb +8 -2
  96. data/app/serializers/spree/v2/tenant/cart_serializer.rb +2 -1
  97. data/app/serializers/spree/v2/tenant/line_item_serializer.rb +7 -1
  98. data/app/serializers/spree_cm_commissioner/v2/operator/guest_serializer.rb +2 -1
  99. data/app/serializers/spree_cm_commissioner/v2/storefront/cart_serializer_decorator.rb +2 -1
  100. data/app/serializers/spree_cm_commissioner/v2/storefront/cross_app_handoff_token_serializer.rb +9 -0
  101. data/app/serializers/spree_cm_commissioner/v2/storefront/item_availability_sync_serializer.rb +10 -0
  102. data/app/services/spree_cm_commissioner/api_caches/invalidate.rb +1 -1
  103. data/app/services/spree_cm_commissioner/audit_logger.rb +59 -0
  104. data/app/services/spree_cm_commissioner/checkout/advance_to_payment.rb +27 -0
  105. data/app/services/spree_cm_commissioner/cross_app_handoff_tokens/decode.rb +42 -0
  106. data/app/services/spree_cm_commissioner/cross_app_handoff_tokens/encode.rb +47 -0
  107. data/app/services/spree_cm_commissioner/currency_converter/create.rb +27 -0
  108. data/app/services/spree_cm_commissioner/currency_rates/manage.rb +99 -0
  109. data/app/services/spree_cm_commissioner/draft_orders/create.rb +1 -0
  110. data/app/services/spree_cm_commissioner/google_maps_geocoder.rb +41 -0
  111. data/app/services/spree_cm_commissioner/integrations/base/sync_manager.rb +1 -2
  112. data/app/services/spree_cm_commissioner/integrations/base/sync_result.rb +11 -0
  113. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/external_client/client.rb +230 -0
  114. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/external_client/connection.rb +147 -0
  115. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/inventory/external_inventory_item_status.rb +52 -0
  116. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/inventory/external_inventory_items.rb +91 -0
  117. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/inventory/unstock_inventory.rb +188 -0
  118. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_inventory.rb +79 -0
  119. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_item_availability.rb +354 -0
  120. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_locations.rb +103 -0
  121. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_nationality_pricing.rb +93 -0
  122. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_product.rb +70 -0
  123. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_route_stops.rb +121 -0
  124. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_routes.rb +128 -0
  125. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_seat_layout.rb +412 -0
  126. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_service_calendars.rb +59 -0
  127. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_trip_stop.rb +224 -0
  128. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_trips.rb +769 -0
  129. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_variant.rb +69 -0
  130. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_vehicle_types.rb +92 -0
  131. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/time_parser.rb +19 -0
  132. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/base.rb +40 -0
  133. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/inventory_item_status.rb +148 -0
  134. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/location.rb +55 -0
  135. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/reservation_cart.rb +85 -0
  136. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/seat.rb +128 -0
  137. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/seat_layout.rb +386 -0
  138. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb +84 -0
  139. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/trip.rb +237 -0
  140. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/wallet_payment.rb +48 -0
  141. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_manager.rb +22 -0
  142. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_strategies/full_sync_strategy.rb +116 -0
  143. data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_strategies/incremental_sync_strategy.rb +63 -0
  144. data/app/services/spree_cm_commissioner/integrations/larryta/external_client/client.rb +314 -0
  145. data/app/services/spree_cm_commissioner/integrations/larryta/external_client/connection.rb +74 -0
  146. data/app/services/spree_cm_commissioner/integrations/larryta/inventory/external_inventory_item_status.rb +53 -0
  147. data/app/services/spree_cm_commissioner/integrations/larryta/inventory/external_inventory_items.rb +106 -0
  148. data/app/services/spree_cm_commissioner/integrations/larryta/inventory/hold_seats.rb +143 -0
  149. data/app/services/spree_cm_commissioner/integrations/larryta/inventory/release_seats.rb +90 -0
  150. data/app/services/spree_cm_commissioner/integrations/larryta/inventory/unstock_inventory.rb +143 -0
  151. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_item_availability.rb +325 -0
  152. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_product.rb +72 -0
  153. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_routes.rb +142 -0
  154. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_seat_layout.rb +255 -0
  155. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_stock_item.rb +55 -0
  156. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_trip_stop.rb +171 -0
  157. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_trips.rb +397 -0
  158. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_variant.rb +63 -0
  159. data/app/services/spree_cm_commissioner/integrations/larryta/polling/sync_vehicle_type.rb +79 -0
  160. data/app/services/spree_cm_commissioner/integrations/larryta/resources/base.rb +39 -0
  161. data/app/services/spree_cm_commissioner/integrations/larryta/resources/booking.rb +113 -0
  162. data/app/services/spree_cm_commissioner/integrations/larryta/resources/booking_session.rb +43 -0
  163. data/app/services/spree_cm_commissioner/integrations/larryta/resources/booking_transaction.rb +236 -0
  164. data/app/services/spree_cm_commissioner/integrations/larryta/resources/direction.rb +71 -0
  165. data/app/services/spree_cm_commissioner/integrations/larryta/resources/passenger.rb +48 -0
  166. data/app/services/spree_cm_commissioner/integrations/larryta/resources/schedule.rb +150 -0
  167. data/app/services/spree_cm_commissioner/integrations/larryta/resources/seat.rb +31 -0
  168. data/app/services/spree_cm_commissioner/integrations/larryta/resources/seat_availability.rb +49 -0
  169. data/app/services/spree_cm_commissioner/integrations/larryta/resources/seat_layout.rb +211 -0
  170. data/app/services/spree_cm_commissioner/integrations/larryta/sync_manager.rb +17 -0
  171. data/app/services/spree_cm_commissioner/integrations/larryta/sync_strategies/full_sync_strategy.rb +79 -0
  172. data/app/services/spree_cm_commissioner/integrations/larryta/sync_strategies/incremental_sync_strategy.rb +58 -0
  173. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/external_client/client.rb +14 -15
  174. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/polling/sync_matches.rb +7 -4
  175. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/polling/sync_zones.rb +6 -3
  176. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_manager.rb +0 -3
  177. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/full_sync_strategy.rb +1 -3
  178. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/incremental_sync_strategy.rb +1 -3
  179. data/app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/webhook_sync_strategy.rb +1 -2
  180. data/app/services/spree_cm_commissioner/integrations/switch_cm/accept_push.rb +101 -0
  181. data/app/services/spree_cm_commissioner/integrations/switch_cm/accommodation_lock.rb +41 -0
  182. data/app/services/spree_cm_commissioner/integrations/switch_cm/acknowledge_reservations.rb +43 -0
  183. data/app/services/spree_cm_commissioner/integrations/switch_cm/apply_ari.rb +119 -0
  184. data/app/services/spree_cm_commissioner/integrations/switch_cm/ari_update.rb +24 -0
  185. data/app/services/spree_cm_commissioner/integrations/switch_cm/availability_readback.rb +86 -0
  186. data/app/services/spree_cm_commissioner/integrations/switch_cm/mark_seen.rb +53 -0
  187. data/app/services/spree_cm_commissioner/integrations/switch_cm/ota/avail_notif_parser.rb +60 -0
  188. data/app/services/spree_cm_commissioner/integrations/switch_cm/ota/base_parser.rb +60 -0
  189. data/app/services/spree_cm_commissioner/integrations/switch_cm/ota/push_response.rb +38 -0
  190. data/app/services/spree_cm_commissioner/integrations/switch_cm/ota/rate_amount_notif_parser.rb +46 -0
  191. data/app/services/spree_cm_commissioner/integrations/switch_cm/ota/reservation_presenter.rb +99 -0
  192. data/app/services/spree_cm_commissioner/integrations/switch_cm/ota/response_builder.rb +52 -0
  193. data/app/services/spree_cm_commissioner/integrations/switch_cm/pushed_nights.rb +79 -0
  194. data/app/services/spree_cm_commissioner/integrations/switch_cm/reservation.rb +118 -0
  195. data/app/services/spree_cm_commissioner/integrations/switch_cm/reservation_feed.rb +143 -0
  196. data/app/services/spree_cm_commissioner/integrations/switch_cm/room_catalog.rb +56 -0
  197. data/app/services/spree_cm_commissioner/integrations/switch_cm/sync_manager.rb +16 -0
  198. data/app/services/spree_cm_commissioner/integrations/switch_cm/sync_strategies/full_sync_strategy.rb +39 -0
  199. data/app/services/spree_cm_commissioner/integrations/switch_cm/sync_strategies/incremental_sync_strategy.rb +51 -0
  200. data/app/services/spree_cm_commissioner/integrations/switch_cm/unseen_room_nights.rb +39 -0
  201. data/app/services/spree_cm_commissioner/integrations/switch_cm/validate_ari_updates.rb +136 -0
  202. data/app/services/spree_cm_commissioner/integrations/switch_cm/xml/availability_parser.rb +103 -0
  203. data/app/services/spree_cm_commissioner/integrations/switch_cm/xml/push_response.rb +45 -0
  204. data/app/services/spree_cm_commissioner/integrations/switch_cm/xml/reservation_presenter.rb +74 -0
  205. data/app/services/spree_cm_commissioner/integrations/switch_cm/xml/response_builder.rb +19 -0
  206. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/external_client/client.rb +170 -0
  207. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/external_client/connection.rb +59 -0
  208. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/inventory/external_inventory_item_status.rb +48 -0
  209. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/inventory/external_inventory_items.rb +92 -0
  210. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/inventory/unstock_inventory.rb +230 -0
  211. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_item_availability.rb +270 -0
  212. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_locations.rb +96 -0
  213. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_nationality_pricing.rb +76 -0
  214. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_product.rb +69 -0
  215. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_routes.rb +110 -0
  216. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_seat_layout.rb +207 -0
  217. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_stock_item.rb +43 -0
  218. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_trip_stop.rb +192 -0
  219. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_trips.rb +377 -0
  220. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_variant.rb +56 -0
  221. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_vehicle_type.rb +51 -0
  222. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/base.rb +32 -0
  223. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/booking.rb +48 -0
  224. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/booking_transaction.rb +46 -0
  225. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/cell.rb +53 -0
  226. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/confirm_booking_request.rb +43 -0
  227. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/location.rb +37 -0
  228. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/schedule.rb +138 -0
  229. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb +48 -0
  230. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat_layout.rb +79 -0
  231. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/sync_manager.rb +17 -0
  232. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/sync_strategies/full_sync_strategy.rb +87 -0
  233. data/app/services/spree_cm_commissioner/integrations/vireak_buntham/sync_strategies/incremental_sync_strategy.rb +53 -0
  234. data/app/services/spree_cm_commissioner/inventory_items/bulk_adjust_quantities_by_variant.rb +4 -0
  235. data/app/services/spree_cm_commissioner/inventory_items/generate_permanent_item.rb +48 -0
  236. data/app/services/spree_cm_commissioner/inventory_items/reset.rb +4 -0
  237. data/app/services/spree_cm_commissioner/order_holds/hold.rb +17 -0
  238. data/app/services/spree_cm_commissioner/order_holds/release.rb +17 -0
  239. data/app/services/spree_cm_commissioner/place_resolver.rb +95 -0
  240. data/app/services/spree_cm_commissioner/transit_order/create.rb +1 -0
  241. data/app/services/spree_cm_commissioner/user_authenticator.rb +20 -12
  242. data/app/views/spree/admin/customer_notifications/_form.html.erb +9 -9
  243. data/app/views/spree/admin/customer_notifications/index.html.erb +36 -19
  244. data/app/views/spree/admin/homepage_section/_form.html.erb +19 -2
  245. data/app/views/spree/admin/homepage_section/_tabs.html.erb +7 -7
  246. data/app/views/spree/admin/homepage_section/index.html.erb +73 -6
  247. data/app/views/spree/admin/integrations/_book_me_bus_v1_fields.html.erb +47 -0
  248. data/app/views/spree/admin/integrations/_form.html.erb +16 -0
  249. data/app/views/spree/admin/integrations/_larryta_fields.html.erb +58 -0
  250. data/app/views/spree/admin/integrations/_switch_cm_fields.html.erb +53 -0
  251. data/app/views/spree/admin/integrations/_vireak_buntham_fields.html.erb +75 -0
  252. data/app/views/spree/admin/integrations/index.html.erb +1 -1
  253. data/app/views/spree/admin/notifications/index.html.erb +2 -1
  254. data/app/views/spree/admin/orders/line_items.html.erb +53 -0
  255. data/app/views/spree/admin/service_fee_rules/_form.html.erb +119 -0
  256. data/app/views/spree/admin/service_fee_rules/edit.html.erb +11 -0
  257. data/app/views/spree/admin/service_fee_rules/index.html.erb +91 -0
  258. data/app/views/spree/admin/service_fee_rules/new.html.erb +11 -0
  259. data/app/views/spree/admin/shared/_send_all_form.html.erb +1 -0
  260. data/app/views/spree/admin/shared/_send_test_form.html.erb +3 -3
  261. data/app/views/spree/admin/stock_managements/index.html.erb +14 -0
  262. data/config/locales/en.yml +36 -0
  263. data/config/locales/km.yml +32 -0
  264. data/config/routes.rb +34 -0
  265. data/db/migrate/20260327143200_create_cm_audit_events.rb +21 -0
  266. data/db/migrate/20260410045815_create_cm_currency_rates.rb +23 -0
  267. data/db/migrate/20260411102139_add_metadata_to_cm_inventory_items.rb +6 -0
  268. data/db/migrate/20260914000000_add_mini_app_to_homepage_sections.rb +5 -0
  269. data/db/migrate/20260917085551_create_cm_service_fee_rules.rb +16 -0
  270. data/db/migrate/20260917085552_add_service_fee_total_to_spree_line_items_and_orders.rb +6 -0
  271. data/db/migrate/20260928000000_add_oauth_application_id_to_cm_integrations.rb +5 -0
  272. data/db/migrate/20260928000001_add_closed_to_cm_inventory_items.rb +5 -0
  273. data/lib/spree_cm_commissioner/cached_inventory_item.rb +7 -1
  274. data/lib/spree_cm_commissioner/engine.rb +3 -0
  275. data/lib/spree_cm_commissioner/test_helper/factories/homepage_section_factory.rb +7 -0
  276. data/lib/spree_cm_commissioner/test_helper/factories/integration_factory.rb +17 -0
  277. data/lib/spree_cm_commissioner/version.rb +1 -1
  278. metadata +187 -4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.2
4
+ version: 2.13.3.pre.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-11 00:00:00.000000000 Z
11
+ date: 2026-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -832,6 +832,7 @@ files:
832
832
  - app/controllers/concerns/spree_cm_commissioner/load_test_account_scope.rb
833
833
  - app/controllers/concerns/spree_cm_commissioner/load_test_bypassable.rb
834
834
  - app/controllers/concerns/spree_cm_commissioner/load_test_login_token_generation.rb
835
+ - app/controllers/concerns/spree_cm_commissioner/operator/event_authorization.rb
835
836
  - app/controllers/concerns/spree_cm_commissioner/order_concern.rb
836
837
  - app/controllers/concerns/spree_cm_commissioner/turnstile_protectable.rb
837
838
  - app/controllers/concerns/spree_cm_commissioner/waiting_room_authorization.rb
@@ -896,6 +897,7 @@ files:
896
897
  - app/controllers/spree/admin/promotion_weekend_rules_controller.rb
897
898
  - app/controllers/spree/admin/prototypes_controller_decorator.rb
898
899
  - app/controllers/spree/admin/s3_presigned_urls_controller.rb
900
+ - app/controllers/spree/admin/service_fee_rules_controller.rb
899
901
  - app/controllers/spree/admin/sprite_import_controller.rb
900
902
  - app/controllers/spree/admin/stock_managements_controller.rb
901
903
  - app/controllers/spree/admin/system/cache_controller.rb
@@ -936,6 +938,22 @@ files:
936
938
  - app/controllers/spree/api/chatrace/guests_controller.rb
937
939
  - app/controllers/spree/api/chatrace/orders_controller.rb
938
940
  - app/controllers/spree/api/json_ld/vendors_controller.rb
941
+ - app/controllers/spree/api/switch_cm/base_controller.rb
942
+ - app/controllers/spree/api/switch_cm/ota/avail_notifs_controller.rb
943
+ - app/controllers/spree/api/switch_cm/ota/base_controller.rb
944
+ - app/controllers/spree/api/switch_cm/ota/product_notifs_controller.rb
945
+ - app/controllers/spree/api/switch_cm/ota/pushes_controller.rb
946
+ - app/controllers/spree/api/switch_cm/ota/rate_amount_notifs_controller.rb
947
+ - app/controllers/spree/api/switch_cm/ota/res_modify_notifs_controller.rb
948
+ - app/controllers/spree/api/switch_cm/ota/res_notifs_controller.rb
949
+ - app/controllers/spree/api/switch_cm/ota/reservation_streams_controller.rb
950
+ - app/controllers/spree/api/switch_cm/tokens_controller.rb
951
+ - app/controllers/spree/api/switch_cm/xml/availabilities_controller.rb
952
+ - app/controllers/spree/api/switch_cm/xml/base_controller.rb
953
+ - app/controllers/spree/api/switch_cm/xml/reservation_summaries_controller.rb
954
+ - app/controllers/spree/api/switch_cm/xml/reservations_controller.rb
955
+ - app/controllers/spree/api/switch_cm/xml/room_rate_availabilities_controller.rb
956
+ - app/controllers/spree/api/switch_cm/xml/room_rates_controller.rb
939
957
  - app/controllers/spree/api/v2/base_controller_decorator.rb
940
958
  - app/controllers/spree/api/v2/operator/check_in_bulks_controller.rb
941
959
  - app/controllers/spree/api/v2/operator/check_in_sessions_controller.rb
@@ -985,6 +1003,7 @@ files:
985
1003
  - app/controllers/spree/api/v2/storefront/change_passwords_controller.rb
986
1004
  - app/controllers/spree/api/v2/storefront/check_ins_controller.rb
987
1005
  - app/controllers/spree/api/v2/storefront/confirm_pin_code_checkers_controller.rb
1006
+ - app/controllers/spree/api/v2/storefront/cross_app_handoff_tokens_controller.rb
988
1007
  - app/controllers/spree/api/v2/storefront/customer_notifications_controller.rb
989
1008
  - app/controllers/spree/api/v2/storefront/draft_orders_controller.rb
990
1009
  - app/controllers/spree/api/v2/storefront/dynamic_field_options_controller.rb
@@ -1041,6 +1060,7 @@ files:
1041
1060
  - app/controllers/spree/api/v2/storefront/ticket_transfer_acceptances_controller.rb
1042
1061
  - app/controllers/spree/api/v2/storefront/ticket_transfers_controller.rb
1043
1062
  - app/controllers/spree/api/v2/storefront/transit/draft_orders_controller.rb
1063
+ - app/controllers/spree/api/v2/storefront/transit/item_availabilities_controller.rb
1044
1064
  - app/controllers/spree/api/v2/storefront/trip_places_controller.rb
1045
1065
  - app/controllers/spree/api/v2/storefront/trip_search_controller.rb
1046
1066
  - app/controllers/spree/api/v2/storefront/trips_controller.rb
@@ -1117,6 +1137,7 @@ files:
1117
1137
  - app/controllers/spree/api/v2/tenant/user_contacts_controller.rb
1118
1138
  - app/controllers/spree/api/v2/tenant/user_device_tokens_controller.rb
1119
1139
  - app/controllers/spree/api/v2/tenant/user_registration_with_pin_codes_controller.rb
1140
+ - app/controllers/spree/api/v2/tenant/vendor_photos_controller.rb
1120
1141
  - app/controllers/spree/api/v2/tenant/vendors_controller.rb
1121
1142
  - app/controllers/spree/api/v2/tenant/vote_packages_controller.rb
1122
1143
  - app/controllers/spree/api/v2/tenant/votes_controller.rb
@@ -1226,6 +1247,7 @@ files:
1226
1247
  - app/finders/spree_cm_commissioner/routes/find_popular.rb
1227
1248
  - app/finders/spree_cm_commissioner/variants/find_by_option_value_ids.rb
1228
1249
  - app/helpers/spree/admin/base_helper_decorator.rb
1250
+ - app/helpers/spree/admin/customer_notifications_helper.rb
1229
1251
  - app/helpers/spree/admin/google_wallets_helper.rb
1230
1252
  - app/helpers/spree/admin/system/waiting_room_sessions_helper.rb
1231
1253
  - app/helpers/spree/base_helper_decorator.rb
@@ -1348,6 +1370,7 @@ files:
1348
1370
  - app/interactors/spree_cm_commissioner/unique_device_token_cron_executor.rb
1349
1371
  - app/interactors/spree_cm_commissioner/update_payment_gateway_status.rb
1350
1372
  - app/interactors/spree_cm_commissioner/user_contact_updater.rb
1373
+ - app/interactors/spree_cm_commissioner/user_cross_app_handoff_authenticator.rb
1351
1374
  - app/interactors/spree_cm_commissioner/user_device_token_deregister.rb
1352
1375
  - app/interactors/spree_cm_commissioner/user_device_token_register.rb
1353
1376
  - app/interactors/spree_cm_commissioner/user_fb_token_authenticator.rb
@@ -1383,6 +1406,7 @@ files:
1383
1406
  - app/jobs/spree_cm_commissioner/application_job_decorator.rb
1384
1407
  - app/jobs/spree_cm_commissioner/application_unique_job.rb
1385
1408
  - app/jobs/spree_cm_commissioner/async_operation_job.rb
1409
+ - app/jobs/spree_cm_commissioner/audit_event_job.rb
1386
1410
  - app/jobs/spree_cm_commissioner/cancel_import_order_job.rb
1387
1411
  - app/jobs/spree_cm_commissioner/chatrace_order_creator_job.rb
1388
1412
  - app/jobs/spree_cm_commissioner/completion_steps/regenerate_for_line_items_job.rb
@@ -1477,12 +1501,14 @@ files:
1477
1501
  - app/mailers/spree_cm_commissioner/team_invite_mailer.rb
1478
1502
  - app/models/.gitkeep
1479
1503
  - app/models/blazer/query_decorator.rb
1504
+ - app/models/concerns/spree_cm_commissioner/audit_wrapper.rb
1480
1505
  - app/models/concerns/spree_cm_commissioner/event_metadata.rb
1481
1506
  - app/models/concerns/spree_cm_commissioner/firestore_connection.rb
1482
1507
  - app/models/concerns/spree_cm_commissioner/guest_data_fill_stage_concern.rb
1483
1508
  - app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
1484
1509
  - app/models/concerns/spree_cm_commissioner/homepage_section_relatable_concern.rb
1485
1510
  - app/models/concerns/spree_cm_commissioner/integrations/integration_mappable.rb
1511
+ - app/models/concerns/spree_cm_commissioner/integrations/inventory_sync_cachable.rb
1486
1512
  - app/models/concerns/spree_cm_commissioner/json_preference_validator.rb
1487
1513
  - app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
1488
1514
  - app/models/concerns/spree_cm_commissioner/line_item_durationable.rb
@@ -1523,6 +1549,7 @@ files:
1523
1549
  - app/models/concerns/spree_cm_commissioner/user_identity.rb
1524
1550
  - app/models/concerns/spree_cm_commissioner/user_notification.rb
1525
1551
  - app/models/concerns/spree_cm_commissioner/user_preference.rb
1552
+ - app/models/concerns/spree_cm_commissioner/variant_metadata.rb
1526
1553
  - app/models/concerns/spree_cm_commissioner/variant_options_concern.rb
1527
1554
  - app/models/concerns/spree_cm_commissioner/vehicle_kind.rb
1528
1555
  - app/models/concerns/spree_cm_commissioner/vendor_preference.rb
@@ -1537,17 +1564,21 @@ files:
1537
1564
  - app/models/spree_cm_commissioner/ability_decorator.rb
1538
1565
  - app/models/spree_cm_commissioner/address_decorator.rb
1539
1566
  - app/models/spree_cm_commissioner/adjustable/adjuster/pricing_action.rb
1567
+ - app/models/spree_cm_commissioner/adjustable/adjuster/service_fee.rb
1540
1568
  - app/models/spree_cm_commissioner/adjustment_decorator.rb
1541
1569
  - app/models/spree_cm_commissioner/agency.rb
1542
1570
  - app/models/spree_cm_commissioner/asset.rb
1543
1571
  - app/models/spree_cm_commissioner/async_operation.rb
1544
1572
  - app/models/spree_cm_commissioner/async_operations/seat_lock.rb
1573
+ - app/models/spree_cm_commissioner/audit_event.rb
1545
1574
  - app/models/spree_cm_commissioner/back_image.rb
1546
1575
  - app/models/spree_cm_commissioner/base.rb
1547
1576
  - app/models/spree_cm_commissioner/blazer_queryable.rb
1548
1577
  - app/models/spree_cm_commissioner/block.rb
1549
1578
  - app/models/spree_cm_commissioner/calculators/extra_drop_off_distance.rb
1550
1579
  - app/models/spree_cm_commissioner/calculators/extra_pick_up_distance.rb
1580
+ - app/models/spree_cm_commissioner/calculators/service_fee_flat_amount.rb
1581
+ - app/models/spree_cm_commissioner/calculators/service_fee_percent.rb
1551
1582
  - app/models/spree_cm_commissioner/check_in.rb
1552
1583
  - app/models/spree_cm_commissioner/check_in_ability.rb
1553
1584
  - app/models/spree_cm_commissioner/check_in_record.rb
@@ -1559,6 +1590,7 @@ files:
1559
1590
  - app/models/spree_cm_commissioner/configuration.rb
1560
1591
  - app/models/spree_cm_commissioner/crew_invite.rb
1561
1592
  - app/models/spree_cm_commissioner/crew_invite_link.rb
1593
+ - app/models/spree_cm_commissioner/currency_rate.rb
1562
1594
  - app/models/spree_cm_commissioner/current.rb
1563
1595
  - app/models/spree_cm_commissioner/customer.rb
1564
1596
  - app/models/spree_cm_commissioner/customer_notification.rb
@@ -1609,7 +1641,11 @@ files:
1609
1641
  - app/models/spree_cm_commissioner/integration.rb
1610
1642
  - app/models/spree_cm_commissioner/integration_mapping.rb
1611
1643
  - app/models/spree_cm_commissioner/integration_sync_session.rb
1644
+ - app/models/spree_cm_commissioner/integrations/book_me_bus_v1.rb
1645
+ - app/models/spree_cm_commissioner/integrations/larryta.rb
1612
1646
  - app/models/spree_cm_commissioner/integrations/stadium_x_v1.rb
1647
+ - app/models/spree_cm_commissioner/integrations/switch_cm.rb
1648
+ - app/models/spree_cm_commissioner/integrations/vireak_buntham.rb
1613
1649
  - app/models/spree_cm_commissioner/inventory.rb
1614
1650
  - app/models/spree_cm_commissioner/inventory_hold.rb
1615
1651
  - app/models/spree_cm_commissioner/inventory_item.rb
@@ -1715,6 +1751,7 @@ files:
1715
1751
  - app/models/spree_cm_commissioner/seat_layout.rb
1716
1752
  - app/models/spree_cm_commissioner/seat_section.rb
1717
1753
  - app/models/spree_cm_commissioner/service_calendar.rb
1754
+ - app/models/spree_cm_commissioner/service_fee_rule.rb
1718
1755
  - app/models/spree_cm_commissioner/show.rb
1719
1756
  - app/models/spree_cm_commissioner/show_contestant.rb
1720
1757
  - app/models/spree_cm_commissioner/show_contestant_image.rb
@@ -1840,6 +1877,8 @@ files:
1840
1877
  - app/overrides/spree/admin/orders/customer_details/_form/phone_number_field.html.erb.deface
1841
1878
  - app/overrides/spree/admin/orders/customer_details/_form/view_profile_link.html.erb.deface
1842
1879
  - app/overrides/spree/admin/orders/customer_details/edit/reassign_customer_search.html.erb.deface
1880
+ - app/overrides/spree/admin/orders/index/line_items_row.html.erb.deface
1881
+ - app/overrides/spree/admin/orders/index/row_actions.html.erb.deface
1843
1882
  - app/overrides/spree/admin/payment_methods/_form/display_on_field.html.erb.deface
1844
1883
  - app/overrides/spree/admin/payment_methods/index/pagination.html.erb.deface
1845
1884
  - app/overrides/spree/admin/payment_methods/index/preserve_tab_in_search.html.erb.deface
@@ -2020,6 +2059,7 @@ files:
2020
2059
  - app/request_schemas/spree_cm_commissioner/variant_request_schema.rb
2021
2060
  - app/serializables/spree_cm_commissioner/event_chart.rb
2022
2061
  - app/serializables/spree_cm_commissioner/event_ticket_aggregator.rb
2062
+ - app/serializables/spree_cm_commissioner/item_availability_sync.rb
2023
2063
  - app/serializables/spree_cm_commissioner/pie_chart_event_aggregator.rb
2024
2064
  - app/serializers/.gitkeep
2025
2065
  - app/serializers/concerns/spree_cm_commissioner/api/v2/resource_serializer_concern_decorator.rb
@@ -2028,6 +2068,7 @@ files:
2028
2068
  - app/serializers/spree/api/v2/platform/create_line_item_adjustment_serializer.rb
2029
2069
  - app/serializers/spree/api/v2/platform/create_route_adjustment_serializer.rb
2030
2070
  - app/serializers/spree/api/v2/platform/pricing_action_serializer.rb
2071
+ - app/serializers/spree/api/v2/platform/service_fee_rule_serializer.rb
2031
2072
  - app/serializers/spree/v2/organizer/asset_serializer.rb
2032
2073
  - app/serializers/spree/v2/organizer/base_serializer.rb
2033
2074
  - app/serializers/spree/v2/organizer/image_serializer.rb
@@ -2166,6 +2207,7 @@ files:
2166
2207
  - app/serializers/spree_cm_commissioner/v2/storefront/cart_serializer_decorator.rb
2167
2208
  - app/serializers/spree_cm_commissioner/v2/storefront/category_taxon_serializer.rb
2168
2209
  - app/serializers/spree_cm_commissioner/v2/storefront/check_in_serializer.rb
2210
+ - app/serializers/spree_cm_commissioner/v2/storefront/cross_app_handoff_token_serializer.rb
2169
2211
  - app/serializers/spree_cm_commissioner/v2/storefront/distance_serializer.rb
2170
2212
  - app/serializers/spree_cm_commissioner/v2/storefront/dynamic_field_option_serializer.rb
2171
2213
  - app/serializers/spree_cm_commissioner/v2/storefront/dynamic_field_serializer.rb
@@ -2182,6 +2224,7 @@ files:
2182
2224
  - app/serializers/spree_cm_commissioner/v2/storefront/intercity_taxi_cart_serializer.rb
2183
2225
  - app/serializers/spree_cm_commissioner/v2/storefront/intercity_taxi_line_item_serializer.rb
2184
2226
  - app/serializers/spree_cm_commissioner/v2/storefront/inventory_item_serializer.rb
2227
+ - app/serializers/spree_cm_commissioner/v2/storefront/item_availability_sync_serializer.rb
2185
2228
  - app/serializers/spree_cm_commissioner/v2/storefront/menu_item_serializer_decorator.rb
2186
2229
  - app/serializers/spree_cm_commissioner/v2/storefront/menu_serializer_decorator.rb
2187
2230
  - app/serializers/spree_cm_commissioner/v2/storefront/payment_method_group_serializer.rb
@@ -2233,6 +2276,7 @@ files:
2233
2276
  - app/services/spree_cm_commissioner/agency_users/destroy.rb
2234
2277
  - app/services/spree_cm_commissioner/api_caches/invalidate.rb
2235
2278
  - app/services/spree_cm_commissioner/assign_product_to_section/update.rb
2279
+ - app/services/spree_cm_commissioner/audit_logger.rb
2236
2280
  - app/services/spree_cm_commissioner/calculate_distance.rb
2237
2281
  - app/services/spree_cm_commissioner/cart/add_guest.rb
2238
2282
  - app/services/spree_cm_commissioner/cart/add_item_decorator.rb
@@ -2246,10 +2290,15 @@ files:
2246
2290
  - app/services/spree_cm_commissioner/check_ins/create_bulk.rb
2247
2291
  - app/services/spree_cm_commissioner/check_ins/destroy_bulk.rb
2248
2292
  - app/services/spree_cm_commissioner/checkout/advance_decorator.rb
2293
+ - app/services/spree_cm_commissioner/checkout/advance_to_payment.rb
2249
2294
  - app/services/spree_cm_commissioner/checkout/complete_decorator.rb
2250
2295
  - app/services/spree_cm_commissioner/checkout/update_decorator.rb
2251
2296
  - app/services/spree_cm_commissioner/completion_steps/mark_line_item_as_completed.rb
2252
2297
  - app/services/spree_cm_commissioner/completion_steps/regenerate_for_line_items.rb
2298
+ - app/services/spree_cm_commissioner/cross_app_handoff_tokens/decode.rb
2299
+ - app/services/spree_cm_commissioner/cross_app_handoff_tokens/encode.rb
2300
+ - app/services/spree_cm_commissioner/currency_converter/create.rb
2301
+ - app/services/spree_cm_commissioner/currency_rates/manage.rb
2253
2302
  - app/services/spree_cm_commissioner/distribution_agreements/create.rb
2254
2303
  - app/services/spree_cm_commissioner/distribution_agreements/update.rb
2255
2304
  - app/services/spree_cm_commissioner/draft_orders/create.rb
@@ -2261,6 +2310,7 @@ files:
2261
2310
  - app/services/spree_cm_commissioner/feed/vendor_include_product.rb
2262
2311
  - app/services/spree_cm_commissioner/feed/vendor_product.rb
2263
2312
  - app/services/spree_cm_commissioner/fraud_check.rb
2313
+ - app/services/spree_cm_commissioner/google_maps_geocoder.rb
2264
2314
  - app/services/spree_cm_commissioner/google_wallets/base_event_ticket_class.rb
2265
2315
  - app/services/spree_cm_commissioner/google_wallets/base_generic_class.rb
2266
2316
  - app/services/spree_cm_commissioner/google_wallets/base_generic_object_builder.rb
@@ -2289,7 +2339,67 @@ files:
2289
2339
  - app/services/spree_cm_commissioner/imports/orders/update.rb
2290
2340
  - app/services/spree_cm_commissioner/integrations/base/sync_manager.rb
2291
2341
  - app/services/spree_cm_commissioner/integrations/base/sync_result.rb
2342
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/external_client/client.rb
2343
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/external_client/connection.rb
2344
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/inventory/external_inventory_item_status.rb
2345
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/inventory/external_inventory_items.rb
2346
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/inventory/unstock_inventory.rb
2347
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_inventory.rb
2348
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_item_availability.rb
2349
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_locations.rb
2350
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_nationality_pricing.rb
2351
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_product.rb
2352
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_route_stops.rb
2353
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_routes.rb
2354
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_seat_layout.rb
2355
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_service_calendars.rb
2356
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_trip_stop.rb
2357
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_trips.rb
2358
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_variant.rb
2359
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_vehicle_types.rb
2360
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/time_parser.rb
2361
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/base.rb
2362
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/inventory_item_status.rb
2363
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/location.rb
2364
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/reservation_cart.rb
2365
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/seat.rb
2366
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/seat_layout.rb
2367
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/stop.rb
2368
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/trip.rb
2369
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/wallet_payment.rb
2370
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_manager.rb
2371
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_strategies/full_sync_strategy.rb
2372
+ - app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_strategies/incremental_sync_strategy.rb
2292
2373
  - app/services/spree_cm_commissioner/integrations/cleanup_sync_sessions.rb
2374
+ - app/services/spree_cm_commissioner/integrations/larryta/external_client/client.rb
2375
+ - app/services/spree_cm_commissioner/integrations/larryta/external_client/connection.rb
2376
+ - app/services/spree_cm_commissioner/integrations/larryta/inventory/external_inventory_item_status.rb
2377
+ - app/services/spree_cm_commissioner/integrations/larryta/inventory/external_inventory_items.rb
2378
+ - app/services/spree_cm_commissioner/integrations/larryta/inventory/hold_seats.rb
2379
+ - app/services/spree_cm_commissioner/integrations/larryta/inventory/release_seats.rb
2380
+ - app/services/spree_cm_commissioner/integrations/larryta/inventory/unstock_inventory.rb
2381
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_item_availability.rb
2382
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_product.rb
2383
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_routes.rb
2384
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_seat_layout.rb
2385
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_stock_item.rb
2386
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_trip_stop.rb
2387
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_trips.rb
2388
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_variant.rb
2389
+ - app/services/spree_cm_commissioner/integrations/larryta/polling/sync_vehicle_type.rb
2390
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/base.rb
2391
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/booking.rb
2392
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/booking_session.rb
2393
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/booking_transaction.rb
2394
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/direction.rb
2395
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/passenger.rb
2396
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/schedule.rb
2397
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/seat.rb
2398
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/seat_availability.rb
2399
+ - app/services/spree_cm_commissioner/integrations/larryta/resources/seat_layout.rb
2400
+ - app/services/spree_cm_commissioner/integrations/larryta/sync_manager.rb
2401
+ - app/services/spree_cm_commissioner/integrations/larryta/sync_strategies/full_sync_strategy.rb
2402
+ - app/services/spree_cm_commissioner/integrations/larryta/sync_strategies/incremental_sync_strategy.rb
2293
2403
  - app/services/spree_cm_commissioner/integrations/polling.rb
2294
2404
  - app/services/spree_cm_commissioner/integrations/polling_scheduler.rb
2295
2405
  - app/services/spree_cm_commissioner/integrations/stadium_x_v1/external_client/client.rb
@@ -2306,6 +2416,60 @@ files:
2306
2416
  - app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/full_sync_strategy.rb
2307
2417
  - app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/incremental_sync_strategy.rb
2308
2418
  - app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/webhook_sync_strategy.rb
2419
+ - app/services/spree_cm_commissioner/integrations/switch_cm/accept_push.rb
2420
+ - app/services/spree_cm_commissioner/integrations/switch_cm/accommodation_lock.rb
2421
+ - app/services/spree_cm_commissioner/integrations/switch_cm/acknowledge_reservations.rb
2422
+ - app/services/spree_cm_commissioner/integrations/switch_cm/apply_ari.rb
2423
+ - app/services/spree_cm_commissioner/integrations/switch_cm/ari_update.rb
2424
+ - app/services/spree_cm_commissioner/integrations/switch_cm/availability_readback.rb
2425
+ - app/services/spree_cm_commissioner/integrations/switch_cm/mark_seen.rb
2426
+ - app/services/spree_cm_commissioner/integrations/switch_cm/ota/avail_notif_parser.rb
2427
+ - app/services/spree_cm_commissioner/integrations/switch_cm/ota/base_parser.rb
2428
+ - app/services/spree_cm_commissioner/integrations/switch_cm/ota/push_response.rb
2429
+ - app/services/spree_cm_commissioner/integrations/switch_cm/ota/rate_amount_notif_parser.rb
2430
+ - app/services/spree_cm_commissioner/integrations/switch_cm/ota/reservation_presenter.rb
2431
+ - app/services/spree_cm_commissioner/integrations/switch_cm/ota/response_builder.rb
2432
+ - app/services/spree_cm_commissioner/integrations/switch_cm/pushed_nights.rb
2433
+ - app/services/spree_cm_commissioner/integrations/switch_cm/reservation.rb
2434
+ - app/services/spree_cm_commissioner/integrations/switch_cm/reservation_feed.rb
2435
+ - app/services/spree_cm_commissioner/integrations/switch_cm/room_catalog.rb
2436
+ - app/services/spree_cm_commissioner/integrations/switch_cm/sync_manager.rb
2437
+ - app/services/spree_cm_commissioner/integrations/switch_cm/sync_strategies/full_sync_strategy.rb
2438
+ - app/services/spree_cm_commissioner/integrations/switch_cm/sync_strategies/incremental_sync_strategy.rb
2439
+ - app/services/spree_cm_commissioner/integrations/switch_cm/unseen_room_nights.rb
2440
+ - app/services/spree_cm_commissioner/integrations/switch_cm/validate_ari_updates.rb
2441
+ - app/services/spree_cm_commissioner/integrations/switch_cm/xml/availability_parser.rb
2442
+ - app/services/spree_cm_commissioner/integrations/switch_cm/xml/push_response.rb
2443
+ - app/services/spree_cm_commissioner/integrations/switch_cm/xml/reservation_presenter.rb
2444
+ - app/services/spree_cm_commissioner/integrations/switch_cm/xml/response_builder.rb
2445
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/external_client/client.rb
2446
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/external_client/connection.rb
2447
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/inventory/external_inventory_item_status.rb
2448
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/inventory/external_inventory_items.rb
2449
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/inventory/unstock_inventory.rb
2450
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_item_availability.rb
2451
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_locations.rb
2452
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_nationality_pricing.rb
2453
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_product.rb
2454
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_routes.rb
2455
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_seat_layout.rb
2456
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_stock_item.rb
2457
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_trip_stop.rb
2458
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_trips.rb
2459
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_variant.rb
2460
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/polling/sync_vehicle_type.rb
2461
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/base.rb
2462
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/booking.rb
2463
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/booking_transaction.rb
2464
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/cell.rb
2465
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/confirm_booking_request.rb
2466
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/location.rb
2467
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/schedule.rb
2468
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb
2469
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat_layout.rb
2470
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/sync_manager.rb
2471
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/sync_strategies/full_sync_strategy.rb
2472
+ - app/services/spree_cm_commissioner/integrations/vireak_buntham/sync_strategies/incremental_sync_strategy.rb
2309
2473
  - app/services/spree_cm_commissioner/intercity_taxi_order/calculate_distance.rb
2310
2474
  - app/services/spree_cm_commissioner/intercity_taxi_order/create.rb
2311
2475
  - app/services/spree_cm_commissioner/intercity_taxi_order/update.rb
@@ -2322,6 +2486,7 @@ files:
2322
2486
  - app/services/spree_cm_commissioner/inventory_items/bulk_adjust_quantities_on_hold.rb
2323
2487
  - app/services/spree_cm_commissioner/inventory_items/bulk_generate_permanent_items.rb
2324
2488
  - app/services/spree_cm_commissioner/inventory_items/generate_non_permanent_item.rb
2489
+ - app/services/spree_cm_commissioner/inventory_items/generate_permanent_item.rb
2325
2490
  - app/services/spree_cm_commissioner/inventory_items/move_to_locked.rb
2326
2491
  - app/services/spree_cm_commissioner/inventory_items/reset.rb
2327
2492
  - app/services/spree_cm_commissioner/invite_guest_groups/create.rb
@@ -2356,6 +2521,7 @@ files:
2356
2521
  - app/services/spree_cm_commissioner/payment_references/aba_csv_import_service.rb
2357
2522
  - app/services/spree_cm_commissioner/payment_references/import_service.rb
2358
2523
  - app/services/spree_cm_commissioner/penalty_calculator.rb
2524
+ - app/services/spree_cm_commissioner/place_resolver.rb
2359
2525
  - app/services/spree_cm_commissioner/price_lists/create.rb
2360
2526
  - app/services/spree_cm_commissioner/pricing_models/activate.rb
2361
2527
  - app/services/spree_cm_commissioner/pricing_models/create_with_rule_groups.rb
@@ -2599,8 +2765,12 @@ files:
2599
2765
  - app/views/spree/admin/integration_mappings/index.html.erb
2600
2766
  - app/views/spree/admin/integration_sessions/_integration_sync_sessions.html.erb
2601
2767
  - app/views/spree/admin/integration_sessions/index.html.erb
2768
+ - app/views/spree/admin/integrations/_book_me_bus_v1_fields.html.erb
2602
2769
  - app/views/spree/admin/integrations/_form.html.erb
2770
+ - app/views/spree/admin/integrations/_larryta_fields.html.erb
2603
2771
  - app/views/spree/admin/integrations/_stadium_x_v1_fields.html.erb
2772
+ - app/views/spree/admin/integrations/_switch_cm_fields.html.erb
2773
+ - app/views/spree/admin/integrations/_vireak_buntham_fields.html.erb
2604
2774
  - app/views/spree/admin/integrations/edit.html.erb
2605
2775
  - app/views/spree/admin/integrations/index.html.erb
2606
2776
  - app/views/spree/admin/integrations/new.html.erb
@@ -2636,6 +2806,7 @@ files:
2636
2806
  - app/views/spree/admin/option_types/_option_value_fields.html.erb
2637
2807
  - app/views/spree/admin/option_types/_time_field.html.erb
2638
2808
  - app/views/spree/admin/order_ticket_transfers/show.html.erb
2809
+ - app/views/spree/admin/orders/line_items.html.erb
2639
2810
  - app/views/spree/admin/orders/notifications.html.erb
2640
2811
  - app/views/spree/admin/payment_imports/index.html.erb
2641
2812
  - app/views/spree/admin/payment_imports/new.html.erb
@@ -2673,6 +2844,10 @@ files:
2673
2844
  - app/views/spree/admin/promotions/rules/_guest_occupations.html.erb
2674
2845
  - app/views/spree/admin/promotions/rules/_vendors.html.erb
2675
2846
  - app/views/spree/admin/promotions/rules/_weekend.html.erb
2847
+ - app/views/spree/admin/service_fee_rules/_form.html.erb
2848
+ - app/views/spree/admin/service_fee_rules/edit.html.erb
2849
+ - app/views/spree/admin/service_fee_rules/index.html.erb
2850
+ - app/views/spree/admin/service_fee_rules/new.html.erb
2676
2851
  - app/views/spree/admin/shared/_availability_percentage.html.erb
2677
2852
  - app/views/spree/admin/shared/_cms_pages_tabs.html.erb
2678
2853
  - app/views/spree/admin/shared/_customer_notification_tabs.html.erb
@@ -3496,6 +3671,7 @@ files:
3496
3671
  - db/migrate/20260326100000_create_cm_price_lists.rb
3497
3672
  - db/migrate/20260327090000_create_cm_inventory_holds.rb
3498
3673
  - db/migrate/20260327090001_add_quantity_on_hold_to_cm_inventory_items.rb
3674
+ - db/migrate/20260327143200_create_cm_audit_events.rb
3499
3675
  - db/migrate/20260330032107_create_cm_distribution_agreements.rb
3500
3676
  - db/migrate/20260330032108_add_vendor_id_to_spree_taxonomies.rb
3501
3677
  - db/migrate/20260330160000_create_cm_votes.rb
@@ -3508,8 +3684,10 @@ files:
3508
3684
  - db/migrate/20260406000001_rename_votes_remaining_to_amount_in_cm_voting_credits.rb
3509
3685
  - db/migrate/20260408085255_add_show_id_and_vendor_id_to_cm_voting_sessions.rb
3510
3686
  - db/migrate/20260408100000_create_cm_ticket_transfer_rules.rb
3687
+ - db/migrate/20260410045815_create_cm_currency_rates.rb
3511
3688
  - db/migrate/20260410080000_add_payment_locked_at_to_cm_reserved_blocks.rb
3512
3689
  - db/migrate/20260410120000_add_transfer_type_to_cm_ticket_transfers.rb
3690
+ - db/migrate/20260411102139_add_metadata_to_cm_inventory_items.rb
3513
3691
  - db/migrate/20260420000001_rename_type_to_credit_type_in_cm_voting_credits.rb
3514
3692
  - db/migrate/20260422000001_create_cm_vote_fraud_events.rb
3515
3693
  - db/migrate/20260422120000_add_settlement_status_to_cm_ticket_transfers.rb
@@ -3585,6 +3763,11 @@ files:
3585
3763
  - db/migrate/20260828080349_add_normalized_login_to_spree_users.rb
3586
3764
  - db/migrate/20260831080000_create_cm_inventory_lock_movements.rb
3587
3765
  - db/migrate/20260909000000_rename_jwt_token_to_token_on_cm_waiting_room_sessions.rb
3766
+ - db/migrate/20260914000000_add_mini_app_to_homepage_sections.rb
3767
+ - db/migrate/20260917085551_create_cm_service_fee_rules.rb
3768
+ - db/migrate/20260917085552_add_service_fee_total_to_spree_line_items_and_orders.rb
3769
+ - db/migrate/20260928000000_add_oauth_application_id_to_cm_integrations.rb
3770
+ - db/migrate/20260928000001_add_closed_to_cm_inventory_items.rb
3588
3771
  - docker-compose.yml
3589
3772
  - docs/api/scoped-access-token-endpoints.md
3590
3773
  - docs/option_types/attr_types.md
@@ -3801,9 +3984,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
3801
3984
  version: '2.7'
3802
3985
  required_rubygems_version: !ruby/object:Gem::Requirement
3803
3986
  requirements:
3804
- - - ">="
3987
+ - - ">"
3805
3988
  - !ruby/object:Gem::Version
3806
- version: '0'
3989
+ version: 1.3.1
3807
3990
  requirements:
3808
3991
  - none
3809
3992
  rubygems_version: 3.4.1