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

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/.env.example +3 -0
  3. data/Gemfile.lock +1 -1
  4. data/app/assets/images/cm-hangmeas-checkout_image.svg +63 -0
  5. data/app/assets/images/cm-hangmeas-failed.svg +56 -0
  6. data/app/assets/images/cm-hangmeas-loader.svg +50 -0
  7. data/app/assets/images/cm-hangmeas-success.svg +51 -0
  8. data/app/assets/javascripts/spree_cm_commissioner/backend.js +1 -0
  9. data/app/assets/javascripts/spree_cm_commissioner/tenant_payment_icon_fields.js +65 -0
  10. data/app/assets/stylesheets/spree_cm_commissioner/backend/commissioner_admin.css.scss +1 -0
  11. data/app/assets/stylesheets/spree_cm_commissioner/backend/tenant_payment_icon_fields.scss +60 -0
  12. data/app/controllers/concerns/spree_cm_commissioner/content_cachable.rb +2 -1
  13. data/app/controllers/spree/admin/event_blazer_queries_controller.rb +11 -4
  14. data/app/controllers/spree/admin/tenants_controller.rb +8 -0
  15. data/app/controllers/spree/admin/trip_blazer_queries_controller.rb +35 -0
  16. data/app/controllers/spree/api/v2/organizer/invite_crews_controller.rb +33 -0
  17. data/app/controllers/spree/api/v2/storefront/dynamic_field_options_controller.rb +5 -1
  18. data/app/controllers/spree/api/v2/storefront/guests_controller.rb +31 -5
  19. data/app/controllers/spree/api/v2/tenant/checkout_controller.rb +2 -0
  20. data/app/controllers/spree_cm_commissioner/admin/variants_controller_decorator.rb +1 -1
  21. data/app/controllers/spree_cm_commissioner/api/v2/storefront/checkout_controller_decorator.rb +11 -0
  22. data/app/controllers/spree_cm_commissioner/well_known_controller.rb +31 -17
  23. data/app/interactors/spree_cm_commissioner/apple_app_site_association_fetcher.rb +27 -0
  24. data/app/interactors/spree_cm_commissioner/asset_links_fetcher.rb +27 -0
  25. data/app/interactors/spree_cm_commissioner/crew_invite_link_handler.rb +48 -0
  26. data/app/interactors/spree_cm_commissioner/telegram_chats_auto_finder.rb +144 -0
  27. data/app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb +5 -1
  28. data/app/models/concerns/spree_cm_commissioner/event_check_in_flowable.rb +30 -0
  29. data/app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb +2 -1
  30. data/app/models/concerns/spree_cm_commissioner/tenant_preference.rb +4 -0
  31. data/app/models/spree_cm_commissioner/blazer_queryable.rb +8 -0
  32. data/app/models/spree_cm_commissioner/crew_invite_link.rb +4 -0
  33. data/app/models/spree_cm_commissioner/dynamic_field.rb +17 -3
  34. data/app/models/spree_cm_commissioner/dynamic_field_option.rb +7 -1
  35. data/app/models/spree_cm_commissioner/guest.rb +1 -1
  36. data/app/models/spree_cm_commissioner/guest_dynamic_field.rb +21 -3
  37. data/app/models/spree_cm_commissioner/invite.rb +4 -6
  38. data/app/models/spree_cm_commissioner/invite_team.rb +3 -1
  39. data/app/models/spree_cm_commissioner/pin_code.rb +3 -2
  40. data/app/models/spree_cm_commissioner/pin_code_telegram.rb +28 -0
  41. data/app/models/spree_cm_commissioner/place.rb +0 -1
  42. data/app/models/spree_cm_commissioner/product_decorator.rb +0 -2
  43. data/app/models/spree_cm_commissioner/promotion_category_decorator.rb +11 -0
  44. data/app/models/spree_cm_commissioner/taxon_decorator.rb +5 -2
  45. data/app/models/spree_cm_commissioner/telegram_chat.rb +6 -0
  46. data/app/models/spree_cm_commissioner/trip.rb +9 -13
  47. data/app/models/spree_cm_commissioner/trip_stop.rb +5 -23
  48. data/app/models/spree_cm_commissioner/user_taxon.rb +1 -0
  49. data/app/models/spree_cm_commissioner/variant_decorator.rb +1 -0
  50. data/app/models/spree_cm_commissioner/vendor_decorator.rb +9 -9
  51. data/app/models/spree_cm_commissioner/vendor_place.rb +8 -3
  52. data/app/overrides/spree/admin/taxons/_form/check_in_flows.html.erb.deface +18 -0
  53. data/app/overrides/spree/admin/variants/_form/kyc_field.html.erb.deface +2 -2
  54. data/app/queries/spree_cm_commissioner/guest_searcher_query.rb +45 -3
  55. data/app/queries/spree_cm_commissioner/trip_query.rb +56 -27
  56. data/app/serializers/spree/v2/organizer/invite_crews_serializer.rb +11 -0
  57. data/app/serializers/spree_cm_commissioner/v2/operator/dashboard_crew_event_serializer.rb +4 -1
  58. data/app/serializers/spree_cm_commissioner/v2/storefront/dynamic_field_option_serializer.rb +1 -3
  59. data/app/serializers/spree_cm_commissioner/v2/storefront/dynamic_field_serializer.rb +1 -3
  60. data/app/serializers/spree_cm_commissioner/v2/storefront/guest_dynamic_field_serializer.rb +2 -1
  61. data/app/services/spree_cm_commissioner/organizer/export_guest_csv_service.rb +23 -15
  62. data/app/views/blazer/queries/_content.html.erb +8 -0
  63. data/app/views/spree/admin/tenants/_form.html.erb +109 -42
  64. data/config/initializers/spree_permitted_attributes.rb +2 -0
  65. data/config/locales/en.yml +5 -0
  66. data/config/routes.rb +4 -1
  67. data/db/migrate/20250616084219_add_description_to_cm_vendor_place.rb +5 -0
  68. data/db/migrate/20250630103536_create_cm_telegram_chats.rb +13 -0
  69. data/db/migrate/20250701093203_add_configurations_to_cm_dynamic_field.rb +6 -0
  70. data/db/migrate/20250702091305_add_dynamic_field_option_to_guest_dynamic_field.rb +5 -0
  71. data/db/migrate/20250702091935_add_status_to_dynamic_field_option.rb +5 -0
  72. data/db/migrate/20250707032008_add_vendor_id_to_spree_category.rb +7 -0
  73. data/db/migrate/20250711092937_add_position_to_cm_dynamic_fields.rb +11 -0
  74. data/db/migrate/20250711093045_add_position_to_cm_dynamic_field_options.rb +11 -0
  75. data/db/migrate/20250714121508_rename_cm_taxon_blazer_query_to_blazer_queryables.rb +7 -0
  76. data/db/migrate/20250714124323_make_cm_blazer_queryables_polymorphic.rb +19 -0
  77. data/db/migrate/20250716022821_add_location_reference_to_cm_vendor_places.rb +5 -0
  78. data/db/migrate/20250716031743_drop_table_cm_vendor_stops.rb +5 -0
  79. data/db/migrate/20250717023824_add_vendor_reference_to_cm_trips.rb +5 -0
  80. data/db/migrate/20250717041414_add_location_place_reference_to_cm_trip_stops.rb +5 -0
  81. data/db/migrate/20250717042539_rename_cm_trip_stops_stop_id_column_to_stop_place_id.rb +7 -0
  82. data/db/migrate/20250717042707_rename_cm_trips_origin_and_destination_to_origin_place_and_destination_place.rb +11 -0
  83. data/lib/spree_cm_commissioner/test_helper/factories/block_factory.rb +9 -3
  84. data/lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb +6 -3
  85. data/lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb +11 -3
  86. data/lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb +3 -2
  87. data/lib/spree_cm_commissioner/test_helper/factories/trip_stop_factory.rb +10 -0
  88. data/lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb +5 -0
  89. data/lib/spree_cm_commissioner/test_helper/factories/vendor_place_factory.rb +13 -1
  90. data/lib/spree_cm_commissioner/trip_query_result.rb +8 -0
  91. data/lib/spree_cm_commissioner/trip_result.rb +5 -3
  92. data/lib/spree_cm_commissioner/version.rb +1 -1
  93. metadata +39 -5
  94. data/app/models/spree_cm_commissioner/taxon_blazer_query.rb +0 -8
  95. data/app/models/spree_cm_commissioner/vendor_stop.rb +0 -9
  96. data/app/queries/spree_cm_commissioner/vendor_stop_place_query.rb +0 -54
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.pre
4
+ version: 2.0.1.pre.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-07-11 00:00:00.000000000 Z
11
+ date: 2025-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -656,6 +656,10 @@ files:
656
656
  - app/assets/images/cm-fitness-room-icon.svg
