spree_cm_commissioner 0.0.3 → 1.8.0.pre.beta2

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test_and_build_gem.yml +3 -7
  3. data/.tool-versions +1 -0
  4. data/Gemfile.lock +12 -12
  5. data/README.md +19 -6
  6. data/app/assets/images/mailer/bookme-plus_light.svg +1 -0
  7. data/app/controllers/spree/admin/taxons_controller_decorator.rb +10 -0
  8. data/app/controllers/spree/api/v2/organizer/invites_controller.rb +35 -0
  9. data/app/controllers/spree/api/v2/tenant/pin_code_generators_controller.rb +1 -17
  10. data/app/controllers/spree/api/v2/tenant/profile_images_controller.rb +52 -0
  11. data/app/controllers/spree/api/v2/tenant/s3_signed_urls_controller.rb +29 -0
  12. data/app/controllers/spree/api/v2/tenant/taxons_controller.rb +56 -0
  13. data/app/interactors/spree_cm_commissioner/crew_inviter.rb +63 -0
  14. data/app/interactors/spree_cm_commissioner/profile_image_destroyer.rb +16 -0
  15. data/app/mailers/spree_cm_commissioner/crew_invite_mailer.rb +13 -0
  16. data/app/models/concerns/spree_cm_commissioner/{order_requestable.rb → order_state_machine.rb} +44 -14
  17. data/app/models/spree_cm_commissioner/crew_invite.rb +7 -0
  18. data/app/models/spree_cm_commissioner/invite.rb +22 -0
  19. data/app/models/spree_cm_commissioner/invite_user_event.rb +5 -0
  20. data/app/models/spree_cm_commissioner/invite_user_taxon.rb +11 -0
  21. data/app/models/spree_cm_commissioner/order_decorator.rb +8 -44
  22. data/app/models/spree_cm_commissioner/place.rb +2 -0
  23. data/app/models/spree_cm_commissioner/product_decorator.rb +4 -0
  24. data/app/models/spree_cm_commissioner/taxon_decorator.rb +3 -0
  25. data/app/models/spree_cm_commissioner/taxon_video_banner.rb +4 -0
  26. data/app/models/spree_cm_commissioner/user_decorator.rb +4 -0
  27. data/app/models/spree_cm_commissioner/video.rb +15 -0
  28. data/app/overrides/spree/admin/taxons/_form/assets_form.html.erb.deface +19 -0
  29. data/app/overrides/spree/admin/taxons/_form/available_on.html.erb.deface +18 -0
  30. data/app/overrides/spree/admin/taxons/edit/title.html.erb.deface +5 -3
  31. data/app/serializers/spree/v2/organizer/asset_serializer.rb +11 -0
  32. data/app/serializers/spree/v2/organizer/invite_serializer.rb +11 -0
  33. data/app/serializers/spree/v2/organizer/taxon_serializer.rb +10 -0
  34. data/app/serializers/spree/v2/organizer/user_serializer.rb +9 -0
  35. data/app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb +2 -1
  36. data/app/serializers/spree/v2/storefront/vendor_serializer_decorator.rb +1 -1
  37. data/app/serializers/spree/v2/tenant/s3_signed_url_serializer.rb +9 -0
  38. data/app/serializers/spree/v2/tenant/user_profile_serializer.rb +8 -0
  39. data/app/serializers/spree_cm_commissioner/v2/storefront/video_serializer.rb +9 -0
  40. data/app/views/spree/admin/classifications/index.html.erb +1 -1
  41. data/app/views/spree/admin/guest_card_classes/index.html.erb +1 -1
  42. data/app/views/spree/admin/taxon_vendors/index.html.erb +1 -1
  43. data/app/views/spree/admin/user_events/_users.html.erb +1 -1
  44. data/app/views/spree/admin/vendors/_form.html.erb +8 -0
  45. data/app/views/spree_cm_commissioner/crew_invite_mailer/_mailer_stylesheets.html.erb +82 -0
  46. data/app/views/spree_cm_commissioner/crew_invite_mailer/send_crew_invite_email.html.erb +33 -0
  47. data/app/views/spree_cm_commissioner/layouts/crew_invite_mailer.html.erb +15 -0
  48. data/config/initializers/spree_permitted_attributes.rb +1 -0
  49. data/config/locales/en.yml +10 -1
  50. data/config/locales/km.yml +10 -1
  51. data/config/routes.rb +5 -0
  52. data/db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb +12 -0
  53. data/db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb +11 -0
  54. data/db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb +6 -0
  55. data/db/migrate/20250307013422_add_parent_id_to_cm_place.rb +9 -0
  56. data/db/migrate/20250314013434_add_available_on_to_spree_taxons.rb +5 -0
  57. data/lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb +7 -0
  58. data/lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb +5 -0
  59. data/lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb +6 -0
  60. data/lib/spree_cm_commissioner/version.rb +1 -1
  61. metadata +39 -6
  62. data/app/models/concerns/spree_cm_commissioner/order_bib_number_concern.rb +0 -17
