spree_cm_commissioner 2.0.3.pre.pre5 → 2.0.3.pre.pre8

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/app/controllers/spree/admin/locations_controller.rb +62 -0
  4. data/app/controllers/spree/api/v2/operator/event_charts_controller.rb +2 -8
  5. data/app/controllers/spree/api/v2/platform/places_controller.rb +4 -1
  6. data/app/controllers/spree/api/v2/storefront/dynamic_fields_controller.rb +42 -0
  7. data/app/controllers/spree/api/v2/storefront/guests_controller.rb +2 -0
  8. data/app/controllers/spree/api/v2/storefront/trip_places_controller.rb +29 -0
  9. data/app/controllers/spree/api/v2/storefront/trip_search_controller.rb +3 -1
  10. data/app/controllers/spree/api/v2/storefront/trips_controller.rb +24 -0
  11. data/app/controllers/spree_cm_commissioner/admin/products_controller_decorator.rb +14 -0
  12. data/app/interactors/spree_cm_commissioner/billing_address_creator.rb +33 -0
  13. data/app/interactors/spree_cm_commissioner/create_vendor.rb +11 -1
  14. data/app/interactors/spree_cm_commissioner/google_places_fetcher.rb +1 -0
  15. data/app/interactors/spree_cm_commissioner/intercity_taxi_order_creator.rb +106 -0
  16. data/app/interactors/spree_cm_commissioner/transit/draft_order_creator.rb +17 -4
  17. data/app/models/concerns/spree_cm_commissioner/taxon_kind.rb +1 -1
  18. data/app/models/concerns/spree_cm_commissioner/variant_options_concern.rb +1 -0
  19. data/app/models/spree_cm_commissioner/address_decorator.rb +17 -3
  20. data/app/models/spree_cm_commissioner/guest.rb +105 -56
  21. data/app/models/spree_cm_commissioner/guest_dynamic_field.rb +37 -27
  22. data/app/models/spree_cm_commissioner/order/address_book_decorator.rb +30 -12
  23. data/app/models/spree_cm_commissioner/order_decorator.rb +8 -1
  24. data/app/models/spree_cm_commissioner/place.rb +2 -0
  25. data/app/models/spree_cm_commissioner/product_decorator.rb +29 -0
  26. data/app/models/spree_cm_commissioner/saved_guest.rb +2 -0
  27. data/app/models/spree_cm_commissioner/taxon_decorator.rb +7 -0
  28. data/app/models/spree_cm_commissioner/trip.rb +4 -2
  29. data/app/models/spree_cm_commissioner/user_decorator.rb +1 -1
  30. data/app/models/spree_cm_commissioner/variant_options.rb +4 -0
  31. data/app/models/spree_cm_commissioner/vehicle.rb +2 -0
  32. data/app/models/spree_cm_commissioner/vendor_decorator.rb +3 -0
  33. data/app/overrides/spree/admin/products/_form/industry_taxons.html.erb.deface +26 -0
  34. data/app/overrides/spree/admin/products/_form/taxons.html.erb.deface +26 -0
  35. data/app/overrides/spree/admin/shared/sub_menu/_configuration/locations_tab.html.erb.deface +5 -0
  36. data/app/queries/spree_cm_commissioner/trip_query.rb +18 -18
  37. data/app/serializers/spree/v2/storefront/product_serializer_decorator.rb +2 -0
  38. data/app/serializers/{spree → spree_cm_commissioner}/v2/storefront/amenity_serializer.rb +2 -2
  39. data/app/serializers/spree_cm_commissioner/v2/storefront/block_serializer.rb +9 -0
  40. data/app/serializers/spree_cm_commissioner/v2/storefront/guest_serializer.rb +1 -3
  41. data/app/serializers/spree_cm_commissioner/v2/storefront/seat_layout_serializer.rb +12 -0
  42. data/app/serializers/spree_cm_commissioner/v2/storefront/seat_section_serializer.rb +11 -0
  43. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_place_serializer.rb +10 -0
  44. data/app/serializers/{spree → spree_cm_commissioner}/v2/storefront/trip_query_result_serializer.rb +2 -2
  45. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_result_serializer.rb +17 -0
  46. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_serializer.rb +17 -0
  47. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_stop_serializer.rb +9 -0
  48. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_variant_serializer.rb +12 -0
  49. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_vehicle_serializer.rb +16 -0
  50. data/app/serializers/{spree → spree_cm_commissioner}/v2/storefront/trip_vendor_serializer.rb +4 -1
  51. data/app/serializers/spree_cm_commissioner/v2/storefront/variant_block_serializer.rb +9 -0
  52. data/app/views/shared/_map.html.erb +5 -4
  53. data/app/views/spree/admin/locations/_form.html.erb +133 -0
  54. data/app/views/spree/admin/locations/edit.html.erb +11 -0
  55. data/app/views/spree/admin/locations/index.html.erb +67 -0
  56. data/app/views/spree/admin/locations/new.html.erb +11 -0
  57. data/config/locales/en.yml +2 -0
  58. data/config/routes.rb +4 -0
  59. data/db/migrate/20250812015522_remove_unique_indexes_from_cm_user_identity_providers.rb +8 -0
  60. data/db/migrate/20250812121745_add_data_fill_stage_phase_to_cm_guests.rb +5 -0
  61. data/db/migrate/20250814073854_add_call_to_action_to_spree_products.rb +5 -0
  62. data/lib/spree_cm_commissioner/transit/leg.rb +14 -0
  63. data/lib/spree_cm_commissioner/transit/seat_selection.rb +9 -1
  64. data/lib/spree_cm_commissioner/trip_query_result.rb +34 -0
  65. data/lib/spree_cm_commissioner/trip_result.rb +8 -1
  66. data/lib/spree_cm_commissioner/version.rb +1 -1
  67. metadata +31 -7
  68. data/app/serializers/spree/v2/storefront/trip_result_serializer.rb +0 -16
  69. data/app/serializers/spree/v2/storefront/trip_vehicle_serializer.rb +0 -11
