syntax = "proto3";

package emoticon;

option go_package = "emoticon";

import "eventbus/owner.proto";

// EmoticonCreate fires when an Emote has been successfully created.
message EmoticonCreate {
  option (eventbus.owner.ldap_group) = "team-commerce";
  // The emoticon information.
  Emoticon emoticon = 1;
  // The state of the emoticon.
  State state = 2;
}

// Emoticon is a container object for information regarding emoticons.
message Emoticon {
  // The unique identifier of the emoticon.
  string id = 1;
  // The owner ID for the emoticon. Could be either a channel ID or a team ID, which is deprecated.
  string owner_id = 2;
  // The group ID of the emote, to signify what emoticon group it belongs to.
  string group_id = 3;
  // The token of the emoticon that is used in Chat.
  string token = 4;
}

// State represents the State the emoticon is in.
enum State {
  // An invalid state.
  STATE_INVALID = 0;
  // The emoticon is active and usable on the site.
  STATE_ACTIVE = 1;
  // The emoticon is inactive on the site and cannot be used.
  STATE_INACTIVE = 2;
  // The emoticon has been moderated and assets have been deleted.
  STATE_MODERATED = 3;
  // The emoticon is in a pending state and will become active if approved by moderation.
  STATE_PENDING = 4;
  // The emoticon has been archived.
  STATE_ARCHIVED = 5;
  // The emoticon is in a pending state and will become archived if approved by moderation.
  STATE_PENDING_ARCHIVED = 6;
}