657
657
  - app/assets/images/cm-front-desk-icon.svg
658
658
  - app/assets/images/cm-hair-dryer-icon.svg
659
+ - app/assets/images/cm-hangmeas-checkout_image.svg
660
+ - app/assets/images/cm-hangmeas-failed.svg
661
+ - app/assets/images/cm-hangmeas-loader.svg
662
+ - app/assets/images/cm-hangmeas-success.svg
659
663
  - app/assets/images/cm-hiking-icon.svg
660
664
  - app/assets/images/cm-iron-icon.svg
661
665
  - app/assets/images/cm-lcd-tv-icon.svg
@@ -761,6 +765,7 @@ files:
761
765
  - app/assets/javascripts/spree_cm_commissioner/selected_field_filter_origin_destination.js
762
766
  - app/assets/javascripts/spree_cm_commissioner/telegram.js
763
767
  - app/assets/javascripts/spree_cm_commissioner/telegram/order_confirmation.js
768
+ - app/assets/javascripts/spree_cm_commissioner/tenant_payment_icon_fields.js
764
769
  - app/assets/javascripts/spree_cm_commissioner/trip_stop_selection.js
765
770
  - app/assets/javascripts/spree_cm_commissioner/update_popup_confirmation.js
766
771
  - app/assets/javascripts/spree_cm_commissioner/vehicle_seat.js
