lib/voucher/model/segment.rb in voucher-0.1.1 vs lib/voucher/model/segment.rb in voucher-0.2.1

- old
+ new

@@ -2,44 +2,101 @@ module Voucher class Segment include Virtus.model + COMPOUND_METRICS = %w( + bot_clicks + bot_decision_win_clicks + bot_decision_win_impressions + bot_impressions + bot_loaded_clicks + bot_loaded_impressions + decision_win_clicks + decision_win_impressions + loaded_clicks + loaded_impressions + non_bot_clicks + non_bot_decision_win_clicks + non_bot_decision_win_impressions + non_bot_impressions + non_bot_loaded_clicks + non_bot_loaded_impressions + non_viewable_bot_decision_win_clicks + non_viewable_bot_decision_win_impressions + non_viewable_bot_loaded_clicks + non_viewable_bot_loaded_impressions + non_viewable_clicks + non_viewable_decision_win_clicks + non_viewable_decision_win_impressions + non_viewable_impressions + non_viewable_loaded_clicks + non_viewable_loaded_impressions + non_viewable_non_bot_clicks + non_viewable_non_bot_decision_win_clicks + non_viewable_non_bot_decision_win_impressions + non_viewable_non_bot_impressions + non_viewable_non_bot_loaded_clicks + non_viewable_non_bot_loaded_impressions + viewable_bot_clicks + viewable_bot_decision_win_clicks + viewable_bot_decision_win_impressions + viewable_bot_impressions + viewable_bot_loaded_clicks + viewable_bot_loaded_impressions + viewable_clicks + viewable_decision_win_clicks + viewable_decision_win_impressions + viewable_impressions + viewable_loaded_clicks + viewable_loaded_impressions + viewable_non_bot_clicks + viewable_non_bot_decision_win_clicks + viewable_non_bot_decision_win_impressions + viewable_non_bot_impressions + viewable_non_bot_loaded_clicks + viewable_non_bot_loaded_impressions + ).freeze + FIELDS = %w( advertiser_id agency_id app_id campaign_id channel_id clicks conversions decision_cost - decision_win_impressions exchange_id impressions - loaded_impressions publisher_id site_id + supply_id + third_party_id win_cost - ).sort.freeze + ).sort.freeze + COMPOUND_METRICS attribute :advertiser_id, String attribute :agency_id, String attribute :app_id, String attribute :campaign_id, String attribute :channel_id, String attribute :clicks, Integer attribute :conversions, Integer attribute :decision_cost, Integer - attribute :decision_win_impressions, Integer attribute :exchange_id, String attribute :impressions, Integer - attribute :loaded_impressions, Integer attribute :publisher_id, String attribute :site_id, String + attribute :supply_id, String + attribute :third_party_id, String attribute :win_cost, Integer attribute :shard, Integer attribute :siblings, Array[String] + + COMPOUND_METRICS.each do |metric| + attribute metric.to_sym, Integer + end def hash Hashtastic::DictionaryValuesHasher.call(attributes, FIELDS) end end