syntax = "proto3";

package entitlement_emote;

option go_package = "entitlement_emote";

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

// EntitlementEmoteUpdate triggers when a user's emote entitlement's ends_at is updated.
// ends_at is the only possible value that can change.
message EntitlementEmoteUpdate {
  option (eventbus.owner.ldap_group) = "team-commerce";
  // Entitlement ID
  string id = 1;
  // Twitch User ID of the user who owns this entitlement.
  string owner_user_id = 2;
  // The feature the entitlement came from.
  Source source = 3;
  // ID for the emote or emote group the user is entitled for.
  string item_id = 4;
  // Twitch User ID of the broadcaster who created and owns this emote.
  string emote_owner_user_id = 5;
  // Identifier for the origin object that caused this entitlement.
  // It is a reference to the broader context mostly used for deletion/modifications of entitlements that came from the same context.
  string origin_id = 6;
  // When the entitlement starts.
  google.protobuf.Timestamp starts_at = 7;
  // When the entitlement expires. This value can be updated.
  eventbus.change.TimestampChange ends_at = 8;
  // Entitlement type is an additional logical grouping of contents. For emotes, possible values include emote and emote group.
  string type = 9;
}
