# this was added to support the idea of an anonymous user interacting with our site; needed by the ShoppingCart
# over time it might make sense to beef this up and to use it conistently in anonymous interactions

module JamRuby
  class AnonymousUser

    attr_accessor :id, :cookies

    def initialize(id, cookies)
      @id = id
      @cookies = cookies
    end

    def shopping_carts
      ShoppingCart.where(anonymous_user_id: @id).order('created_at DESC')
    end

    def mixed_cart
      Sale.is_mixed(shopping_carts)
    end

    def destroy_all_shopping_carts
      ShoppingCart.destroy_all(anonymous_user_id: @id)
    end

    def destroy_jam_track_shopping_carts
      ShoppingCart.destroy_all(anonymous_user_id: @id, cart_type: JamTrack::PRODUCT_TYPE)
    end

    def admin
      false
    end

    def has_redeemable_jamtrack
      raise "not a cookied anonymous user" if @cookies.nil?

      APP_CONFIG.one_free_jamtrack_per_user && !@cookies[:redeemed_jamtrack]
    end

    def gifted_jamtracks
      0
    end

    def timezone
      @cookies[:'browser.timezone']
    end

    def free_jamtracks
      if has_redeemable_jamtrack
        1
      else
        0
      end
    end

    def show_free_jamtrack?
      ShoppingCart.user_has_redeemable_jam_track?(self)
    end

    def signup_hint
      SignupHint.where(anonymous_user_id: @id).where('expires_at > ?', Time.now).first
    end

    def reload

    end

  end
end
