syntax = "proto3";

package promo_campaign;

option go_package = "promo_campaign";

import "eventbus/change.proto";
import "eventbus/owner.proto";

// PromoCampaignUpdate triggers when new progress is attributed to a campaign.
message PromoCampaignUpdate {
  option (eventbus.owner.ldap_group) = "team-ads";
  // The promotion campaign id (Format as Version 4 UUID).
  string id = 1;
  // The progress of the metric the campaign is targeting. It increases as the campaign delivers.
  eventbus.change.Int64Change goal_progress = 2;
  // The number of units to deliver for this campaign
  eventbus.change.Int64Change goal_target = 3;
  // The type of promotional campaign
  PromotionType promotion_type = 4;
}

// PromotionType has the different types of promotional campaigns that can be run.
enum PromotionType {
  PROMOTION_TYPE_INVALID = 0;
  PROMOTION_TYPE_GAMEPLAY_PLUS = 1;
  PROMOTION_TYPE_COMMUNITY_BOOST = 2;
  PROMOTION_TYPE_NEW_PARTNER = 3;
  PROMOTION_TYPE_HIGH_AD_DENSITY = 4;
}