@@ -770,6 +775,7 @@ files:
770
775
  - app/assets/stylesheets/spree_cm_commissioner/backend/guest_qr_code.scss
771
776
  - app/assets/stylesheets/spree_cm_commissioner/backend/invoice.scss
772
777
  - app/assets/stylesheets/spree_cm_commissioner/backend/service_calendar.scss
778
+ - app/assets/stylesheets/spree_cm_commissioner/backend/tenant_payment_icon_fields.scss
773
779
  - app/assets/stylesheets/spree_cm_commissioner/backend/vehicle_seat.scss
774
780
  - app/assets/stylesheets/spree_cm_commissioner/telegram.css
775
781
  - app/assets/stylesheets/spree_cm_commissioner/telegram/telegram_bot.css.scss
@@ -837,6 +843,7 @@ files:
837
843
  - app/controllers/spree/admin/telegram_bots_controller.rb
838
844
  - app/controllers/spree/admin/tenant_vendors_controller.rb
839
845
  - app/controllers/spree/admin/tenants_controller.rb
846
+ - app/controllers/spree/admin/trip_blazer_queries_controller.rb
840
847
  - app/controllers/spree/admin/user_events_controller.rb
841
848
  - app/controllers/spree/admin/user_identity_providers_controller.rb
842
849
  - app/controllers/spree/admin/users_controller_decorator.rb
@@ -869,6 +876,7 @@ files:
869
876
  - app/controllers/spree/api/v2/operator/taxons_controller.rb