@@ -0,0 +1,9 @@
1
+ class AddParentIdToCmPlace < ActiveRecord::Migration[7.0]
2
+ def change
3
+ unless column_exists?(:cm_places, :parent_id)
4
+ add_column :cm_places, :parent_id, :integer, null: true
5
+ add_foreign_key :cm_places, :cm_places, column: :parent_id
6
+ add_index :cm_places, :parent_id
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddAvailableOnToSpreeTaxons < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :spree_taxons, :available_on, :datetime, if_not_exists: true
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :invite, class: SpreeCmCommissioner::Invite do
3
+ token { SecureRandom.hex(16) }
4
+ taxon { create(:taxon) }
5
+ inviter { create(:user) }
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :invite_user_event, class: SpreeCmCommissioner::InviteUserEvent do
3
+ invite { create(:invite) }
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :user_event, class: SpreeCmCommissioner::UserEvent do
3
+ taxon { create(:taxon) }
4
+ user { create(:user) }
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '1.8.0-beta2'.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: 0.0.3
4
+ version: 1.8.0.pre.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-04 00:00:00.000000000 Z
11
+ date: 2025-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -493,6 +493,7 @@ files:
493
493
  - ".rubocop-rails.yml"
494
494
  - ".rubocop.yml"
495
495
  - ".ruby-version"
496
+ - ".tool-versions"
496
497
  - ".travis.yml"
497
498
  - ".vscode/settings.json"
498
499
  - Dockerfile
@@ -578,6 +579,7 @@ files:
578
579
  - app/assets/images/cm-wifi-icon.svg
579
580
  - app/assets/images/mailer/bed.png
580
581
  - app/assets/images/mailer/bookme-plus.png
582
+ - app/assets/images/mailer/bookme-plus_light.svg
581
583
  - app/assets/images/mailer/calendar.png
582
584
  - app/assets/images/mailer/envelope.png
583
585
  - app/assets/images/mailer/event-mailer-bg.png
@@ -743,6 +745,7 @@ files:
743
745
  - app/controllers/spree/api/v2/operator/taxons_controller.rb
744
746
  - app/controllers/spree/api/v2/organizer/base_controller.rb
745
747
  - app/controllers/spree/api/v2/organizer/images_controller.rb
748
+ - app/controllers/spree/api/v2/organizer/invites_controller.rb
746
749
  - app/controllers/spree/api/v2/organizer/s3_signed_urls_controller.rb
747
750
  - app/controllers/spree/api/v2/organizer/ticket_images_controller.rb
748
751
  - app/controllers/spree/api/v2/organizer/tickets_controller.rb
@@ -822,6 +825,9 @@ files:
822
825
  - app/controllers/spree/api/v2/tenant/pin_code_checkers_controller.rb
823
826
  - app/controllers/spree/api/v2/tenant/pin_code_generators_controller.rb
824
827
  - app/controllers/spree/api/v2/tenant/products_controller.rb
828
+ - app/controllers/spree/api/v2/tenant/profile_images_controller.rb
829
+ - app/controllers/spree/api/v2/tenant/s3_signed_urls_controller.rb
830
+ - app/controllers/spree/api/v2/tenant/taxons_controller.rb
825
831
  - app/controllers/spree/api/v2/tenant/user_account_linkages_controller.rb
826
832
  - app/controllers/spree/api/v2/tenant/user_device_tokens_controller.rb
827
833
  - app/controllers/spree/api/v2/tenant/user_registration_with_pin_codes_controller.rb