@@ -26,5 +26,39 @@ module SpreeCmCommissioner
26
26
  def max_capacity
27
27
  @trips.map(&:max_capacity).compact.min
28
28
  end
29
+
30
+ def total_price
31
+ @trips.map(&:price).compact.sum
32
+ end
33
+
34
+ def total_duration
35
+ @trips.map(&:duration).compact.sum
36
+ end
37
+
38
+ def total_duration_in_hms
39
+ total_seconds = total_duration || 0
40
+ return { hours: 0, minutes: 0, seconds: 0 } if total_seconds.nil? || total_seconds <= 0
41
+
42
+ hours = total_seconds / 3600
43
+ minutes = (total_seconds % 3600) / 60
44
+ seconds = total_seconds % 60
45
+ { hours: hours, minutes: minutes, seconds: seconds }
46
+ end
47
+
48
+ def departure_time
49
+ @trips.first.departure_time
50
+ end
51
+
52
+ def arrival_time
53
+ @trips.last.arrival_time
54
+ end
55
+
56
+ def vendors
57
+ @trips.map(&:vendor).uniq
58
+ end
59
+
60
+ def vehicle_types
61
+ @trips.map(&:vehicle).map(&:vehicle_type).uniq
62
+ end
29
63
  end
30
64
  end
@@ -1,6 +1,7 @@
1
1
  module SpreeCmCommissioner
2
2
  class TripResult
3
- attr_accessor :id, :origin_place, :destination_place, :allow_seat_selection, :departure_time, :duration,
3
+ attr_accessor :id, :origin_place, :destination_place, :allow_seat_selection,
4
+ :departure_time, :duration, :route_type,
4
5
  :vehicle_id, :vehicle, :vendor_id, :vendor,
5
6
  :quantity_available, :max_capacity, :boarding, :drop_off,
6
7
  :product_id, :amenities, :price, :compare_at_amount, :currency
@@ -29,5 +30,11 @@ module SpreeCmCommissioner
29
30
  seconds = duration % 60
30
31
  { hours: hours, minutes: minutes, seconds: seconds }
31
32
  end
33
+
34
+ def arrival_time
35
+ return nil if departure_time.nil? || duration.nil?
36
+
37
+ departure_time + duration.seconds
38
+ end
32
39
  end
33
40
  end
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.0.3-pre5'.freeze
2
+ VERSION = '2.0.3-pre8'.freeze
3
3
 
4
4
  module_function
5
5
 
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.3.pre.pre5
4
+ version: 2.0.3.pre.pre8
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-12 00:00:00.000000000 Z
11
+ date: 2025-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -823,6 +823,7 @@ files:
823
823
  - app/controllers/spree/admin/inventory_items_controller.rb
824
824
  - app/controllers/spree/admin/kyc_controller.rb
825
825
  - app/controllers/spree/admin/line_items_controller.rb
826
+ - app/controllers/spree/admin/locations_controller.rb
826
827
  - app/controllers/spree/admin/master_variant_controller.rb