870
877
  - app/controllers/spree/api/v2/organizer/base_controller.rb
871
878
  - app/controllers/spree/api/v2/organizer/images_controller.rb
879
+ - app/controllers/spree/api/v2/organizer/invite_crews_controller.rb
872
880
  - app/controllers/spree/api/v2/organizer/invite_guests_controller.rb
873
881
  - app/controllers/spree/api/v2/organizer/invites_controller.rb
874
882
  - app/controllers/spree/api/v2/organizer/s3_signed_urls_controller.rb
@@ -1090,7 +1098,9 @@ files:
1090
1098
  - app/interactors/spree_cm_commissioner/account_linkage.rb
1091
1099
  - app/interactors/spree_cm_commissioner/account_recover.rb
1092
1100
  - app/interactors/spree_cm_commissioner/account_updater.rb
1101
+ - app/interactors/spree_cm_commissioner/apple_app_site_association_fetcher.rb
1093
1102
  - app/interactors/spree_cm_commissioner/apply_service_availability.rb
1103
+ - app/interactors/spree_cm_commissioner/asset_links_fetcher.rb
1094
1104
  - app/interactors/spree_cm_commissioner/base_interactor.rb
1095
1105
  - app/interactors/spree_cm_commissioner/bib_number_swapper.rb
1096
1106
  - app/interactors/spree_cm_commissioner/chatrace_order_creator.rb
@@ -1100,6 +1110,7 @@ files:
1100
1110
  - app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb
1101
1111
  - app/interactors/spree_cm_commissioner/create_event.rb
1102
1112
  - app/interactors/spree_cm_commissioner/create_ticket.rb
1113
+ - app/interactors/spree_cm_commissioner/crew_invite_link_handler.rb
1103
1114
  - app/interactors/spree_cm_commissioner/crew_inviter.rb
1104
1115
  - app/interactors/spree_cm_commissioner/customer_content_notification_creator.rb
1105
1116
  - app/interactors/spree_cm_commissioner/customer_notification_cron_executor.rb
@@ -1166,6 +1177,7 @@ files:
1166
1177
  - app/interactors/spree_cm_commissioner/subscriptions_order_creator.rb
1167
1178
  - app/interactors/spree_cm_commissioner/subscriptions_order_cron_executor.rb
1168
1179
  - app/interactors/spree_cm_commissioner/subscriptions_prepaid_order_creator.rb
1180
+ - app/interactors/spree_cm_commissioner/telegram_chats_auto_finder.rb
1169
1181
  - app/interactors/spree_cm_commissioner/telegram_chats_finder.rb
1170
1182
  - app/interactors/spree_cm_commissioner/telegram_debug_pin_code_sender.rb
1171
1183
  - app/interactors/spree_cm_commissioner/telegram_notification_sender.rb
@@ -1249,6 +1261,7 @@ files:
1249
1261
  - app/mailers/spree_cm_commissioner/pin_code_mailer.rb
1250
1262
  - app/mailers/spree_cm_commissioner/team_invite_mailer.rb
1251
1263
  - app/models/.gitkeep
1264
+ - app/models/concerns/spree_cm_commissioner/event_check_in_flowable.rb
1252
1265
  - app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
1253
1266
  - app/models/concerns/spree_cm_commissioner/json_preference_validator.rb
1254
1267
  - app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
@@ -1286,6 +1299,7 @@ files:
1286
1299
  - app/models/spree_cm_commissioner/asset.rb
1287
1300
  - app/models/spree_cm_commissioner/back_image.rb
1288
1301
  - app/models/spree_cm_commissioner/base.rb
1302
+ - app/models/spree_cm_commissioner/blazer_queryable.rb
1289
1303
  - app/models/spree_cm_commissioner/block.rb
1290
1304
  - app/models/spree_cm_commissioner/check_in.rb
1291
1305
  - app/models/spree_cm_commissioner/check_in_ability.rb
