summaryrefslogtreecommitdiff
path: root/app/decorators/core/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/decorators/core/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb')
-rw-r--r--app/decorators/core/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/decorators/core/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb b/app/decorators/core/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb
new file mode 100644
index 0000000..bba173e
--- /dev/null
+++ b/app/decorators/core/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module SolidusSubscriptions
+ module Spree
+ module Variant
+ module AutoDeleteFromSubscriptions
+ def self.prepended(base)
+ base.after_discard(:remove_from_subscriptions)
+ base.after_destroy(:remove_from_subscriptions)
+ end
+
+ def remove_from_subscriptions
+ SolidusSubscriptions::LineItem.where(subscribable: self).delete_all
+ end
+ end
+ end
+ end
+end
+
+Spree::Variant.prepend(SolidusSubscriptions::Spree::Variant::AutoDeleteFromSubscriptions)