827
828
  - app/controllers/spree/admin/metafields_controller.rb
828
829
  - app/controllers/spree/admin/nearby_places_controller.rb
@@ -910,6 +911,7 @@ files:
910
911
  - app/controllers/spree/api/v2/storefront/confirm_pin_code_checkers_controller.rb
911
912
  - app/controllers/spree/api/v2/storefront/customer_notifications_controller.rb
912
913
  - app/controllers/spree/api/v2/storefront/dynamic_field_options_controller.rb
914
+ - app/controllers/spree/api/v2/storefront/dynamic_fields_controller.rb
913
915
  - app/controllers/spree/api/v2/storefront/events_controller.rb
914
916
  - app/controllers/spree/api/v2/storefront/google_wallet_object_tokens_controller.rb
915
917
  - app/controllers/spree/api/v2/storefront/guest_card_classes_controller.rb
@@ -941,7 +943,9 @@ files:
941
943
  - app/controllers/spree/api/v2/storefront/reset_passwords_controller.rb
942
944
  - app/controllers/spree/api/v2/storefront/s3_signed_urls_controller.rb
943
945
  - app/controllers/spree/api/v2/storefront/self_check_in_controller.rb
946
+ - app/controllers/spree/api/v2/storefront/trip_places_controller.rb
944
947
  - app/controllers/spree/api/v2/storefront/trip_search_controller.rb
948
+ - app/controllers/spree/api/v2/storefront/trips_controller.rb
945
949
  - app/controllers/spree/api/v2/storefront/user_account_linkages_controller.rb
946
950
  - app/controllers/spree/api/v2/storefront/user_contacts_controller.rb
947
951
  - app/controllers/spree/api/v2/storefront/user_deletion_reasons_controller.rb
@@ -1109,6 +1113,7 @@ files:
1109
1113
  - app/interactors/spree_cm_commissioner/asset_links_fetcher.rb
1110
1114
  - app/interactors/spree_cm_commissioner/base_interactor.rb
1111
1115
  - app/interactors/spree_cm_commissioner/bib_number_swapper.rb
1116
+ - app/interactors/spree_cm_commissioner/billing_address_creator.rb
1112
1117
  - app/interactors/spree_cm_commissioner/chatrace_order_creator.rb
1113
1118
  - app/interactors/spree_cm_commissioner/check_in_bulk_creator.rb
1114
1119
  - app/interactors/spree_cm_commissioner/check_in_destroyer.rb
@@ -1139,6 +1144,7 @@ files:
1139
1144
  - app/interactors/spree_cm_commissioner/image_saver.rb
1140
1145
  - app/interactors/spree_cm_commissioner/import_csv_template_downloader.rb
1141
1146
  - app/interactors/spree_cm_commissioner/imported_csv_downloader.rb
1147
+ - app/interactors/spree_cm_commissioner/intercity_taxi_order_creator.rb
1142
1148
  - app/interactors/spree_cm_commissioner/international_mobile_formatter.rb
1143
1149
  - app/interactors/spree_cm_commissioner/invalidate_cache_request.rb
1144
1150
  - app/interactors/spree_cm_commissioner/inventory_item_syncer.rb
@@ -1541,6 +1547,7 @@ files:
1541
1547
  - app/overrides/spree/admin/products/_form/allow_self_check_in.html.erb.deface
1542
1548
  - app/overrides/spree/admin/products/_form/available_on.html.erb.deface
1543
1549
  - app/overrides/spree/admin/products/_form/discontinue_on.html.erb.deface
1550
+ - app/overrides/spree/admin/products/_form/industry_taxons.html.erb.deface
1544
1551
  - app/overrides/spree/admin/products/_form/need_confirmation_checkbox.html.erb.deface
1545
1552
  - app/overrides/spree/admin/products/_form/option_types.html.erb.deface
1546
1553
  - app/overrides/spree/admin/products/_form/product_types.html.erb.deface
@@ -1549,6 +1556,7 @@ files:
1549
1556
  - app/overrides/spree/admin/products/_form/required_self_check_in_location.html.erb.deface
1550
1557
  - app/overrides/spree/admin/products/_form/reveal_description_to_user.html.erb.deface
1551
1558
  - app/overrides/spree/admin/products/_form/subscribable_checkbox.html.erb.deface
1559
+ - app/overrides/spree/admin/products/_form/taxons.html.erb.deface
1552
1560
  - app/overrides/spree/admin/products/_form/use_video_as_default.html.erb.deface