@@ -939,6 +945,7 @@ files:
939
945
  - app/interactors/spree_cm_commissioner/check_in_destroyer.rb
940
946
  - app/interactors/spree_cm_commissioner/confirm_pin_code_checker.rb
941
947
  - app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb
948
+ - app/interactors/spree_cm_commissioner/crew_inviter.rb
942
949
  - app/interactors/spree_cm_commissioner/customer_content_notification_creator.rb
943
950
  - app/interactors/spree_cm_commissioner/customer_notification_cron_executor.rb
944
951
  - app/interactors/spree_cm_commissioner/customer_notification_sender.rb
@@ -979,6 +986,7 @@ files:
979
986
  - app/interactors/spree_cm_commissioner/pin_code_creator.rb
980
987
  - app/interactors/spree_cm_commissioner/pin_code_generator.rb
981
988
  - app/interactors/spree_cm_commissioner/pin_code_sender.rb
989
+ - app/interactors/spree_cm_commissioner/profile_image_destroyer.rb
982
990
  - app/interactors/spree_cm_commissioner/profile_image_updater.rb
983
991
  - app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb
984
992
  - app/interactors/spree_cm_commissioner/sms.rb
@@ -1052,6 +1060,7 @@ files:
1052
1060
  - app/jobs/spree_cm_commissioner/webhook_subscriber_orders_sender_job.rb
1053
1061
  - app/mailers/spree/order_mailer_decorator.rb
1054
1062
  - app/mailers/spree_cm_commissioner/application_mailer.rb
1063
+ - app/mailers/spree_cm_commissioner/crew_invite_mailer.rb
1055
1064
  - app/mailers/spree_cm_commissioner/pin_code_mailer.rb
1056
1065
  - app/models/.gitkeep
1057
1066
  - app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
@@ -1062,8 +1071,7 @@ files:
1062
1071
  - app/models/concerns/spree_cm_commissioner/metafield.rb
1063
1072
  - app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb
1064
1073
  - app/models/concerns/spree_cm_commissioner/option_value_attr_type.rb
1065
- - app/models/concerns/spree_cm_commissioner/order_bib_number_concern.rb
1066
- - app/models/concerns/spree_cm_commissioner/order_requestable.rb
1074
+ - app/models/concerns/spree_cm_commissioner/order_state_machine.rb
1067
1075
  - app/models/concerns/spree_cm_commissioner/parameterize_name.rb
1068
1076
  - app/models/concerns/spree_cm_commissioner/phone_number_sanitizer.rb
1069
1077
  - app/models/concerns/spree_cm_commissioner/product_delegation.rb
@@ -1094,6 +1102,7 @@ files:
1094
1102
  - app/models/spree_cm_commissioner/check_in_record.rb
1095
1103
  - app/models/spree_cm_commissioner/classification_decorator.rb
1096
1104
  - app/models/spree_cm_commissioner/configuration.rb
1105
+ - app/models/spree_cm_commissioner/crew_invite.rb
1097
1106
  - app/models/spree_cm_commissioner/customer.rb
1098
1107
  - app/models/spree_cm_commissioner/customer_notification.rb
1099
1108
  - app/models/spree_cm_commissioner/customer_promotion_rule.rb
@@ -1131,6 +1140,9 @@ files:
1131
1140
  - app/models/spree_cm_commissioner/image_methods_decorator.rb
1132
1141
  - app/models/spree_cm_commissioner/import.rb
1133
1142
  - app/models/spree_cm_commissioner/imports/import_order.rb
1143
+ - app/models/spree_cm_commissioner/invite.rb
1144
+ - app/models/spree_cm_commissioner/invite_user_event.rb
1145
+ - app/models/spree_cm_commissioner/invite_user_taxon.rb
1134
1146
  - app/models/spree_cm_commissioner/invoice.rb
1135
1147
  - app/models/spree_cm_commissioner/line_item_decorator.rb
1136
1148
  - app/models/spree_cm_commissioner/line_item_seat.rb
@@ -1200,6 +1212,7 @@ files:
1200
1212
  - app/models/spree_cm_commissioner/taxon_decorator.rb
1201
1213
  - app/models/spree_cm_commissioner/taxon_home_banner.rb
1202
1214
  - app/models/spree_cm_commissioner/taxon_vendor.rb
