syntax = "proto3";

package bilibili.broadcast.message.main;

import "google/protobuf/empty.proto";

option java_multiple_files = true;

//
service Resource {
  //
  rpc TopActivity(google.protobuf.Empty) returns (stream TopActivityReply);
}

//
message TopActivityReply {
  // 当前生效的资源
  TopOnline online = 1;
  // 对online内容进行hash和上次结果一样则不重新加载
  string hash = 2;
}

// 当前生效的资源
message TopOnline {
  // 活动类型
  // 1:七日活动 2:后台配置
  int32 type = 1;
  // 图标
  string icon = 2;
  // 跳转链接
  string uri = 3;
  // 资源状态标识(后台配置)
  string unique_id = 4;
  // 动画资源
  Animate animate = 5;
  // 红点
  RedDot red_dot = 6;
  // 活动名称
  string name = 7;
  // 轮询间隔 单位秒
  int64 interval = 8;
}

// 动画资源
message Animate {
  // 动效结束展示icon
  string icon = 1;
  // 7日活动动画
  string json = 2;
  // s10活动svg动画
  string svg = 3;
  // 循环次数(默认0不返回 表示无限循环)
  int32 loop = 4;
}

// 红点
message RedDot {
  // 红点类型
  // 1:纯红点 2:数字红点
  int32 type = 1;
  // 如果是数字红点 显示的数字
  int32 number = 2;
}