1553
1561
  - app/overrides/spree/admin/products/edit/clear_cache_button.html.erb.deface
1554
1562
  - app/overrides/spree/admin/products/index/product_vendor_link.html.erb.deface
@@ -1584,6 +1592,7 @@ files:
1584
1592
  - app/overrides/spree/admin/shared/_product_tabs/video_on_demand.html.erb.deface
1585
1593
  - app/overrides/spree/admin/shared/_store_switcher/store_logo.html.erb.deface
1586
1594
  - app/overrides/spree/admin/shared/_version/deploy_tag_version_badge.html.erb.deface
1595
+ - app/overrides/spree/admin/shared/sub_menu/_configuration/locations_tab.html.erb.deface
1587
1596
  - app/overrides/spree/admin/shared/sub_menu/_configuration/menu_items.html.erb.deface
1588
1597
  - app/overrides/spree/admin/shared/sub_menu/_integrations/telegram_bot.html.erb.deface
1589
1598
  - app/overrides/spree/admin/shared/sub_menu/_orders/import_order.html.erb.deface
@@ -1686,7 +1695,6 @@ files:
1686
1695
  - app/serializers/spree/v2/storefront/accommodation_serializer.rb
1687
1696
  - app/serializers/spree/v2/storefront/active_homepage_event_serializer.rb
1688
1697
  - app/serializers/spree/v2/storefront/address_serializer_decorator.rb
1689
- - app/serializers/spree/v2/storefront/amenity_serializer.rb
1690
1698
  - app/serializers/spree/v2/storefront/cart_serializer_decorator.rb
1691
1699
  - app/serializers/spree/v2/storefront/customer_notification_serializer.rb
1692
1700
  - app/serializers/spree/v2/storefront/firestore_queue_serializer.rb
@@ -1705,10 +1713,6 @@ files:
1705
1713
  - app/serializers/spree/v2/storefront/stock_location_serializer_decorator.rb
1706
1714
  - app/serializers/spree/v2/storefront/store_promotion_serializer.rb
1707
1715
  - app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb
1708
- - app/serializers/spree/v2/storefront/trip_query_result_serializer.rb
1709
- - app/serializers/spree/v2/storefront/trip_result_serializer.rb
1710
- - app/serializers/spree/v2/storefront/trip_vehicle_serializer.rb
1711
- - app/serializers/spree/v2/storefront/trip_vendor_serializer.rb
1712
1716
  - app/serializers/spree/v2/storefront/user_deletion_reason_serializer.rb
1713
1717
  - app/serializers/spree/v2/storefront/user_device_token_serializer.rb
1714
1718
  - app/serializers/spree/v2/storefront/user_profile_serializer.rb
@@ -1773,9 +1777,11 @@ files:
1773
1777
  - app/serializers/spree_cm_commissioner/v2/operator/pie_chart_event_aggregator_serializer.rb
1774
1778
  - app/serializers/spree_cm_commissioner/v2/operator/product_serializer.rb
1775
1779
  - app/serializers/spree_cm_commissioner/v2/operator/taxon_serializer.rb
1780
+ - app/serializers/spree_cm_commissioner/v2/storefront/amenity_serializer.rb
1776
1781
  - app/serializers/spree_cm_commissioner/v2/storefront/asset_serializer.rb
1777
1782
  - app/serializers/spree_cm_commissioner/v2/storefront/base_serializer.rb
1778
1783
  - app/serializers/spree_cm_commissioner/v2/storefront/bib_card_class_serializer.rb
1784
+ - app/serializers/spree_cm_commissioner/v2/storefront/block_serializer.rb
1779
1785
  - app/serializers/spree_cm_commissioner/v2/storefront/booking_card_class_serializer.rb
1780
1786
  - app/serializers/spree_cm_commissioner/v2/storefront/brand_taxon_serializer.rb
1781
1787
  - app/serializers/spree_cm_commissioner/v2/storefront/calculator_serializer.rb
@@ -1803,11 +1809,22 @@ files:
1803
1809
  - app/serializers/spree_cm_commissioner/v2/storefront/promotion_serializer.rb
1804
1810
  - app/serializers/spree_cm_commissioner/v2/storefront/qr_url_serializer.rb
1805
1811
  - app/serializers/spree_cm_commissioner/v2/storefront/reset_password_serializer.rb
