Sha256: 0c3b33e2c502544ef1766b56f98b5ace5628626be52883cd2231b4a293afbe8b

Contents?: true

Size: 1.8 KB

Versions: 16

Compression:

Stored size: 1.8 KB

Contents

class Wco::Leadset
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::Paranoia
  store_in collection: 'wco_leadsets'

  field     :company_url
  validates :company_url, presence: true, uniqueness: true
  index({ company_url: 1 }, { unique: true, name: 'company_url' })
  before_validation :normalize_company_url, on: :create
  def normalize_company_url
    company_url.downcase!
  end

  field :email
  index({ email: 1 }, { name: 'email' })
  validates :email, uniqueness: { allow_nil: true } # presence: true

  has_many :leads,         class_name: 'Wco::Lead'
  has_many :profiles,      class_name: 'Wco::Profile',           inverse_of: :leadset
  has_many :appliances,    class_name: 'WcoHosting::Appliance',  inverse_of: :leadset
  has_many :subscriptions, class_name: 'Wco::Subscription',      inverse_of: :leadset
  has_and_belongs_to_many :tags, class_name: 'Wco::Tag'

  has_many :invoices,     class_name: 'Wco::Invoice'
  field :next_invoice_number, type: :integer, default: 100

  has_and_belongs_to_many :serverhosts, class_name: 'WcoHosting::Serverhost' # , inverse_of: :leadset
  def next_serverhost
    serverhosts.first
  end

  ##
  ## stripe
  ##
  field :customer_id
  def customer_id
    if self[:customer_id].blank?
      return nil if !email.present?
      existing = Stripe::Customer.search({ query: "email: '#{email}'" })
      # puts! existing, 'existing'
      if existing.data.present?
        update_attributes( customer_id: existing.data[0][:id] )
      else
        customer = Stripe::Customer.create({ email: email })
        # puts! customer, 'customer'
        update_attributes( customer_id: customer[:id] )
      end
    end
    self[:customer_id]
  end

  def to_s
    company_url
  end
  def self.list
    [[nil,nil]] + all.map { |ttt| [ ttt.company_url, ttt.id ] }
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
wco_models-3.1.0.106 app/models/wco/leadset.rb
wco_models-3.1.0.105 app/models/wco/leadset.rb
wco_models-3.1.0.104 app/models/wco/leadset.rb
wco_models-3.1.0.103 app/models/wco/leadset.rb
wco_models-3.1.0.102 app/models/wco/leadset.rb
wco_models-3.1.0.101 app/models/wco/leadset.rb
wco_models-3.1.0.100 app/models/wco/leadset.rb
wco_models-3.1.0.99 app/models/wco/leadset.rb
wco_models-3.1.0.98 app/models/wco/leadset.rb
wco_models-3.1.0.97 app/models/wco/leadset.rb
wco_models-3.1.0.96 app/models/wco/leadset.rb
wco_models-3.1.0.95 app/models/wco/leadset.rb
wco_models-3.1.0.94 app/models/wco/leadset.rb
wco_models-3.1.0.93 app/models/wco/leadset.rb
wco_models-3.1.0.92 app/models/wco/leadset.rb
wco_models-3.1.0.91 app/models/wco/leadset.rb