1215
+ - app/models/spree_cm_commissioner/taxon_video_banner.rb
1203
1216
  - app/models/spree_cm_commissioner/taxon_web_banner.rb
1204
1217
  - app/models/spree_cm_commissioner/taxonomy_decorator.rb
1205
1218
  - app/models/spree_cm_commissioner/telegram_bot.rb
@@ -1232,6 +1245,7 @@ files:
1232
1245
  - app/models/spree_cm_commissioner/vendor_promotion_rule.rb
1233
1246
  - app/models/spree_cm_commissioner/vendor_stop.rb
1234
1247
  - app/models/spree_cm_commissioner/vendor_web_promotion_banner.rb
1248
+ - app/models/spree_cm_commissioner/video.rb
1235
1249
  - app/models/spree_cm_commissioner/video_on_demand.rb
1236
1250
  - app/models/spree_cm_commissioner/waiting_room_session.rb
1237
1251
  - app/models/spree_cm_commissioner/webhooks.rb
@@ -1328,6 +1342,7 @@ files:
1328
1342
  - app/overrides/spree/admin/stores/form/_layout/default_notification_image.html.erb.deface
1329
1343
  - app/overrides/spree/admin/taxonomies/_form/kind.html.erb.deface
1330
1344
  - app/overrides/spree/admin/taxons/_form/assets_form.html.erb.deface
1345
+ - app/overrides/spree/admin/taxons/_form/available_on.html.erb.deface
1331
1346
  - app/overrides/spree/admin/taxons/_form/background_color_and_foreground_color.html.erb.deface
1332
1347
  - app/overrides/spree/admin/taxons/_form/custom_redirect_url.html.erb.deface
1333
1348
  - app/overrides/spree/admin/taxons/_form/kind_html.erb.deface
@@ -1392,10 +1407,14 @@ files:
1392
1407
  - app/serializers/.gitkeep
1393
1408
  - app/serializers/concerns/spree_cm_commissioner/api/v2/resource_serializer_concern_decorator.rb
1394
1409
  - app/serializers/spree/api/v2/platform/create_date_specific_item_adjustment_serializer.rb
1410
+ - app/serializers/spree/v2/organizer/asset_serializer.rb
1395
1411
  - app/serializers/spree/v2/organizer/base_serializer.rb
1396
1412
  - app/serializers/spree/v2/organizer/image_serializer.rb
1413
+ - app/serializers/spree/v2/organizer/invite_serializer.rb
1397
1414
  - app/serializers/spree/v2/organizer/s3_signed_url_serializer.rb
1415
+ - app/serializers/spree/v2/organizer/taxon_serializer.rb
1398
1416
  - app/serializers/spree/v2/organizer/ticket_serializer.rb
1417
+ - app/serializers/spree/v2/organizer/user_serializer.rb
1399
1418
  - app/serializers/spree/v2/storefront/accommodation_serializer.rb
1400
1419
  - app/serializers/spree/v2/storefront/address_serializer_decorator.rb
1401
1420
  - app/serializers/spree/v2/storefront/cart_serializer_decorator.rb
@@ -1431,10 +1450,12 @@ files:
1431
1450
  - app/serializers/spree/v2/tenant/homepage_section_relatable_serializer.rb
1432
1451
  - app/serializers/spree/v2/tenant/homepage_section_serializer.rb
1433
1452
  - app/serializers/spree/v2/tenant/role_serializer.rb
1453
+ - app/serializers/spree/v2/tenant/s3_signed_url_serializer.rb
1434
1454
  - app/serializers/spree/v2/tenant/taxon_serializer.rb
1435
1455
  - app/serializers/spree/v2/tenant/taxonomy_serializer.rb
1436
1456
  - app/serializers/spree/v2/tenant/user_device_token_serializer.rb
1437
1457
  - app/serializers/spree/v2/tenant/user_identity_provider_serializer.rb
1458
+ - app/serializers/spree/v2/tenant/user_profile_serializer.rb
1438
1459
  - app/serializers/spree/v2/tenant/user_serializer.rb
1439
1460
  - app/serializers/spree/v2/tenant/vendor_image_serializer.rb
1440
1461
  - app/serializers/spree/v2/tenant/vendor_serializer.rb