@@ -1294,6 +1308,7 @@ files:
1294
1308
  - app/models/spree_cm_commissioner/cms_page_decorator.rb
1295
1309
  - app/models/spree_cm_commissioner/configuration.rb
1296
1310
  - app/models/spree_cm_commissioner/crew_invite.rb
1311
+ - app/models/spree_cm_commissioner/crew_invite_link.rb
1297
1312
  - app/models/spree_cm_commissioner/customer.rb
1298
1313
  - app/models/spree_cm_commissioner/customer_notification.rb
1299
1314
  - app/models/spree_cm_commissioner/customer_promotion_rule.rb
@@ -1365,6 +1380,7 @@ files:
1365
1380
  - app/models/spree_cm_commissioner/pin_code_mobile_confirm.rb
1366
1381
  - app/models/spree_cm_commissioner/pin_code_otp.rb
1367
1382
  - app/models/spree_cm_commissioner/pin_code_registration.rb
1383
+ - app/models/spree_cm_commissioner/pin_code_telegram.rb
1368
1384
  - app/models/spree_cm_commissioner/pin_code_update_user_login.rb
1369
1385
  - app/models/spree_cm_commissioner/place.rb
1370
1386
  - app/models/spree_cm_commissioner/price_decorator.rb
@@ -1385,6 +1401,7 @@ files:
1385
1401
  - app/models/spree_cm_commissioner/promotion/rules/guest_occupations.rb
1386
1402
  - app/models/spree_cm_commissioner/promotion/rules/vendors.rb
1387
1403
  - app/models/spree_cm_commissioner/promotion/rules/weekend.rb
1404
+ - app/models/spree_cm_commissioner/promotion_category_decorator.rb
1388
1405
  - app/models/spree_cm_commissioner/promotion_decorator.rb
1389
1406
  - app/models/spree_cm_commissioner/property_decorator.rb
1390
1407
  - app/models/spree_cm_commissioner/prototype_decorator.rb
@@ -1420,7 +1437,6 @@ files:
1420
1437
  - app/models/spree_cm_commissioner/store_decorator.rb
1421
1438
  - app/models/spree_cm_commissioner/subscription.rb
1422
1439
  - app/models/spree_cm_commissioner/taxon_app_banner.rb
1423
- - app/models/spree_cm_commissioner/taxon_blazer_query.rb
1424
1440
  - app/models/spree_cm_commissioner/taxon_brand_logo.rb
1425
1441
  - app/models/spree_cm_commissioner/taxon_category_icon.rb
1426
1442
  - app/models/spree_cm_commissioner/taxon_decorator.rb
@@ -1433,6 +1449,7 @@ files:
1433
1449
  - app/models/spree_cm_commissioner/taxon_web_banner.rb
1434
1450
  - app/models/spree_cm_commissioner/taxonomy_decorator.rb
1435
1451
  - app/models/spree_cm_commissioner/telegram_bot.rb
1452
+ - app/models/spree_cm_commissioner/telegram_chat.rb
1436
1453
  - app/models/spree_cm_commissioner/tenant.rb
1437
1454
  - app/models/spree_cm_commissioner/transactional_email.rb
1438
1455
  - app/models/spree_cm_commissioner/trip.rb
@@ -1462,7 +1479,6 @@ files:
1462
1479
  - app/models/spree_cm_commissioner/vendor_photo.rb
1463
1480
  - app/models/spree_cm_commissioner/vendor_place.rb
1464
1481
  - app/models/spree_cm_commissioner/vendor_promotion_rule.rb
1465
- - app/models/spree_cm_commissioner/vendor_stop.rb
1466
1482
  - app/models/spree_cm_commissioner/vendor_web_promotion_banner.rb
1467
1483
  - app/models/spree_cm_commissioner/video.rb
1468
1484
  - app/models/spree_cm_commissioner/video_on_demand.rb
@@ -1569,6 +1585,7 @@ files:
1569
1585
  - app/overrides/spree/admin/taxons/_form/assets_form.html.erb.deface
