syntax = "proto3";

package boost_order;

option go_package = "boost_order";

import "boost_order/create.proto";
import "eventbus/change.proto";
import "eventbus/owner.proto";
import "google/protobuf/timestamp.proto";

// BoostOrderUpdate triggers when a Boost Order is updated.
message BoostOrderUpdate {
  option (eventbus.owner.ldap_group) = "team-ads";
  // The unique identifier of the Boost Order
  string id = 1;
  // The type of Boost Order (whether paid or earned)
  OrderType type = 2;
  // The state of the Boost Order
  OrderState state = 3;
  // The current progress of the Boost Order being fulfilled
  eventbus.change.Int64Change goal_progress = 4;
  // The the total progress required for a Boost Order to be fulfilled
  eventbus.change.Int64Change goal_target = 5;
  // Twitch User ID of who the Boost Order is for
  string boost_owner_id = 6;
  // Twitch User ID Identifier of who made the Boost Order (only applicable for paid)
  string purchaser_id = 7;
  // The total quantity of Boosts within the Boost Order
  int64 quantity = 8;
  // The time at which the Boost Order was created
  google.protobuf.Timestamp opened_at = 9;
  // The time at which the Boost Order was fulfilled
  google.protobuf.Timestamp fulfilled_at = 10;
}
