spree_cm_commissioner 1.10.0.pre.pre1 → 1.10.0.pre.hotfix.pre.sms
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.
- checksums.yaml +4 -4
- data/.github/workflows/test_and_build_gem.yml +48 -26
- data/.gitignore +1 -2
- data/.vscode/settings.json +1 -1
- data/Gemfile.lock +1 -22
- data/app/controllers/spree/admin/cms_pages_controller_decorator.rb +32 -0
- data/app/controllers/spree/admin/stock_managements_controller.rb +1 -17
- data/app/controllers/spree/api/v2/storefront/accommodations_controller.rb +31 -14
- data/app/controllers/spree/api/v2/tenant/account_checker_controller.rb +1 -1
- data/app/controllers/spree/api/v2/tenant/account_recovers_controller.rb +2 -2
- data/app/controllers/spree/api/v2/tenant/cms_pages_controller.rb +41 -0
- data/app/controllers/spree/api/v2/tenant/reset_passwords_controller.rb +1 -1
- data/app/controllers/spree_cm_commissioner/api/v2/storefront/cms_pages_controller_decorator.rb +18 -0
- data/app/interactors/spree_cm_commissioner/account_recover.rb +2 -2
- data/app/interactors/spree_cm_commissioner/create_event.rb +23 -0
- data/app/interactors/spree_cm_commissioner/existing_account_checker.rb +1 -1
- data/app/interactors/spree_cm_commissioner/pin_code_sender.rb +3 -3
- data/app/interactors/spree_cm_commissioner/sms.rb +14 -0
- data/app/interactors/spree_cm_commissioner/telegram_debug_pin_code_sender.rb +2 -1
- data/app/interactors/spree_cm_commissioner/user_forgotten_password_updater.rb +2 -1
- data/app/interactors/spree_cm_commissioner/user_password_authenticator.rb +4 -2
- data/app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb +2 -2
- data/app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb +3 -1
- data/app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb +3 -2
- data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +0 -26
- data/app/models/concerns/spree_cm_commissioner/product_type.rb +0 -10
- data/app/models/concerns/spree_cm_commissioner/user_identity.rb +7 -4
- data/app/models/spree_cm_commissioner/cms_page_decorator.rb +9 -0
- data/app/models/spree_cm_commissioner/line_item_decorator.rb +0 -1
- data/app/models/spree_cm_commissioner/order_decorator.rb +0 -15
- data/app/models/spree_cm_commissioner/place.rb +11 -2
- data/app/models/spree_cm_commissioner/product_decorator.rb +0 -1
- data/app/models/spree_cm_commissioner/stock/availability_checker.rb +25 -27
- data/app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb +1 -2
- data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +3 -3
- data/app/models/spree_cm_commissioner/taxon_decorator.rb +11 -0
- data/app/models/spree_cm_commissioner/taxon_option_type.rb +8 -0
- data/app/models/spree_cm_commissioner/taxon_option_value.rb +8 -0
- data/app/models/spree_cm_commissioner/trip.rb +0 -11
- data/app/models/spree_cm_commissioner/trip_connection.rb +1 -0
- data/app/models/spree_cm_commissioner/trip_stop.rb +12 -5
- data/app/models/spree_cm_commissioner/variant_decorator.rb +28 -25
- data/app/models/spree_cm_commissioner/variant_options.rb +0 -14
- data/app/models/spree_cm_commissioner/vehicle.rb +0 -7
- data/app/models/spree_cm_commissioner/vendor_decorator.rb +2 -1
- data/app/models/spree_cm_commissioner/vendor_stop.rb +2 -1
- data/app/overrides/spree/admin/cms_pages/_form/tenant_fields.html.erb.deface +7 -0
- data/app/overrides/spree/admin/cms_pages/index/cms_pages_tabs.html.erb.deface +21 -0
- data/app/overrides/spree/admin/users/index/body.html.erb.deface +3 -0
- data/app/overrides/spree/admin/users/index/headers.html.erb.deface +3 -0
- data/app/queries/spree_cm_commissioner/trip_query.rb +11 -11
- data/app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb +45 -0
- data/app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb +55 -0
- data/app/queries/spree_cm_commissioner/vendor_stop_place_query.rb +54 -0
- data/app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb +0 -3
- data/app/request_schemas/spree_cm_commissioner/application_request_schema.rb +1 -1
- data/app/serializers/spree/v2/storefront/accommodation_serializer.rb +0 -2
- data/app/serializers/spree/v2/tenant/guest_serializer.rb +1 -0
- data/app/services/spree_cm_commissioner/organizer/export_guest_csv_service.rb +2 -0
- data/app/services/spree_cm_commissioner/user_authenticator.rb +3 -1
- data/app/views/spree/admin/shared/_cms_pages_tabs.html.erb +20 -0
- data/app/views/spree/admin/stock_managements/index.html.erb +5 -31
- data/config/routes.rb +4 -11
- data/db/migrate/20250418072528_add_nested_set_columns_to_places.rb +10 -0
- data/db/migrate/20250430091742_create_cm_taxon_option_types.rb +9 -0
- data/db/migrate/20250430092928_create_cm_taxon_option_values.rb +9 -0
- data/db/migrate/20250506092929_add_trip_count_to_cm_vendor_stops.rb +5 -0
- data/db/migrate/20250512075319_add_tenant_id_to_spree_cms_pages.rb +6 -0
- data/docker-compose.yml +1 -1
- data/lib/generators/spree_cm_commissioner/install/install_generator.rb +2 -2
- data/lib/generators/spree_cm_commissioner/install/templates/app/javascript/{spree_dashboard/spree_cm_commissioner → spree_cm_commissioner}/utilities.js +0 -4
- data/lib/spree_cm_commissioner/calendar_event.rb +1 -11
- data/lib/spree_cm_commissioner/test_helper/factories/place_factory.rb +11 -1
- data/lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb +6 -28
- data/lib/spree_cm_commissioner/version.rb +1 -1
- data/lib/spree_cm_commissioner.rb +0 -34
- data/lib/tasks/migrate_and_rebuild_place_hierarchy.rake +9 -0
- data/lib/tasks/update_orphan_root_places.rake +7 -0
- data/spree_cm_commissioner.gemspec +0 -5
- metadata +22 -69
- data/app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb +0 -42
- data/app/finders/spree_cm_commissioner/accommodations/find.rb +0 -40
- data/app/finders/spree_cm_commissioner/accommodations/find_variant.rb +0 -35
- data/app/interactors/spree_cm_commissioner/inventory_item_syncer.rb +0 -25
- data/app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb +0 -71
- data/app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb +0 -7
- data/app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb +0 -9
- data/app/models/spree_cm_commissioner/inventory.rb +0 -11
- data/app/models/spree_cm_commissioner/inventory_item.rb +0 -37
- data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +0 -40
- data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +0 -114
- data/app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb +0 -42
- data/app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb +0 -27
- data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +0 -44
- data/app/models/spree_cm_commissioner/stock_movement_decorator.rb +0 -34
- data/app/request_schemas/spree_cm_commissioner/variant_request_schema.rb +0 -19
- data/app/views/spree/admin/stock_managements/_events_popover.html.erb +0 -17
- data/app/views/spree/admin/stock_managements/calendar.html.erb +0 -32
- data/db/migrate/20250304293518_create_cm_inventory_items.rb +0 -21
- data/db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb +0 -5
- data/lib/spree_cm_commissioner/cached_inventory_item.rb +0 -23
- data/lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb +0 -9
- data/lib/tasks/create_default_non_permanent_inventory_items.rake +0 -16
- data/lib/tasks/generate_inventory_items.rake +0 -7
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: 1.10.0.pre.
|
4
|
+
version: 1.10.0.pre.hotfix.pre.sms
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- You
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree
|
@@ -464,48 +464,6 @@ dependencies:
|
|
464
464
|
- - "~>"
|
465
465
|
- !ruby/object:Gem::Version
|
466
466
|
version: '3.2'
|
467
|
-
- !ruby/object:Gem::Dependency
|
468
|
-
name: redis
|
469
|
-
requirement: !ruby/object:Gem::Requirement
|
470
|
-
requirements:
|
471
|
-
- - ">="
|
472
|
-
- !ruby/object:Gem::Version
|
473
|
-
version: '0'
|
474
|
-
type: :runtime
|
475
|
-
prerelease: false
|
476
|
-
version_requirements: !ruby/object:Gem::Requirement
|
477
|
-
requirements:
|
478
|
-
- - ">="
|
479
|
-
- !ruby/object:Gem::Version
|
480
|
-
version: '0'
|
481
|
-
- !ruby/object:Gem::Dependency
|
482
|
-
name: redis-rails
|
483
|
-
requirement: !ruby/object:Gem::Requirement
|
484
|
-
requirements:
|
485
|
-
- - ">="
|
486
|
-
- !ruby/object:Gem::Version
|
487
|
-
version: '0'
|
488
|
-
type: :runtime
|
489
|
-
prerelease: false
|
490
|
-
version_requirements: !ruby/object:Gem::Requirement
|
491
|
-
requirements:
|
492
|
-
- - ">="
|
493
|
-
- !ruby/object:Gem::Version
|
494
|
-
version: '0'
|
495
|
-
- !ruby/object:Gem::Dependency
|
496
|
-
name: connection_pool
|
497
|
-
requirement: !ruby/object:Gem::Requirement
|
498
|
-
requirements:
|
499
|
-
- - ">="
|
500
|
-
- !ruby/object:Gem::Version
|
501
|
-
version: '0'
|
502
|
-
type: :runtime
|
503
|
-
prerelease: false
|
504
|
-
version_requirements: !ruby/object:Gem::Requirement
|
505
|
-
requirements:
|
506
|
-
- - ">="
|
507
|
-
- !ruby/object:Gem::Version
|
508
|
-
version: '0'
|
509
467
|
- !ruby/object:Gem::Dependency
|
510
468
|
name: pg
|
511
469
|
requirement: !ruby/object:Gem::Requirement
|
@@ -744,6 +702,7 @@ files:
|
|
744
702
|
- app/controllers/spree/admin/calendars/base_controller.rb
|
745
703
|
- app/controllers/spree/admin/calendars/orders_controller.rb
|
746
704
|
- app/controllers/spree/admin/classifications_controller.rb
|
705
|
+
- app/controllers/spree/admin/cms_pages_controller_decorator.rb
|
747
706
|
- app/controllers/spree/admin/customer_notifications_controller.rb
|
748
707
|
- app/controllers/spree/admin/device_tokens_controller.rb
|
749
708
|
- app/controllers/spree/admin/event_blazer_queries_controller.rb
|
@@ -830,7 +789,6 @@ files:
|
|
830
789
|
- app/controllers/spree/api/v2/platform/seat_number_layouts_controller.rb
|
831
790
|
- app/controllers/spree/api/v2/platform/taxons_controller_decorator.rb
|
832
791
|
- app/controllers/spree/api/v2/resource_controller_decorator.rb
|
833
|
-
- app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb
|
834
792
|
- app/controllers/spree/api/v2/storefront/accommodations_controller.rb
|
835
793
|
- app/controllers/spree/api/v2/storefront/account/orders_controller_decorator.rb
|
836
794
|
- app/controllers/spree/api/v2/storefront/account/preferred_payment_method_controller.rb
|
@@ -902,6 +860,7 @@ files:
|
|
902
860
|
- app/controllers/spree/api/v2/tenant/cart_payment_method_groups_controller.rb
|
903
861
|
- app/controllers/spree/api/v2/tenant/change_passwords_controller.rb
|
904
862
|
- app/controllers/spree/api/v2/tenant/checkout_controller.rb
|
863
|
+
- app/controllers/spree/api/v2/tenant/cms_pages_controller.rb
|
905
864
|
- app/controllers/spree/api/v2/tenant/customer_notifications_controller.rb
|
906
865
|
- app/controllers/spree/api/v2/tenant/guests_controller.rb
|
907
866
|
- app/controllers/spree/api/v2/tenant/homepage_sections_controller.rb
|
@@ -985,6 +944,7 @@ files:
|
|
985
944
|
- app/controllers/spree_cm_commissioner/admin/variants_controller_decorator.rb
|
986
945
|
- app/controllers/spree_cm_commissioner/api/v2/storefront/cart_controller_decorator.rb
|
987
946
|
- app/controllers/spree_cm_commissioner/api/v2/storefront/checkout_controller_decorator.rb
|
947
|
+
- app/controllers/spree_cm_commissioner/api/v2/storefront/cms_pages_controller_decorator.rb
|
988
948
|
- app/controllers/spree_cm_commissioner/application_controller_decorator.rb
|
989
949
|
- app/controllers/spree_cm_commissioner/guest_cards_controller.rb
|
990
950
|
- app/controllers/spree_cm_commissioner/line_item_qr_images_controller.rb
|
@@ -1001,8 +961,6 @@ files:
|
|
1001
961
|
- app/exception_notifier/spree_cm_commissioner/telegram_notifier.rb
|
1002
962
|
- app/factory/spree_cm_commissioner/order_telegram_message_factory.rb
|
1003
963
|
- app/factory/spree_cm_commissioner/telegram_message_factory.rb
|
1004
|
-
- app/finders/spree_cm_commissioner/accommodations/find.rb
|
1005
|
-
- app/finders/spree_cm_commissioner/accommodations/find_variant.rb
|
1006
964
|
- app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb
|
1007
965
|
- app/finders/spree_cm_commissioner/orders/find.rb
|
1008
966
|
- app/finders/spree_cm_commissioner/orders/find_by_state.rb
|
@@ -1060,7 +1018,6 @@ files:
|
|
1060
1018
|
- app/interactors/spree_cm_commissioner/imported_csv_downloader.rb
|
1061
1019
|
- app/interactors/spree_cm_commissioner/international_mobile_formatter.rb
|
1062
1020
|
- app/interactors/spree_cm_commissioner/invalidate_cache_request.rb
|
1063
|
-
- app/interactors/spree_cm_commissioner/inventory_item_syncer.rb
|
1064
1021
|
- app/interactors/spree_cm_commissioner/invoice_creator.rb
|
1065
1022
|
- app/interactors/spree_cm_commissioner/media/signed_cookie_generator.rb
|
1066
1023
|
- app/interactors/spree_cm_commissioner/media/signed_path_generator.rb
|
@@ -1090,7 +1047,6 @@ files:
|
|
1090
1047
|
- app/interactors/spree_cm_commissioner/sms.rb
|
1091
1048
|
- app/interactors/spree_cm_commissioner/sqs/media_convert_job_status.rb
|
1092
1049
|
- app/interactors/spree_cm_commissioner/state_updater.rb
|
1093
|
-
- app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb
|
1094
1050
|
- app/interactors/spree_cm_commissioner/subscriptions_order_creator.rb
|
1095
1051
|
- app/interactors/spree_cm_commissioner/subscriptions_order_cron_executor.rb
|
1096
1052
|
- app/interactors/spree_cm_commissioner/subscriptions_prepaid_order_creator.rb
|
@@ -1143,7 +1099,6 @@ files:
|
|
1143
1099
|
- app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
|
1144
1100
|
- app/jobs/spree_cm_commissioner/import_order_job.rb
|
1145
1101
|
- app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
|
1146
|
-
- app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
|
1147
1102
|
- app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
|
1148
1103
|
- app/jobs/spree_cm_commissioner/option_value_variants_public_metadata_updater_job.rb
|
1149
1104
|
- app/jobs/spree_cm_commissioner/order_complete_telegram_sender_job.rb
|
@@ -1151,7 +1106,6 @@ files:
|
|
1151
1106
|
- app/jobs/spree_cm_commissioner/sms_job.rb
|
1152
1107
|
- app/jobs/spree_cm_commissioner/sms_pin_code_job.rb
|
1153
1108
|
- app/jobs/spree_cm_commissioner/state_job.rb
|
1154
|
-
- app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb
|
1155
1109
|
- app/jobs/spree_cm_commissioner/subscription_order_executor_job.rb
|
1156
1110
|
- app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
|
1157
1111
|
- app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
|
@@ -1205,6 +1159,7 @@ files:
|
|
1205
1159
|
- app/models/spree_cm_commissioner/check_in_ability.rb
|
1206
1160
|
- app/models/spree_cm_commissioner/check_in_record.rb
|
1207
1161
|
- app/models/spree_cm_commissioner/classification_decorator.rb
|
1162
|
+
- app/models/spree_cm_commissioner/cms_page_decorator.rb
|
1208
1163
|
- app/models/spree_cm_commissioner/configuration.rb
|
1209
1164
|
- app/models/spree_cm_commissioner/crew_invite.rb
|
1210
1165
|
- app/models/spree_cm_commissioner/customer.rb
|
@@ -1244,8 +1199,6 @@ files:
|
|
1244
1199
|
- app/models/spree_cm_commissioner/image_methods_decorator.rb
|
1245
1200
|
- app/models/spree_cm_commissioner/import.rb
|
1246
1201
|
- app/models/spree_cm_commissioner/imports/import_order.rb
|
1247
|
-
- app/models/spree_cm_commissioner/inventory.rb
|
1248
|
-
- app/models/spree_cm_commissioner/inventory_item.rb
|
1249
1202
|
- app/models/spree_cm_commissioner/invite.rb
|
1250
1203
|
- app/models/spree_cm_commissioner/invite_user_event.rb
|
1251
1204
|
- app/models/spree_cm_commissioner/invite_user_taxon.rb
|
@@ -1295,10 +1248,6 @@ files:
|
|
1295
1248
|
- app/models/spree_cm_commissioner/promotion_decorator.rb
|
1296
1249
|
- app/models/spree_cm_commissioner/property_decorator.rb
|
1297
1250
|
- app/models/spree_cm_commissioner/prototype_decorator.rb
|
1298
|
-
- app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb
|
1299
|
-
- app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb
|
1300
|
-
- app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb
|
1301
|
-
- app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb
|
1302
1251
|
- app/models/spree_cm_commissioner/role_decorator.rb
|
1303
1252
|
- app/models/spree_cm_commissioner/role_permission.rb
|
1304
1253
|
- app/models/spree_cm_commissioner/s3_presigned_url.rb
|
@@ -1311,10 +1260,8 @@ files:
|
|
1311
1260
|
- app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb
|
1312
1261
|
- app/models/spree_cm_commissioner/stock/inventory_unit_builder_decorator.rb
|
1313
1262
|
- app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb
|
1314
|
-
- app/models/spree_cm_commissioner/stock/order_availability_checker.rb
|
1315
1263
|
- app/models/spree_cm_commissioner/stock_item_decorator.rb
|
1316
1264
|
- app/models/spree_cm_commissioner/stock_location_decorator.rb
|
1317
|
-
- app/models/spree_cm_commissioner/stock_movement_decorator.rb
|
1318
1265
|
- app/models/spree_cm_commissioner/stop.rb
|
1319
1266
|
- app/models/spree_cm_commissioner/store_decorator.rb
|
1320
1267
|
- app/models/spree_cm_commissioner/subscription.rb
|
@@ -1324,6 +1271,8 @@ files:
|
|
1324
1271
|
- app/models/spree_cm_commissioner/taxon_category_icon.rb
|
1325
1272
|
- app/models/spree_cm_commissioner/taxon_decorator.rb
|
1326
1273
|
- app/models/spree_cm_commissioner/taxon_home_banner.rb
|
1274
|
+
- app/models/spree_cm_commissioner/taxon_option_type.rb
|
1275
|
+
- app/models/spree_cm_commissioner/taxon_option_value.rb
|
1327
1276
|
- app/models/spree_cm_commissioner/taxon_vendor.rb
|
1328
1277
|
- app/models/spree_cm_commissioner/taxon_video_banner.rb
|
1329
1278
|
- app/models/spree_cm_commissioner/taxon_web_banner.rb
|
@@ -1377,6 +1326,8 @@ files:
|
|
1377
1326
|
- app/notifications/spree_cm_commissioner/order_requested_notification.rb
|
1378
1327
|
- app/overrides/spree/admin/adjustments/_adjustment/payable_table_body.html.erb.deface
|
1379
1328
|
- app/overrides/spree/admin/adjustments/_adjustments_table/payable_table_header.html.erb.deface
|
1329
|
+
- app/overrides/spree/admin/cms_pages/_form/tenant_fields.html.erb.deface
|
1330
|
+
- app/overrides/spree/admin/cms_pages/index/cms_pages_tabs.html.erb.deface
|
1380
1331
|
- app/overrides/spree/admin/menu_items/_form/badge_field.html.erb.deface
|
1381
1332
|
- app/overrides/spree/admin/oauth_applications/_form/tenant_fields.html.erb.deface
|
1382
1333
|
- app/overrides/spree/admin/option_types/_form/attr_type.html.erb.deface
|
@@ -1517,12 +1468,14 @@ files:
|
|
1517
1468
|
- app/queries/spree_cm_commissioner/trip_search_query.rb
|
1518
1469
|
- app/queries/spree_cm_commissioner/trip_seat_layout_query.rb
|
1519
1470
|
- app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
|
1471
|
+
- app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb
|
1472
|
+
- app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb
|
1473
|
+
- app/queries/spree_cm_commissioner/vendor_stop_place_query.rb
|
1520
1474
|
- app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
|
1521
1475
|
- app/request_schemas/spree_cm_commissioner/application_request_schema.rb
|
1522
1476
|
- app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
|
1523
1477
|
- app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
|
1524
1478
|
- app/request_schemas/spree_cm_commissioner/user_profile_request_schema.rb
|
1525
|
-
- app/request_schemas/spree_cm_commissioner/variant_request_schema.rb
|
1526
1479
|
- app/serializables/spree_cm_commissioner/event_ticket_aggregator.rb
|
1527
1480
|
- app/serializables/spree_cm_commissioner/pie_chart_event_aggregator.rb
|
1528
1481
|
- app/serializables/spree_cm_commissioner/queue_item.rb
|
@@ -1832,6 +1785,7 @@ files:
|
|
1832
1785
|
- app/views/spree/admin/promotions/rules/_guest_occupations.html.erb
|
1833
1786
|
- app/views/spree/admin/promotions/rules/_vendors.html.erb
|
1834
1787
|
- app/views/spree/admin/promotions/rules/_weekend.html.erb
|
1788
|
+
- app/views/spree/admin/shared/_cms_pages_tabs.html.erb
|
1835
1789
|
- app/views/spree/admin/shared/_customer_notification_tabs.html.erb
|
1836
1790
|
- app/views/spree/admin/shared/_direct_upload.html.erb
|
1837
1791
|
- app/views/spree/admin/shared/_import_order_tabs.html.erb
|
@@ -1847,9 +1801,7 @@ files:
|
|
1847
1801
|
- app/views/spree/admin/shared/_video_on_demand_helper_script.html.erb
|
1848
1802
|
- app/views/spree/admin/shared/sub_menu/_calendar.html.erb
|
1849
1803
|
- app/views/spree/admin/shared/sub_menu/_homepage.html.erb
|
1850
|
-
- app/views/spree/admin/stock_managements/_events_popover.html.erb
|
1851
1804
|
- app/views/spree/admin/stock_managements/_variant_stock_items.html.erb
|
1852
|
-
- app/views/spree/admin/stock_managements/calendar.html.erb
|
1853
1805
|
- app/views/spree/admin/stock_managements/index.html.erb
|
1854
1806
|
- app/views/spree/admin/system/show.html.erb
|
1855
1807
|
- app/views/spree/admin/taxon_childrens/index.html.erb
|
@@ -2415,7 +2367,6 @@ files:
|
|
2415
2367
|
- db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb
|
2416
2368
|
- db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb
|
2417
2369
|
- db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
|
2418
|
-
- db/migrate/20250304293518_create_cm_inventory_items.rb
|
2419
2370
|
- db/migrate/20250307013422_add_parent_id_to_cm_place.rb
|
2420
2371
|
- db/migrate/20250307073003_add_tenant_id_to_cm_customer_notifications.rb
|
2421
2372
|
- db/migrate/20250307083809_remove_tenant_id_from_cm_notifications.rb
|
@@ -2431,10 +2382,14 @@ files:
|
|
2431
2382
|
- db/migrate/20250403083001_create_spree_cm_commissioner_taxon_blazer_query.rb
|
2432
2383
|
- db/migrate/20250404050117_add_archived_at_to_spree_orders.rb
|
2433
2384
|
- db/migrate/20250407092556_add_variant_id_to_cm_trips.rb
|
2385
|
+
- db/migrate/20250418072528_add_nested_set_columns_to_places.rb
|
2434
2386
|
- db/migrate/20250425084929_add_description_to_spree_prototypes.rb
|
2435
2387
|
- db/migrate/20250425085938_add_preferences_to_spree_prototypes.rb
|
2436
2388
|
- db/migrate/20250428025645_add_slug_to_spree_prototypes.rb
|
2437
|
-
- db/migrate/
|
2389
|
+
- db/migrate/20250430091742_create_cm_taxon_option_types.rb
|
2390
|
+
- db/migrate/20250430092928_create_cm_taxon_option_values.rb
|
2391
|
+
- db/migrate/20250506092929_add_trip_count_to_cm_vendor_stops.rb
|
2392
|
+
- db/migrate/20250512075319_add_tenant_id_to_spree_cms_pages.rb
|
2438
2393
|
- docker-compose.yml
|
2439
2394
|
- docs/option_types/attr_types.md
|
2440
2395
|
- docs/private_key.pem
|
@@ -2449,12 +2404,11 @@ files:
|
|
2449
2404
|
- docs/webhook/sqs/params_job_submitted.json
|
2450
2405
|
- lib/cm_app_logger.rb
|
2451
2406
|
- lib/generators/spree_cm_commissioner/install/install_generator.rb
|
2452
|
-
- lib/generators/spree_cm_commissioner/install/templates/app/javascript/
|
2407
|
+
- lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_cm_commissioner/utilities.js
|
2453
2408
|
- lib/generators/spree_cm_commissioner/install/templates/config/data/nationalities.yml
|
2454
2409
|
- lib/generators/spree_cm_commissioner/install/templates/vendor/assets/javascript/spree_cm_commissioner/telegram/all.js
|
2455
2410
|
- lib/generators/spree_cm_commissioner/install/templates/vendor/assets/stylesheets/spree_cm_commissioner/telegram/all.css
|
2456
2411
|
- lib/spree_cm_commissioner.rb
|
2457
|
-
- lib/spree_cm_commissioner/cached_inventory_item.rb
|
2458
2412
|
- lib/spree_cm_commissioner/calendar_event.rb
|
2459
2413
|
- lib/spree_cm_commissioner/engine.rb
|
2460
2414
|
- lib/spree_cm_commissioner/factories.rb
|
@@ -2489,7 +2443,6 @@ files:
|
|
2489
2443
|
- lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
|
2490
2444
|
- lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
|
2491
2445
|
- lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
|
2492
|
-
- lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb
|
2493
2446
|
- lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
|
2494
2447
|
- lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
|
2495
2448
|
- lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb
|
@@ -2544,17 +2497,17 @@ files:
|
|
2544
2497
|
- lib/spree_cm_commissioner/trip_seat_layout_result.rb
|
2545
2498
|
- lib/spree_cm_commissioner/user_session_jwt_token.rb
|
2546
2499
|
- lib/spree_cm_commissioner/version.rb
|
2547
|
-
- lib/tasks/create_default_non_permanent_inventory_items.rake
|
2548
2500
|
- lib/tasks/customer_notification_cron_scheduler.rake
|
2549
2501
|
- lib/tasks/ensure_event_for_guests.rake
|
2550
2502
|
- lib/tasks/ensure_number_for_line_items.rake
|
2551
2503
|
- lib/tasks/fetch_email.rake
|
2552
|
-
- lib/tasks/generate_inventory_items.rake
|
2553
2504
|
- lib/tasks/kh_location_option_values.rake
|
2554
2505
|
- lib/tasks/kh_provinces.rake
|
2506
|
+
- lib/tasks/migrate_and_rebuild_place_hierarchy.rake
|
2555
2507
|
- lib/tasks/remove_duplicate_device_tokens.rake
|
2556
2508
|
- lib/tasks/subscriptions_order_creator.rake
|
2557
2509
|
- lib/tasks/update_gateway_status.rake
|
2510
|
+
- lib/tasks/update_orphan_root_places.rake
|
2558
2511
|
- lib/tasks/update_taxons.rake
|
2559
2512
|
- lib/tasks/variants_public_metadata_updater.rake
|
2560
2513
|
- lib/tasks/vendor_updater.rake
|
@@ -1,42 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module Api
|
3
|
-
module V2
|
4
|
-
module Storefront
|
5
|
-
class Accommodations::VariantsController < ::Spree::Api::V2::ResourceController
|
6
|
-
private
|
7
|
-
|
8
|
-
# override
|
9
|
-
def collection
|
10
|
-
@collection ||= SpreeCmCommissioner::Accommodations::FindVariant.new(
|
11
|
-
from_date: params[:from_date]&.to_date,
|
12
|
-
to_date: params[:to_date]&.to_date,
|
13
|
-
vendor_id: params[:accommodation_id],
|
14
|
-
number_of_adults: params[:number_of_adults].to_i,
|
15
|
-
number_of_kids: params[:number_of_kids].to_i
|
16
|
-
).execute
|
17
|
-
end
|
18
|
-
|
19
|
-
# override
|
20
|
-
def resource
|
21
|
-
@resource ||= collection.find(params[:id])
|
22
|
-
end
|
23
|
-
|
24
|
-
# override
|
25
|
-
def resource_serializer
|
26
|
-
Spree::V2::Storefront::VariantSerializer
|
27
|
-
end
|
28
|
-
|
29
|
-
# override
|
30
|
-
def collection_serializer
|
31
|
-
Spree::V2::Storefront::VariantSerializer
|
32
|
-
end
|
33
|
-
|
34
|
-
# override
|
35
|
-
def required_schema
|
36
|
-
SpreeCmCommissioner::VariantRequestSchema
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
module Accommodations
|
3
|
-
class Find
|
4
|
-
attr_reader :from_date, :to_date, :state_id, :number_of_guests
|
5
|
-
|
6
|
-
def initialize(from_date:, to_date:, state_id:, number_of_adults:, number_of_kids:)
|
7
|
-
@from_date = from_date
|
8
|
-
@to_date = to_date
|
9
|
-
@state_id = state_id
|
10
|
-
@number_of_guests = number_of_adults.to_i + number_of_kids.to_i
|
11
|
-
end
|
12
|
-
|
13
|
-
def execute
|
14
|
-
scope
|
15
|
-
.where(default_state_id: state_id)
|
16
|
-
.where(inventory_items: { inventory_date: date_range_excluding_checkout })
|
17
|
-
.where('CAST(spree_variants.public_metadata->\'cm_options\'->>\'number-of-adults\' AS INTEGER) +
|
18
|
-
CAST(spree_variants.public_metadata->\'cm_options\'->>\'number-of-kids\' AS INTEGER) >= ?', number_of_guests
|
19
|
-
)
|
20
|
-
.where('inventory_items.quantity_available > 0')
|
21
|
-
.distinct
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def scope
|
27
|
-
Spree::Vendor
|
28
|
-
.joins(variants: :inventory_items)
|
29
|
-
.where(primary_product_type: :accommodation, state: :active)
|
30
|
-
end
|
31
|
-
|
32
|
-
# Why? check_out date is not considered to be charged
|
33
|
-
# For example, if you check in on 2023-10-01 and check out on 2023-10-02,
|
34
|
-
# you will be charged for one night (2023-10-01).
|
35
|
-
def date_range_excluding_checkout
|
36
|
-
from_date..to_date.prev_day
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
module Accommodations
|
3
|
-
class FindVariant
|
4
|
-
attr_reader :vendor_id, :from_date, :to_date, :number_of_guests
|
5
|
-
|
6
|
-
def initialize(vendor_id:, from_date:, to_date:, number_of_adults:, number_of_kids:)
|
7
|
-
@vendor_id = vendor_id
|
8
|
-
@from_date = from_date
|
9
|
-
@to_date = to_date
|
10
|
-
@number_of_guests = number_of_adults.to_i + number_of_kids.to_i
|
11
|
-
end
|
12
|
-
|
13
|
-
def execute
|
14
|
-
Spree::Variant
|
15
|
-
.joins(:inventory_items)
|
16
|
-
.where(vendor_id: vendor_id)
|
17
|
-
.where(inventory_items: { inventory_date: date_range_excluding_checkout })
|
18
|
-
.where('CAST(public_metadata->\'cm_options\'->>\'number-of-adults\' AS INTEGER) +
|
19
|
-
CAST(public_metadata->\'cm_options\'->>\'number-of-kids\' AS INTEGER) >= ?', number_of_guests
|
20
|
-
)
|
21
|
-
.where('inventory_items.quantity_available > 0')
|
22
|
-
.distinct
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
# Why? check_out date is not considered to be charged
|
28
|
-
# For example, if you check in on 2023-10-01 and check out on 2023-10-02,
|
29
|
-
# you will be charged for one night (2023-10-01).
|
30
|
-
def date_range_excluding_checkout
|
31
|
-
from_date..to_date.prev_day
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class InventoryItemSyncer < BaseInteractor
|
3
|
-
# inventory_id_and_quantities = [{ inventory_id: inventory_item1.id, quantity: 5 } ]
|
4
|
-
delegate :inventory_id_and_quantities, to: :context
|
5
|
-
|
6
|
-
def call
|
7
|
-
ActiveRecord::Base.transaction do
|
8
|
-
inventory_items.each do |inventory_item|
|
9
|
-
quantity = inventory_id_and_quantities.find { |item| item[:inventory_id] == inventory_item.id }&.dig(:quantity) || 0
|
10
|
-
adjust_quantity_available(inventory_item, quantity)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def adjust_quantity_available(inventory_item, quantity)
|
18
|
-
inventory_item.update!(quantity_available: inventory_item.quantity_available + quantity)
|
19
|
-
end
|
20
|
-
|
21
|
-
def inventory_items
|
22
|
-
@inventory_items ||= InventoryItem.where(id: inventory_id_and_quantities.pluck(:inventory_id))
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
module Stock
|
3
|
-
class PermanentInventoryItemsGenerator < BaseInteractor
|
4
|
-
delegate :variant_ids, to: :context
|
5
|
-
|
6
|
-
def variants_per_batch = 1000
|
7
|
-
|
8
|
-
def call
|
9
|
-
variants.in_batches(of: variants_per_batch) do |batch|
|
10
|
-
generate_inventory_items_for_batch(batch)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def generate_inventory_items_for_batch(batch)
|
17
|
-
total_on_hand_by_variant = total_on_hand_for(batch)
|
18
|
-
batch.each do |variant|
|
19
|
-
count_on_hand = total_on_hand_by_variant[variant.id] || 0
|
20
|
-
generate_inventory_items_for_variant(variant, count_on_hand)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def generate_inventory_items_for_variant(variant, count_on_hand)
|
25
|
-
inventory_dates_for(variant).each do |inventory_date|
|
26
|
-
next if inventory_exist?(variant, inventory_date)
|
27
|
-
|
28
|
-
create_inventory_item(variant, inventory_date, count_on_hand)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def inventory_dates_for(variant)
|
33
|
-
start_date = Time.zone.tomorrow
|
34
|
-
end_date = Time.zone.today + variant.pre_inventory_days
|
35
|
-
|
36
|
-
(start_date..end_date)
|
37
|
-
end
|
38
|
-
|
39
|
-
def inventory_exist?(variant, inventory_date)
|
40
|
-
variant.inventory_items.exists?(inventory_date: inventory_date)
|
41
|
-
end
|
42
|
-
|
43
|
-
def create_inventory_item(variant, inventory_date, count_on_hand)
|
44
|
-
variant.inventory_items.create!(
|
45
|
-
inventory_date: inventory_date,
|
46
|
-
quantity_available: count_on_hand,
|
47
|
-
max_capacity: count_on_hand,
|
48
|
-
product_type: variant.product_type
|
49
|
-
)
|
50
|
-
end
|
51
|
-
|
52
|
-
# Returns a hash: { variant_id => total_on_hand, ... }
|
53
|
-
def total_on_hand_for(variants)
|
54
|
-
variant_ids = variants.pluck(:id)
|
55
|
-
|
56
|
-
Spree::StockItem
|
57
|
-
.joins(:stock_location)
|
58
|
-
.where(deleted_at: nil, variant_id: variant_ids)
|
59
|
-
.where(spree_stock_locations: { active: true })
|
60
|
-
.group(:variant_id)
|
61
|
-
.sum(:count_on_hand)
|
62
|
-
end
|
63
|
-
|
64
|
-
def variants
|
65
|
-
scope = Spree::Variant.active.with_permanent_stock.where(is_master: false).includes(:product)
|
66
|
-
scope = scope.where(id: variant_ids) if variant_ids.present?
|
67
|
-
scope
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class Inventory
|
3
|
-
include ActiveModel::Model
|
4
|
-
|
5
|
-
attr_accessor :variant_id, :inventory_date, :quantity_available, :max_capacity, :product_type
|
6
|
-
|
7
|
-
validates :variant_id, presence: true
|
8
|
-
validates :quantity_available, numericality: { only_integer: true, greater_than_or_equal_to: 0 }, allow_nil: true
|
9
|
-
validates :max_capacity, numericality: { only_integer: true, greater_than_or_equal_to: 0 }, allow_nil: true
|
10
|
-
end
|
11
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class InventoryItem < ApplicationRecord
|
3
|
-
include SpreeCmCommissioner::ProductType
|
4
|
-
|
5
|
-
# Association
|
6
|
-
belongs_to :variant, class_name: 'Spree::Variant'
|
7
|
-
|
8
|
-
# Validation
|
9
|
-
validates :quantity_available, numericality: { greater_than_or_equal_to: 0 }
|
10
|
-
validates :max_capacity, numericality: { greater_than_or_equal_to: 0 } # Originally inventory of each variant.
|
11
|
-
validates :inventory_date, presence: true, if: -> { permanent_stock? }
|
12
|
-
validates :variant_id, uniqueness: { scope: :inventory_date, message: -> (object, _data) { "The variant is taken on #{object.inventory_date}" } }
|
13
|
-
|
14
|
-
# Scope
|
15
|
-
scope :for_product, -> (type) { where(product_type: type) }
|
16
|
-
scope :active, -> { where(inventory_date: nil).or(where('inventory_date >= ?', Time.zone.today)) }
|
17
|
-
|
18
|
-
def adjust_quantity!(quantity)
|
19
|
-
with_lock do
|
20
|
-
self.max_capacity = max_capacity + quantity
|
21
|
-
self.quantity_available = quantity_available + quantity
|
22
|
-
|
23
|
-
save!
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def active?
|
28
|
-
inventory_date.nil? || inventory_date >= Time.zone.today
|
29
|
-
end
|
30
|
-
|
31
|
-
def redis_expired_in
|
32
|
-
expired_in = 31_536_000 # 1 year for normal stock
|
33
|
-
expired_in = Time.parse(inventory_date.to_s).end_of_day.to_i - Time.zone.now.to_i if inventory_date.present?
|
34
|
-
[expired_in, 0].max
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
module RedisStock
|
3
|
-
class CachedInventoryItemsBuilder
|
4
|
-
attr_reader :inventory_items
|
5
|
-
|
6
|
-
def initialize(inventory_items)
|
7
|
-
@inventory_items = inventory_items
|
8
|
-
end
|
9
|
-
|
10
|
-
# output: [ CachedInventoryItem(...), CachedInventoryItem(...) ]
|
11
|
-
def call
|
12
|
-
keys = inventory_items.map { |item| "inventory:#{item.id}" }
|
13
|
-
return [] unless keys.any?
|
14
|
-
|
15
|
-
counts = SpreeCmCommissioner.redis_pool.with { |redis| redis.mget(*keys) }
|
16
|
-
inventory_items.map.with_index do |inventory_item, i|
|
17
|
-
::SpreeCmCommissioner::CachedInventoryItem.new(
|
18
|
-
inventory_key: keys[i],
|
19
|
-
active: inventory_item.active?,
|
20
|
-
quantity_available: cache_inventory(keys[i], inventory_item, counts[i]),
|
21
|
-
inventory_item_id: inventory_item.id,
|
22
|
-
variant_id: inventory_item.variant_id
|
23
|
-
)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
def cache_inventory(key, inventory_item, count_in_redis)
|
30
|
-
return count_in_redis.to_i if count_in_redis.present?
|
31
|
-
|
32
|
-
SpreeCmCommissioner.redis_pool.with do |redis|
|
33
|
-
redis.set(key, inventory_item.quantity_available, ex: inventory_item.redis_expired_in)
|
34
|
-
end
|
35
|
-
|
36
|
-
inventory_item.quantity_available
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|