# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
class BillingSubscription < ActiveRecord::Base

	attr_accessible \
		:nonprofit_id, :nonprofit,
		:billing_plan_id, :billing_plan,
		:stripe_subscription_id,
		:status # trialing, active, past_due, canceled, or unpaid

	attr_accessor :stripe_plan_id, :manual
	belongs_to :nonprofit
	belongs_to :billing_plan

	validates :nonprofit, presence: true
	validates :billing_plan, presence: true

	def as_json(options={})
		h = super(options)
		h[:plan_name] = self.billing_plan.name
		h[:plan_amount] = self.billing_plan.amount / 100
		h
	end

	def self.create_with_stripe(np, params)
		bp = BillingPlan.find_by_stripe_plan_id params[:stripe_plan_id]
		h =  ConstructBillingSubscription.with_stripe np, bp
		return np.create_billing_subscription h
	end

end