1812
+ - app/serializers/spree_cm_commissioner/v2/storefront/seat_layout_serializer.rb
1813
+ - app/serializers/spree_cm_commissioner/v2/storefront/seat_section_serializer.rb
1806
1814
  - app/serializers/spree_cm_commissioner/v2/storefront/self_check_in_serializer.rb
1807
1815
  - app/serializers/spree_cm_commissioner/v2/storefront/stock_item_serializer.rb
1808
1816
  - app/serializers/spree_cm_commissioner/v2/storefront/taxon_include_product_serializer.rb
1817
+ - app/serializers/spree_cm_commissioner/v2/storefront/trip_place_serializer.rb
1818
+ - app/serializers/spree_cm_commissioner/v2/storefront/trip_query_result_serializer.rb
1819
+ - app/serializers/spree_cm_commissioner/v2/storefront/trip_result_serializer.rb
1820
+ - app/serializers/spree_cm_commissioner/v2/storefront/trip_serializer.rb
1821
+ - app/serializers/spree_cm_commissioner/v2/storefront/trip_stop_serializer.rb
1822
+ - app/serializers/spree_cm_commissioner/v2/storefront/trip_variant_serializer.rb
1823
+ - app/serializers/spree_cm_commissioner/v2/storefront/trip_vehicle_serializer.rb
1824
+ - app/serializers/spree_cm_commissioner/v2/storefront/trip_vendor_serializer.rb
1809
1825
  - app/serializers/spree_cm_commissioner/v2/storefront/user_contact_serializer.rb
1810
1826
  - app/serializers/spree_cm_commissioner/v2/storefront/user_identity_provider_serializer.rb
1827
+ - app/serializers/spree_cm_commissioner/v2/storefront/variant_block_serializer.rb
1811
1828
  - app/serializers/spree_cm_commissioner/v2/storefront/vendor_include_product_serializer.rb
1812
1829
  - app/serializers/spree_cm_commissioner/v2/storefront/video_serializer.rb
1813
1830
  - app/serializers/spree_cm_commissioner/v2/storefront/waiting_room_session_serializer.rb
@@ -1953,6 +1970,10 @@ files:
1953
1970
  - app/views/spree/admin/kyc/edit.html.erb
1954
1971
  - app/views/spree/admin/line_items/_form.html.erb
1955
1972
  - app/views/spree/admin/line_items/edit.html.erb
1973
+ - app/views/spree/admin/locations/_form.html.erb
1974
+ - app/views/spree/admin/locations/edit.html.erb
1975
+ - app/views/spree/admin/locations/index.html.erb
1976
+ - app/views/spree/admin/locations/new.html.erb
1956
1977
  - app/views/spree/admin/master_variant/_form.html.erb
1957
1978
  - app/views/spree/admin/master_variant/index.html.erb
1958
1979
  - app/views/spree/admin/metafields/_private_metafields_form.html.erb
@@ -2686,6 +2707,9 @@ files:
2686
2707
  - db/migrate/20250731062816_add_departure_time_and_arrival_time_to_trip_stop.rb
2687
2708
  - db/migrate/20250807033035_create_spree_cm_commissioner_saved_guests.rb
2688
2709
  - db/migrate/20250808054835_add_saved_guest_reference_to_cm_blocks.rb
2710
+ - db/migrate/20250812015522_remove_unique_indexes_from_cm_user_identity_providers.rb
2711
+ - db/migrate/20250812121745_add_data_fill_stage_phase_to_cm_guests.rb
2712
+ - db/migrate/20250814073854_add_call_to_action_to_spree_products.rb
2689
2713
  - docker-compose.yml
2690
2714
  - docs/option_types/attr_types.md
2691
2715
  - docs/private_key.pem
@@ -1,16 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class TripResultSerializer < BaseSerializer
5
- set_type :trip_result
6
-
7
- attributes :origin_place, :destination_place, :boarding, :drop_off, :price, :compare_at_amount, :currency, :quantity_available, :max_capacity,
8
- :allow_seat_selection, :departure_time
9
- attribute :duration_in_hms, &:duration_in_hms
10
- belongs_to :vendor, serializer: Spree::V2::Storefront::TripVendorSerializer
11
- belongs_to :vehicle, serializer: Spree::V2::Storefront::TripVehicleSerializer
12
- has_many :amenities, serializer: Spree::V2::Storefront::AmenitySerializer
13
- end
14
- end
15
- end
16
- end
@@ -1,11 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class TripVehicleSerializer < BaseSerializer
5
- set_type :vehicle
6
-
7
- attributes :id, :code
8
- end
9
- end
10
- end
11
- end