Class: GoogleReserve
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- GoogleReserve
- Defined in:
- app/models/google_reserve.rb
Overview
Schema Information
Table name: google_reserves
id :bigint not null, primary key
address :string(191)
agreement_status :integer default("active")
city :string(191)
country_code :string(191)
e2e :boolean default(FALSE)
name :string(191)
postal_code :string(191)
select_top3_package :boolean default(TRUE)
state_code :string(191)
created_at :datetime not null
updated_at :datetime not null
restaurant_id :bigint
Indexes
index_google_reserves_on_agreement_status (agreement_status)
index_google_reserves_on_restaurant_id (restaurant_id) UNIQUE
Instance Method Summary collapse
- #can_create_packages? ⇒ Boolean
- #can_enable_e2e? ⇒ Boolean
- #cleanup_packages_if_e2e_disabled ⇒ Object
- #create_google_packages! ⇒ Object
- #create_google_packages_if_e2e_enabled ⇒ Object
- #delete_all_packages! ⇒ Object
- #disable_e2e! ⇒ Object
- #disable_e2e_if_opted_out ⇒ Object
- #enable_e2e! ⇒ Object
Methods inherited from ApplicationRecord
Instance Method Details
#can_create_packages? ⇒ Boolean
79 80 81 82 83 84 85 |
# File 'app/models/google_reserve.rb', line 79 def can_create_packages? return false unless can_enable_e2e? return false unless e2e? return false unless select_top3_package? true end |
#can_enable_e2e? ⇒ Boolean
71 72 73 74 75 76 77 |
# File 'app/models/google_reserve.rb', line 71 def can_enable_e2e? return false unless agreement_status == 'active' return false unless restaurant.active? return false if restaurant.expiry_date.present? && restaurant.expiry_date < Date.current true end |
#cleanup_packages_if_e2e_disabled ⇒ Object
50 51 52 53 54 |
# File 'app/models/google_reserve.rb', line 50 def cleanup_packages_if_e2e_disabled return unless saved_change_to_e2e? && !e2e google_reserve_packages.delete_all end |
#create_google_packages! ⇒ Object
87 88 89 90 91 |
# File 'app/models/google_reserve.rb', line 87 def create_google_packages! return unless can_create_packages? ScheduleWorkers::GoogleReserve::MonthlyTop3RestaurantPackage.perform_async(restaurant_id) end |
#create_google_packages_if_e2e_enabled ⇒ Object
44 45 46 47 48 |
# File 'app/models/google_reserve.rb', line 44 def create_google_packages_if_e2e_enabled return unless saved_change_to_e2e? && e2e create_google_packages! end |
#delete_all_packages! ⇒ Object
93 94 95 |
# File 'app/models/google_reserve.rb', line 93 def delete_all_packages! GoogleReservePackage.where(restaurant_id: restaurant_id).delete_all end |
#disable_e2e! ⇒ Object
56 57 58 59 60 61 |
# File 'app/models/google_reserve.rb', line 56 def disable_e2e! return unless e2e update_column(:e2e, false) delete_all_packages! end |
#disable_e2e_if_opted_out ⇒ Object
38 39 40 41 42 |
# File 'app/models/google_reserve.rb', line 38 def disable_e2e_if_opted_out return unless saved_change_to_agreement_status? && agreement_status == 'opted_out' disable_e2e! end |
#enable_e2e! ⇒ Object
63 64 65 66 67 68 69 |
# File 'app/models/google_reserve.rb', line 63 def enable_e2e! return if e2e return unless can_enable_e2e? update_column(:e2e, true) create_google_packages! end |