@@ -1489,6 +1510,7 @@ files:
1489
1510
  - app/serializers/spree_cm_commissioner/v2/storefront/user_contact_serializer.rb
1490
1511
  - app/serializers/spree_cm_commissioner/v2/storefront/user_identity_provider_serializer.rb
1491
1512
  - app/serializers/spree_cm_commissioner/v2/storefront/vendor_include_product_serializer.rb
1513
+ - app/serializers/spree_cm_commissioner/v2/storefront/video_serializer.rb
1492
1514
  - app/serializers/spree_cm_commissioner/v2/storefront/waiting_room_session_serializer.rb
1493
1515
  - app/services/.gitkeep
1494
1516
  - app/services/sms_adapter/base.rb
@@ -1924,7 +1946,10 @@ files:
1924
1946
  - app/views/spree/transit/vendors/_form.html.erb
1925
1947
  - app/views/spree/transit/vendors/_tabs.html.erb
1926
1948
  - app/views/spree/transit/vendors/edit.html.erb
1949
+ - app/views/spree_cm_commissioner/crew_invite_mailer/_mailer_stylesheets.html.erb
1950
+ - app/views/spree_cm_commissioner/crew_invite_mailer/send_crew_invite_email.html.erb
1927
1951
  - app/views/spree_cm_commissioner/guest_cards/show.html.erb
1952
+ - app/views/spree_cm_commissioner/layouts/crew_invite_mailer.html.erb
1928
1953
  - app/views/spree_cm_commissioner/layouts/line_item_mailer.html.erb
1929
1954
  - app/views/spree_cm_commissioner/layouts/order_mailer.html.erb
1930
1955
  - app/views/spree_cm_commissioner/layouts/telegram.html.erb
@@ -2228,6 +2253,11 @@ files:
2228
2253
  - db/migrate/20250217075228_add_indexes_to_cm_guests.rb
2229
2254
  - db/migrate/20250220021751_remove_unique_constraint_from_email_in_spree_users.rb
2230
2255
  - db/migrate/20250226092650_add_index_to_email_in_spree_users.rb
2256
+ - db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb
2257
+ - db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb
2258
+ - db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
2259
+ - db/migrate/20250307013422_add_parent_id_to_cm_place.rb
2260
+ - db/migrate/20250314013434_add_available_on_to_spree_taxons.rb
2231
2261
  - docker-compose.yml
2232
2262
  - docs/option_types/attr_types.md
2233
2263
  - docs/private_key.pem
@@ -2280,6 +2310,8 @@ files:
2280
2310
  - lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
2281
2311
  - lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
2282
2312
  - lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
2313
+ - lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
2314
+ - lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
2283
2315
  - lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb
2284
2316
  - lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb
2285
2317
  - lib/spree_cm_commissioner/test_helper/factories/notification_factory.rb
@@ -2311,6 +2343,7 @@ files:
2311
2343
  - lib/spree_cm_commissioner/test_helper/factories/tenant_factory.rb
2312
2344
  - lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb
2313
2345
  - lib/spree_cm_commissioner/test_helper/factories/user_deletion_reasons_factory.rb
2346
+ - lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb
2314
2347
  - lib/spree_cm_commissioner/test_helper/factories/user_factory.rb
2315
2348
  - lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb
2316
2349
  - lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb
@@ -2362,9 +2395,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2362
2395
  version: '2.7'
2363
2396
  required_rubygems_version: !ruby/object:Gem::Requirement
2364
2397
  requirements:
2365
- - - ">="
2398
+ - - ">"
2366
2399
  - !ruby/object:Gem::Version
2367
- version: '0'
2400
+ version: 1.3.1
2368
2401
  requirements:
2369
2402
  - none
2370
2403
  rubygems_version: 3.4.1
@@ -1,17 +0,0 @@
1
- module SpreeCmCommissioner
2
- module OrderBibNumberConcern
3
- extend ActiveSupport::Concern
4
-
5
- included do
6
- after_update :generate_bib_number, if: :state_changed_to_complete?
7
-
8
- def generate_bib_number
9
- line_items.find_each(&:generate_remaining_guests)
10
-
11
- line_items.with_bib_prefix.find_each do |line_item|
12
- line_item.guests.none_bib.find_each(&:generate_bib!)
13
- end
14
- end
15
- end
16
- end
17
- end