summaryrefslogtreecommitdiff
path: root/app/decorators/models/solidus_subscriptions/spree/line_item/subscription_line_items_association.rb
blob: ccb483f7a3788c41efc008ad3f644e7c14768f28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# frozen_string_literal: true

# Each Spree::LineItem can have multiple subscription_line_items. This
# allows a cart to represent multiple subscriptions to the same item in
# the same order.
module SolidusSubscriptions
  module Spree
    module LineItem
      module SubscriptionLineItemsAssociation
        def self.prepended(base)
          base.has_many(
            :subscription_line_items,
            class_name: 'SolidusSubscriptions::LineItem',
            foreign_key: :spree_line_item_id,
            inverse_of: :spree_line_item,
            dependent: :destroy
          )

          base.accepts_nested_attributes_for :subscription_line_items
        end
      end
    end
  end
end

Spree::LineItem.prepend(SolidusSubscriptions::Spree::LineItem::SubscriptionLineItemsAssociation)