1570
1586
  - app/overrides/spree/admin/taxons/_form/available_on.html.erb.deface
1571
1587
  - app/overrides/spree/admin/taxons/_form/background_color_and_foreground_color.html.erb.deface
1588
+ - app/overrides/spree/admin/taxons/_form/check_in_flows.html.erb.deface
1572
1589
  - app/overrides/spree/admin/taxons/_form/custom_redirect_url.html.erb.deface
1573
1590
  - app/overrides/spree/admin/taxons/_form/hide_video_banner.html.erb.deface
1574
1591
  - app/overrides/spree/admin/taxons/_form/kind_html.erb.deface
@@ -1625,7 +1642,6 @@ files:
1625
1642
  - app/queries/spree_cm_commissioner/trip_query.rb
1626
1643
  - app/queries/spree_cm_commissioner/trip_seat_layout_query.rb
1627
1644
  - app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
1628
- - app/queries/spree_cm_commissioner/vendor_stop_place_query.rb
1629
1645
  - app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
1630
1646
  - app/request_schemas/spree_cm_commissioner/application_request_schema.rb
1631
1647
  - app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
@@ -1641,6 +1657,7 @@ files:
1641
1657
  - app/serializers/spree/v2/organizer/asset_serializer.rb
1642
1658
  - app/serializers/spree/v2/organizer/base_serializer.rb
1643
1659
  - app/serializers/spree/v2/organizer/image_serializer.rb
1660
+ - app/serializers/spree/v2/organizer/invite_crews_serializer.rb
1644
1661
  - app/serializers/spree/v2/organizer/invite_guest_serializer.rb
1645
1662
  - app/serializers/spree/v2/organizer/invite_serializer.rb
1646
1663
  - app/serializers/spree/v2/organizer/s3_signed_url_serializer.rb
@@ -2599,6 +2616,7 @@ files:
2599
2616
  - db/migrate/20250610080108_add_contact_to_cm_guests.rb
2600
2617
  - db/migrate/20250611023548_add_country_code_to_guests.rb
2601
2618
  - db/migrate/20250612035937_add_intel_phone_number_to_guests.rb
2619
+ - db/migrate/20250616084219_add_description_to_cm_vendor_place.rb
2602
2620
  - db/migrate/20250619073724_drop_table_cm_line_item_seats.rb
2603
2621
  - db/migrate/20250619073812_drop_table_cm_vehicle_seats.rb
2604
2622
  - db/migrate/20250619073844_drop_table_cm_vehicle_types.rb
@@ -2614,6 +2632,21 @@ files:
2614
2632
  - db/migrate/20250624091005_create_cm_reserved_blocks.rb
2615
2633
  - db/migrate/20250626083642_create_cm_variant_blocks.rb
2616
2634
  - db/migrate/20250627023314_add_block_id_to_cm_guests.rb
2635
+ - db/migrate/20250630103536_create_cm_telegram_chats.rb
2636
+ - db/migrate/20250701093203_add_configurations_to_cm_dynamic_field.rb
2637
+ - db/migrate/20250702091305_add_dynamic_field_option_to_guest_dynamic_field.rb
2638
+ - db/migrate/20250702091935_add_status_to_dynamic_field_option.rb
2639
+ - db/migrate/20250707032008_add_vendor_id_to_spree_category.rb
2640
+ - db/migrate/20250711092937_add_position_to_cm_dynamic_fields.rb
2641
+ - db/migrate/20250711093045_add_position_to_cm_dynamic_field_options.rb
2642
+ - db/migrate/20250714121508_rename_cm_taxon_blazer_query_to_blazer_queryables.rb
2643
+ - db/migrate/20250714124323_make_cm_blazer_queryables_polymorphic.rb
2644
+ - db/migrate/20250716022821_add_location_reference_to_cm_vendor_places.rb
2645
+ - db/migrate/20250716031743_drop_table_cm_vendor_stops.rb
2646
+ - db/migrate/20250717023824_add_vendor_reference_to_cm_trips.rb
2647
+ - db/migrate/20250717041414_add_location_place_reference_to_cm_trip_stops.rb
2648
+ - db/migrate/20250717042539_rename_cm_trip_stops_stop_id_column_to_stop_place_id.rb
2649
+ - db/migrate/20250717042707_rename_cm_trips_origin_and_destination_to_origin_place_and_destination_place.rb
2617
2650
  - docker-compose.yml
2618
2651
  - docs/option_types/attr_types.md
2619
2652
  - docs/private_key.pem
@@ -2707,6 +2740,7 @@ files:
2707
2740
  - lib/spree_cm_commissioner/test_helper/factories/transactional_email_factory.rb
2708
2741
  - lib/spree_cm_commissioner/test_helper/factories/trip_connection_factory.rb
2709
2742
  - lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb
2743
+ - lib/spree_cm_commissioner/test_helper/factories/trip_stop_factory.rb
2710
2744
  - lib/spree_cm_commissioner/test_helper/factories/user_deletion_reasons_factory.rb
2711
2745
  - lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb
2712
2746
  - lib/spree_cm_commissioner/test_helper/factories/user_factory.rb
@@ -1,8 +0,0 @@
1
- module SpreeCmCommissioner
2
- class TaxonBlazerQuery < SpreeCmCommissioner::Base
3
- belongs_to :taxon, class_name: 'Spree::Taxon'
4
- belongs_to :blazer_query, class_name: 'Blazer::Query'
5
-
6
- validates :taxon_id, uniqueness: { scope: :blazer_query_id, message: I18n.t('event_blazer_queries.fail') }
7
- end
8
- end
@@ -1,9 +0,0 @@
1
- module SpreeCmCommissioner
2
- class VendorStop < Base
3
- belongs_to :vendor, class_name: 'Spree::Vendor'
4
- belongs_to :stop, class_name: 'SpreeCmCommissioner::Place'
5
-
6
- validates :trip_count, numericality: { greater_than_or_equal_to: 0 }
7
- enum :stop_type, { boarding: 0, drop_off: 1 }
8
- end
9
- end
@@ -1,54 +0,0 @@
1
- module SpreeCmCommissioner
2
- class VendorStopPlaceQuery
3
- attr_reader :query, :vendor_id, :stop_type, :reference_stop_id
4
-
5
- def initialize(query:, vendor_id:, stop_type: :boarding, reference_stop_id: nil)
6
- @query = query.to_s.strip
7
- @vendor_id = vendor_id
8
- @stop_type = stop_type
9
- @reference_stop_id = reference_stop_id
10
- end
11
-
12
- def call
13
- results = vendor_stops
14
- return [] if results.empty?
15
-
16
- places = results.includes(:stop).map(&:stop).compact.uniq
17
-
18
- format_places(places)
19
- end
20
-
21
- private
22
-
23
- def vendor_stops
24
- scope = base_scope
25
- return scope if query.blank?
26
-
27
- scope = scope.where.not(stop_id: reference_stop_id) if reference_stop_id.present?
28
- scope.where('cm_places.name ILIKE ?', "%#{query}%")
29
- end
30
-
31
- def base_scope
32
- SpreeCmCommissioner::VendorStop
33
- .joins(:stop)
34
- .where(vendor_id: vendor_id)
35
- .where(stop_type: stop_type)
36
- .order(trip_count: :desc)
37
- .where.not(trip_count: 0)
38
- end
39
-
40
- def format_places(places)
41
- places
42
- .sort_by { |p| [-p.depth, -p.lft] }
43
- .filter_map do |place|
44
- next if place.depth.zero?
45
-
46
- {
47
- id: place.id,
48
- parent_id: place.parent_id,
49
- name: place.self_and_ancestors.map(&:name).reverse.join(', ')
50
- }
51
- end
52
- end
53
- end
54
- end