syntax = "proto3";

package bilibili.app.dynamic.v2;

option java_multiple_files = true;

import "google/protobuf/any.proto";
import "bilibili/app/archive/middleware/v1/preload.proto";
import "bilibili/dagw/component/avatar/v1/avatar.proto";

// v2动态, rpc 按字母顺序排列
service Dynamic {
  //
  rpc AlumniDynamics (AlumniDynamicsReq) returns (AlumniDynamicsReply);
  //
  rpc CampusBillBoard (CampusBillBoardReq) returns (CampusBillBoardReply);
  //
  rpc CampusEntryTab(CampusEntryTabReq) returns (CampusEntryTabResp);
  //
  rpc CampusFeedback(CampusFeedbackReq) returns (CampusFeedbackReply);
  //
  rpc CampusHomePages(CampusHomePagesReq) returns (CampusHomePagesReply);
  //
  rpc CampusMateLikeList(CampusMateLikeListReq) returns (CampusMateLikeListReply);
  //
  rpc CampusMngDetail(CampusMngDetailReq) returns (CampusMngDetailReply);
  //
  rpc CampusMngQuizOperate(CampusMngQuizOperateReq) returns (CampusMngQuizOperateReply);
  //
  rpc CampusMngSubmit(CampusMngSubmitReq) returns (CampusMngSubmitReply);
  //
  rpc CampusRcmd(CampusRcmdReq) returns (CampusRcmdReply);
  //
  rpc CampusRcmdFeed(CampusRcmdFeedReq) returns (CampusRcmdFeedReply);
  //
  rpc CampusRecommend(CampusRecommendReq) returns (CampusRecommendReply);
  //
  rpc CampusRedDot(CampusRedDotReq) returns (CampusRedDotReply);
  //
  rpc CampusSquare(CampusSquareReq) returns (CampusSquareReply);
  //
  rpc CampusTopicRcmdFeed(CampusTopicRcmdFeedReq) returns (CampusTopicRcmdFeedReply);
  // 动态通用附加卡-follow/取消follow
  rpc DynAdditionCommonFollow(DynAdditionCommonFollowReq) returns (DynAdditionCommonFollowReply);
  // 动态综合页
  rpc DynAll(DynAllReq) returns (DynAllReply);
  // 综合页最近访问 - 个人feed流
  rpc DynAllPersonal(DynAllPersonalReq) returns (DynAllPersonalReply);
  // 综合页最近访问 - 标记已读
  rpc DynAllUpdOffset(DynAllUpdOffsetReq) returns (NoReply);
  // 动态详情页
  rpc DynDetail(DynDetailReq) returns (DynDetailReply);
  // 批量动态id获取动态详情
  rpc DynDetails(DynDetailsReq) returns (DynDetailsReply);
  // 动态发布生成临时卡
  rpc DynFakeCard(DynFakeCardReq) returns (DynFakeCardReply);
  //
  rpc DynFriend(DynFriendReq) returns (DynFriendReply);
  // 轻浏览
  rpc DynLight(DynLightReq) returns (DynLightReply);
  // 网关调用 - 查看更多-列表
  rpc DynMixUpListViewMore(DynMixUpListViewMoreReq) returns (DynMixUpListViewMoreReply);
  // 关注推荐up主换一换
  rpc DynRcmdUpExchange(DynRcmdUpExchangeReq) returns (DynRcmdUpExchangeReply);
  //
  rpc DynSearch(DynSearchReq) returns (DynSearchReply);
  //
  rpc DynServerDetails(DynServerDetailsReq) returns (DynServerDetailsReply);
  // 空间页动态
  rpc DynSpace(DynSpaceReq) returns (DynSpaceRsp);
  //
  rpc DynSpaceSearchDetails(DynSpaceSearchDetailsReq) returns (DynSpaceSearchDetailsReply);
  //
  rpc DynTab(DynTabReq) returns (DynTabReply);
  // 动态点赞
  rpc DynThumb(DynThumbReq) returns (NoReply);
  // 未登录页分区UP主推荐
  rpc DynUnLoginRcmd(DynRcmdReq) returns (DynRcmdReply);
  // 动态视频页
  rpc DynVideo(DynVideoReq) returns (DynVideoReply);
  // 视频页最近访问 - 个人feed流
  rpc DynVideoPersonal(DynVideoPersonalReq) returns (DynVideoPersonalReply);
  // 视频页最近访问 - 标记已读
  rpc DynVideoUpdOffset(DynVideoUpdOffsetReq) returns (NoReply);
  //
  rpc DynVote(DynVoteReq) returns (DynVoteReply);
  //
  rpc FeedFilter(FeedFilterReq) returns (FeedFilterReply);
  //
  rpc FetchTabSetting(NoReq) returns (FetchTabSettingReply);
  //
  rpc HomeSubscribe(HomeSubscribeReq) returns (HomeSubscribeReply);
  //
  rpc LbsPoi(LbsPoiReq) returns (LbsPoiReply);
  //
  rpc LegacyTopicFeed(LegacyTopicFeedReq) returns (LegacyTopicFeedReply);
  // 点赞列表
  rpc LikeList(LikeListReq) returns (LikeListReply);
  //
  rpc OfficialAccounts(OfficialAccountsReq) returns (OfficialAccountsReply);
  //
  rpc OfficialDynamics(OfficialDynamicsReq) returns (OfficialDynamicsReply);
  // 新版动态转发点赞列表 需要登录
  rpc ReactionList(ReactionListReq) returns (ReactionListReply);
  // 转发列表
  rpc RepostList(RepostListReq) returns (RepostListRsp);
  //
  rpc SchoolRecommend(SchoolRecommendReq) returns (SchoolRecommendReply);
  //
  rpc SchoolSearch(SchoolSearchReq) returns (SchoolSearchReply);
  //
  rpc SetDecision(SetDecisionReq) returns (NoReply);
  //
  rpc SetRecentCampus(SetRecentCampusReq) returns (NoReply);
  //
  rpc SubscribeCampus(SubscribeCampusReq) returns (NoReply);
  //
  rpc TopicList(TopicListReq) returns (TopicListReply);
  //
  rpc TopicSquare(TopicSquareReq) returns (TopicSquareReply);
  //
  rpc UnfollowMatch(UnfollowMatchReq) returns (NoReply);
  //
  rpc UpdateTabSetting(UpdateTabSettingReq) returns (NoReply);
}

//
enum AddButtonBgStyle {
  fill = 0;   // 默认填充
  stroke = 1; // 描边
  gray = 2;   // 置灰
}

// 按钮类型
enum AddButtonType {
  bt_none = 0;   // 占位
  bt_jump = 1;   // 跳转
  bt_button = 2; // 按钮
}

// 活动皮肤
message AdditionalActSkin {
  // 动画SVGA资源
  string svga = 1;
  // 动画SVGA最后一帧图片资源
  string last_image = 2;
  // 动画播放次数
  int64 play_times = 3;
}

// 动态-附加卡-按钮
message AdditionalButton {
  // 按钮类型
  AddButtonType type = 1;
  // jump-跳转样式
  AdditionalButtonStyle jump_style = 2;
  // jump-跳转链接
  string jump_url = 3;
  // button-未点样式
  AdditionalButtonStyle uncheck = 4;
  // button-已点样式
  AdditionalButtonStyle check = 5;
  // button-当前状态
  AdditionalButtonStatus status = 6;
  // 按钮点击样式
  AdditionalButtonClickType click_type = 7;
}

// 附加卡按钮点击类型
enum AdditionalButtonClickType {
  click_none = 0; // 通用按钮
  click_up = 1;   // 预约卡按钮
}

//
message AdditionalButtonInteractive {
  // 是否弹窗
  string popups = 1;
  // 弹窗确认文案
  string confirm = 2;
  // 弹窗取消文案
  string cancel = 3;
  //
  string desc = 4;
}

//
message AdditionalButtonShare {
  //
  int32 show = 1;
  //
  string icon = 2;
  //
  string text = 3;
}

// 附加卡按钮状态
enum AdditionalButtonStatus {
  none = 0;    //
  uncheck = 1; //
  check = 2;   //
}

// 动态-附加卡-按钮样式
message AdditionalButtonStyle {
  // icon
  string icon = 1;
  // 文案
  string text = 2;
  // 按钮点击交互
  AdditionalButtonInteractive interactive = 3;
  // 当前按钮填充样式
  AddButtonBgStyle bg_style = 4;
  // toast文案, 当disable=1时有效
  string toast = 5;
  // 当前按钮样式,
  // 0:高亮 1:置灰(按钮不可点击)
  DisableState disable = 6;
  //
  AdditionalButtonShare share = 7;
}

// 动态-附加卡-番剧卡
message AdditionalPGC {
  // 头部说明文案
  string head_text = 1;
  // 标题
  string title = 2;
  // 展示图
  string image_url = 3;
  // 描述文字1
  string desc_text_1 = 4;
  // 描述文字2
  string desc_text_2 = 5;
  // 点击跳转链接
  string url = 6;
  // 按钮
  AdditionalButton button = 7;
  // 头部icon
  string head_icon = 8;
  // style
  ImageStyle style = 9;
  // 动态本身的类型 type
  string type = 10;
}

//
enum AdditionalShareShowType {
  st_none = 0; //
  st_show = 1; //
}

// 枚举-动态附加卡
enum AdditionalType {
  additional_none = 0;                // 占位
  additional_type_pgc = 1;            // 附加卡-追番
  additional_type_goods = 2;          // 附加卡-商品
  additional_type_vote = 3;           // 附加卡投票
  additional_type_common = 4;         // 附加通用卡
  additional_type_esport = 5;         // 附加电竞卡
  additional_type_up_rcmd = 6;        // 附加UP主推荐卡
  additional_type_ugc = 7;            // 附加卡-ugc
  additional_type_up_reservation = 8; // UP主预约卡
}

// 动态-附加卡-专栏
message AdditionArticle {
  //
  string title = 1;
  //
  MdlDynDrawItem cover = 2;
  //
  string desc_text_left = 3;
  //
  string desc_text_right = 4;
  //
  string uri = 5;
  //
  string card_type = 6;
}

// 动态-附加卡-通用卡
message AdditionCommon {
  // 头部说明文案
  string head_text = 1;
  // 标题
  string title = 2;
  // 展示图
  string image_url = 3;
  // 描述文字1
  string desc_text_1 = 4;
  // 描述文字2
  string desc_text_2 = 5;
  // 点击跳转链接
  string url = 6;
  // 按钮
  AdditionalButton button = 7;
  // 头部icon
  string head_icon = 8;
  // style
  ImageStyle style = 9;
  // 动态本身的类型 type
  string type = 10;
  // 附加卡类型
  string card_type = 11; // ogv manga
}

// 动态-附加卡-电竞卡
message AdditionEsport {
  // 电竞类型
  EspaceStyle style = 1;
  oneof item {
    // moba类
    AdditionEsportMoba addition_esport_moba = 2;
  }
  // 动态本身的类型 type
  string type = 3;
  // 附加卡类型
  string card_type = 4; // ogv manga
}

// 动态-附加卡-电竞卡-moba类
message AdditionEsportMoba {
  // 头部说明文案
  string head_text = 1;
  // 标题
  string title = 2;
  // 战队列表
  repeated MatchTeam match_team = 3;
  // 比赛信息
  AdditionEsportMobaStatus addition_esport_moba_status = 4;
  // 卡片跳转
  string uri = 5;
  // 按钮
  AdditionalButton button = 6;
  // 副标题
  string sub_title = 7;
  // 动态本身的类型 type
  string type = 10;
  // 附加卡类型
  string card_type = 11;
  // 附加卡图标
  string head_icon = 12;
}

// 动态-附加卡-电竞卡-moba类-比赛信息
message AdditionEsportMobaStatus {
  // 文案类
  repeated AdditionEsportMobaStatusDesc addition_esport_moba_status_desc = 1;
  // 比赛状态文案
  string title = 2;
  // 比赛状态状态
  int32 status = 3;
  // 日间色值
  string color = 4;
  // 夜间色值
  string night_color = 5;
}

// 动态-附加卡-电竞卡-moba类-比赛信息-文案类
message AdditionEsportMobaStatusDesc {
  // 文案
  string title = 1;
  // 日间色值
  string color = 2;
  // 夜间色值
  string night_color = 3;
}

// 动态-附加卡-商品卡
message AdditionGoods {
  // 推荐文案
  string rcmd_desc = 1;
  // 商品信息
  repeated GoodsItem goods_items = 2;
  // 附加卡类型
  string card_type = 3;
  // 头部icon
  string icon = 4;
  // 商品附加卡整卡跳转
  string uri = 5;
  // 商品类型
  // 1:淘宝 2:会员购，注：实际是获取的goods_items里面的第一个source_type
  int32 source_type = 6;
  //
  int32 jump_type = 7;
  //
  string app_name = 8;
  //
  string ad_mark_icon = 9;
}

// 动态-附加卡-直播附加卡
message AdditionLiveRoom {
  //
  string title = 1;
  //
  string cover = 2;
  //
  VideoBadge badge = 3;
  //
  CoverIconWithText desc_text_upper = 4;
  //
  string desc_text_lower = 5;
  //
  string uri = 6;
  //
  string card_type = 7;
}

// 动态-附加卡-UGC视频附加卡
message AdditionUgc {
  // 说明文案
  string head_text = 1;
  // 稿件标题
  string title = 2;
  // 封面
  string cover = 3;
  // 描述文字1
  string desc_text_1 = 4;
  // 描述文字2
  string desc_text_2 = 5;
  // 接秒开
  string uri = 6;
  // 时长
  string duration = 7;
  // 标题支持换行-标题支持单行和双行，本期不支持填充up昵称，支持双行展示，字段默认为true
  bool line_feed = 8;
  // 附加卡类型
  string card_type = 9;
}

// up主预约发布卡
message AdditionUP {
  // 标题
  string title = 1;
  // 高亮文本，描述文字1
  HighlightText desc_text_1 = 2;
  // 描述文字2
  string desc_text_2 = 3;
  // 点击跳转链接
  string url = 4;
  // 按钮
  AdditionalButton button = 5;
  // 附加卡类型
  string card_type = 6;
  // 预约人数(用于预约人数变化)
  int64 reserve_total = 7;
  // 活动皮肤
  AdditionalActSkin act_skin = 8;
  // 预约id
  int64 rid = 9;
  //
  int32 lottery_type = 10;
  //
  HighlightText desc_text3 = 11;
  //
  int64 up_mid = 12;
  //
  AdditionUserInfo user_info = 13;
  //
  string dynamic_id = 14;
  //
  bool show_text2 = 15;
  //
  int64 dyn_type = 16;
  //
  string business_id = 17;
  //
  string badge_text = 18;
  //
  bool is_premiere = 19;
}

//
message AdditionUserInfo {
  //
  string name = 1;
  //
  string face = 2;
}

// 动态-附加卡-投票
message AdditionVote {
  // 封面图
  string image_url = 1;
  // 标题
  string title = 2;
  // 展示项1
  string text_1 = 3;
  // button文案
  string button_text = 4;
  // 点击跳转链接
  string url = 5;
}

// 动态模块-投票
message AdditionVote2 {
  // 投票类型
  AdditionVoteType addition_vote_type = 1;
  // 投票ID
  int64 vote_id = 2;
  // 标题
  string title = 3;
  // 已过期： xxx人参与· 投票已过期。button 展示去查看
  // 未过期： xxx人参与· 剩xx天xx时xx分。button展示去投票
  string label = 4;
  // 剩余时间
  int64 deadline = 5;
  // 生效文案
  string open_text = 6;
  // 过期文案
  string close_text = 7;
  // 已投票
  string voted_text = 8;
  // 投票状态
  AdditionVoteState state = 9;
  // 投票信息
  oneof item {
    //
    AdditionVoteWord addition_vote_word = 10;
    //
    AdditionVotePic addition_vote_pic = 11;
    //
    AdditionVoteDefaule addition_vote_defaule = 12;
  }
  // 业务类型
  // 0:动态投票 1:话题h5组件
  int32 biz_type = 13;
  // 投票总人数
  int64 total = 14;
  // 附加卡类型
  string card_type = 15;
  // 异常提示
  string tips = 16;
  // 跳转地址
  string uri = 17;
  // 是否投票
  bool is_voted = 18;
  // 投票最多多选个数，单选为1
  int32 choice_cnt = 19;
  // 是否默认选中分享到动态
  bool defaule_select_share = 20;
}

// 外露投票
message AdditionVoteDefaule {
  // 图片 多张
  repeated string cover = 1;
}

// 外露图片类型
message AdditionVotePic {
  // 图片投票详情
  repeated AdditionVotePicItem item = 1;
}

// 图片投票详情
message AdditionVotePicItem {
  // 选项索引，从1开始
  int32 opt_idx = 1;
  // 图片
  string cover = 2;
  // 选中状态
  bool is_vote = 3;
  // 人数
  int32 total = 4;
  // 占比
  double persent = 5;
  // 标题文案
  string title = 6;
  // 是否投票人数最多的选项
  bool  is_max_option = 7;
}

// 投票状态
enum AdditionVoteState {
  addition_vote_state_none = 0;  //
  addition_vote_state_open = 1;  //
  addition_vote_state_close = 2; //
}

// 投票类型
enum AdditionVoteType {
  addition_vote_type_none = 0;    //
  addition_vote_type_word = 1;    //
  addition_vote_type_pic = 2;     //
  addition_vote_type_default = 3; //
}


// 外露文字类型
message AdditionVoteWord {
  // 外露文字投票详情
  repeated AdditionVoteWordItem item = 1;
}

// 外露文字投票详情
message AdditionVoteWordItem {
  // 选项索引，从1开始
  int32 opt_idx = 1;
  // 文案
  string title = 2;
  // 选中状态
  bool is_vote = 3;
  // 人数
  int32 total = 4;
  // 占比
  double persent = 5;
  // 是否投票人数最多的选项
  bool  is_max_option = 6;
}

// 综合页请求广告所需字段，由客户端-网关透传
message AdParam {
  // 综合页请求广告所需字段，由客户端-网关透传
  string ad_extra = 1;
  // request_id
  string request_id = 2;
}

//
message AlumniDynamicsReply {
  //
  repeated DynamicItem list = 1;
  //
  string toast = 2;
}

//
message AlumniDynamicsReq {
  //
  int64 campus_id = 1;
  //
  int32 first_time = 2;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
  //
  int32 local_time = 4;
  //
  int32 page = 5;
  //
  int32 from_type = 6;
}

//
message CampusBannerInfo {
  //
  string image = 1;
  //
  string jump_url = 2;
}

//
message CampusBillboardInternalReq {
  //
  int64 mid = 1;
  //
  int64 campus_id = 2;
  //
  string version_code = 3;
}

//
message CampusBillBoardReply {
  //
  string title = 1;
  //
  string help_uri = 2;
  //
  string campus_name = 3;
  //
  int64 build_time = 4;
  //
  string version_code = 5;
  //
  repeated OfficialItem list = 6;
  //
  string share_uri = 7;
  //
  int32 bind_notice = 8;
  //
  string update_toast = 9;
  //
  int64 campus_id = 10;
  //
  CampusFeatureProgress open_progress = 11;
}

//
message CampusBillBoardReq {
  //
  int64 campus_id = 1;
  //
  string version_code = 2;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
  //
  CampusReqFromType from_type = 4;
}

//
message CampusEntryTabReq {
  //
  int64 campus_id = 1;
}

//
message CampusEntryTabResp {
  //
  CampusEntryType entry_type = 1;
}

//
enum CampusEntryType {
  //
  NONE = 0;
  //
  ENTRY_DYNAMIC = 1;
  //
  ENTRY_HOME = 2;
}

//
message CampusFeatureProgress {
  //
  int64 progress_full = 1;
  //
  int64 progress_achieved = 2;
  //
  string desc_title = 3;
  //
  string desc_1 = 4;
  //
  CampusLabel btn = 5;
}

//
message CampusFeedbackInfo {
  //
  int32 biz_type = 1;
  //
  int64 biz_id = 2;
  //
  int64 campus_id = 3;
  //
  string reason = 4;
}

//
message CampusFeedbackReply {
  //
  string message = 1;
}

//
message CampusFeedbackReq {
  //
  repeated CampusFeedbackInfo infos = 1;
  //
  int32 from = 2;
}

//
message CampusHomePagesReply {
  //
  CampusRcmdTop top = 1;
  //
  CampusTop campus_top = 2;
  //
  int32 page_type = 3;
}

//
message CampusHomePagesReq {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  double lat = 3;
  //
  double lng = 4;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 5;
  //
  int32 page_type = 6;
}

enum CampusRcmdReqFrom {
  CAMPUS_RCMD_FROM_UNKNOWN = 0;
  CAMPUS_RCMD_FROM_HOME_UN_OPEN = 1;
  CAMPUS_RCMD_FROM_VISIT_OTHER = 2;
  CAMPUS_RCMD_FROM_HOME_MOMENT = 3;
  CAMPUS_RCMD_FROM_DYN_MOMENT = 4;
  CAMPUS_RCMD_FROM_PAGE_SUBORDINATE_MOMENT = 5;
}

//
enum CampusHomePageType {
  //
  PAGE_MAJOR = 0;
  //
  PAGE_SUBORDINATE = 1;
  //
  PAGE_MAJOR_DETAIL = 2;
}

//
message CampusHomeRcmdTopic {
  //
  ModuleTitle title = 1;
  //
  repeated TopicItem topic = 2;
}

//
message CampusInfo {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  string desc = 3;
  //
  int64 online = 4;
  //
  string url = 5;
}

//
message CampusLabel {
  //
  string text = 1;
  //
  string url = 2;
  //
  string desc = 3;
}

//
message CampusMateLikeListReply {
  //
  repeated ModuleAuthor list = 1;
}

//
message CampusMateLikeListReq {
  //
  int64 dynamic_id = 1;
  //
  CampusReqFromType from_type = 2;
}

//
enum CampusMngAuditStatus {
  //
  campus_mng_audit_none = 0;
  //
  campus_mng_audit_in_process = 1;
  //
  campus_mng_audit_failed = 2;
}

//
message CampusMngBadge {
  //
  string title = 1;
  //
  string badge_url = 2;
  //
  string upload_hint_msg = 3;
}

//
message CampusMngBasicInfo {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  string hint_msg = 3;
}

//
message CampusMngDetailReply {
  //
  repeated CampusMngItem items = 1;
  //
  string top_hint_bar_msg = 2;
  //
  string bottom_submit_hint_msg = 3;
  //
  int64 campus_id = 4;
  //
  string campus_name = 5;
}

//
message CampusMngDetailReq {
  //
  int64 campus_id = 1;
}

//
message CampusMngItem {
  //
  int32 audit_status = 1;
  //
  string audit_message = 2;
  //
  int32 item_type = 3;
  //
  string mng_item_id = 4;
  //
  bool is_del = 5;
  // Oneof field:
  oneof item {
    //
    CampusMngBasicInfo basic_info = 6;
    //
    CampusMngBadge badge = 7;
    //
    string slogan = 8;
    //
    CampusMngQuiz quiz = 9;
  }
}

//
enum CampusMngItemType {
  //
  campus_mng_none = 0;
  //
  campus_mng_basic_info = 1;
  //
  campus_mng_badge = 2;
  //
  campus_mng_slogan = 3;
  //
  campus_mng_quiz = 4;
}

//
message CampusMngQuiz {
  //
  string title = 1;
  //
  CampusLabel more_label = 2;
  //
  string add_label = 3;
  //
  string submit_label = 4;
  //
  int64 quiz_count = 5;
}

//
enum CampusMngQuizAction {
  //
  campus_mng_quiz_act_list = 0;
  //
  campus_mng_quiz_act_add = 1;
  //
  campus_mng_quiz_act_del = 2;
}

//
message CampusMngQuizDetail {
  //
  int64 quiz_id = 1;
  //
  string question = 2;
  //
  string correct_answer = 3;
  //
  repeated string wrong_answer_list = 4;
  //
  int32 audit_status = 5;
  //
  string audit_message = 6;
}

//
message CampusMngQuizOperateReply {
  //
  string toast = 1;
  //
  repeated CampusMngQuizDetail quiz = 2;
  //
  int64 quiz_total = 3;
}

//
message CampusMngQuizOperateReq {
  //
  int32 action = 1;
  //
  int64 campus_id = 2;
  //
  repeated CampusMngQuizDetail quiz = 3;
}

//
message CampusMngSlogan {
  //
  string title = 1;
  //
  string slogan = 2;
  //
  string input_hint_msg = 3;
}

//
message CampusMngSubmitReply {
  //
  string toast = 1;
}

//
message CampusMngSubmitReq {
  //
  int64 campus_id = 1;
  //
  repeated CampusMngItem modified_items = 2;
}

//
message CampusNoticeInfo {
  //
  string title = 1;
  //
  string desc = 2;
  //
  CampusLabel button = 3;
}

//
enum CampusOnlineStatus {
  //
  campus_online_offline = 0;
  //
  campus_online_online = 1;
}

//
message CampusRcmdFeedReply {
  //
  repeated DynamicItem list = 1;
  //
  string toast = 2;
  //
  GuideBarInfo guide_bar = 3;
  //
  bool has_more = 4;
  //
  bool update = 5;
}

//
message CampusRcmdFeedReq {
  //
  int64 campus_id = 1;
  //
  int32 first_time = 2;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
  //
  int32 local_time = 4;
  //
  int32 page = 5;
  //
  int32 scroll = 6;
  //
  string view_dyn_id = 7;
  //
  CampusReqFromType from_type = 8;
}

//
message CampusRcmdInfo {
  //
  string title = 1;
  //
  repeated CampusRcmdItem items = 2;
}

//
message CampusRcmdItem {
  //
  string title = 1;
  //
  repeated RcmdItem items = 2;
  //
  int64 campus_id = 3;
  //
  CampusLabel entry_label = 4;
}

//
message CampusRcmdReply {
  //
  CampusRcmdTop top = 1;
  //
  CampusRcmdInfo rcmd = 2;
  //
  CampusTop campus_top = 3;
  //
  int32 page_type = 4;
  //
  int32 jump_home_pop = 5;
}

//
message CampusRcmdReq {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  double lat = 3;
  //
  double lng = 4;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 5;
  //
  CampusReqFromType from_type = 6;
  //
  CampusHomePageType page_type = 7;
}

//
message CampusRcmdTop {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  string title = 3;
  //
  string desc = 4;
  //
  int32 type = 5;
  //
  RcmdTopButton button = 6;
  //
  CampusLabel switch_label = 7;
  //
  CampusLabel notice_label = 8;
  //
  string desc2 = 9;
  //
  string desc3 = 10;
  //
  CampusLabel invite_label = 11;
  //
  CampusLabel reserve_label = 12;
  //
  int64 reserve_number = 13;
  //
  int64 max_reserve = 14;
  //
  CampusLabel school_label = 15;
  //
  CampusLabel mng_label = 16;
  //
  CampusHomeRcmdTopic rcmd_topic = 17;
  //
  bool audit_before_open = 18;
  //
  string audit_message = 19;
}

//
message CampusRecommendReply {
  //
  repeated RcmdItem items = 1;
  //
  bool has_more = 2;
}

//
message CampusRecommendReq {
  //
  int64 campus_id = 1;
  //
  int64 page_no = 2;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
  //
  //CampusRcmdReqFrom from = 4;
}

//
message CampusRedDotReply {
  //
  int32 red_dot = 1;
}

//
message CampusRedDotReq {
  //
  int64 campus_id = 1;
  //
  CampusReqFromType from_type = 2;
}

//
enum CampusReqFromType {
  //
  DYNAMIC = 0;
  //
  HOME = 1;
}

//
message CampusShowTabInfo {
  //
  string name = 1;
  //
  string url = 2;
  //
  int32 type = 3;
  //
  int32 red_dot = 4;
  //
  string icon_url = 5;
}

//
message CampusSquareReply {
  //
  string title = 1;
  //
  repeated RcmdCampusBrief list = 2;
  //
  CampusLabel button = 3;
}

//
message CampusSquareReq {
  //
  int64 campus_id = 1;
  //
  double lat = 2;
  //
  double lng = 3;
}

//
enum CampusTabType {
  campus_none = 0;      //
  campus_school = 1;    //
  campus_dynamic = 2;   //
  campus_account = 3;   //
  campus_billboard = 4; //
  campus_topic = 5;     //
  campues_other = 6;    //
}

//
message CampusTop {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  repeated CampusShowTabInfo tabs = 3;
  //
  CampusLabel switch_label = 4;
  //
  string title = 5;
  //
  repeated CampusBannerInfo banner = 6;
  //
  CampusLabel invite_label = 7;
  //
  CampusNoticeInfo notice = 8;
  //
  TopicSquareInfo topic_square = 9;
  //
  string campus_badge = 10;
  //
  string campus_background = 11;
  //
  string campus_motto = 12;
  //
  CampusLabel mng_entry = 13;
  //
  string campus_intro = 14;
  //
  string campus_name_link = 15;
  //
  string bottom_left_text = 16;
}

//
message CampusTopicRcmdFeedReply {
  //
  repeated DynamicItem list = 1;
  //
  string toast = 2;
  //
  bool has_more = 3;
  //
  string offset = 4;
  //
  IconButton join_discuss = 5;
}

//
message CampusTopicRcmdFeedReq {
  //
  int64 campus_id = 1;
  //
  string offset = 2;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
  //
  int32 local_time = 4;
  //
  CampusReqFromType from_type = 5;
}

//
message CardParagraph {
  //
  ModuleAdditional additional_card = 1;
  //
  string biz_id = 3;
  //
  LinkNodeType biz_type = 2;
}

// 动态卡片列表
message CardVideoDynList {
  // 动态列表
  repeated DynamicItem list = 1;
  // 更新的动态数
  int64 update_num = 2;
  // 历史偏移
  string history_offset = 3;
  // 更新基础信息
  string update_baseline = 4;
  // 是否还有更多数据
  bool has_more = 5;
}

// 视频页-我的追番
message CardVideoFollowList {
  // 查看全部(跳转链接)
  string view_all_link = 1;
  // 追番列表
  repeated FollowListItem list = 2;
}

// 视频页-最近访问
message CardVideoUpList {
  // 标题展示文案
  string title = 1;
  // up主列表
  repeated UpListItem list = 2;
  // 服务端生成的透传上报字段
  string footprint = 3;
  // 直播数
  int32 show_live_num = 4;
  // 跳转label
  UpListMoreLabel more_label = 5;
  // 标题开关(综合页)
  int32 title_switch = 6;
  // 是否展示右上角查看更多label
  bool show_more_label = 7;
  // 是否在快速消费页查看更多按钮
  bool show_in_personal = 8;
  // 是否展示右侧查看更多按钮
  bool show_more_button = 9;
  //
  repeated UpListItem list_second = 10;
}

//
message ChannelInfo {
  //
  int64 channel_id = 1;
  //
  string channel_name = 2;
  //
  string desc = 3;
  //
  bool is_atten = 4;
  //
  string type_icon = 5;
  //
  repeated RcmdItem items = 6;
  //
  string icon = 7;
  //
  string jump_uri = 8;
}

// 评论外露展示项
message CmtShowItem {
  // 用户mid
  int64 uid = 1;
  // 用户昵称
  string uname = 2;
  // 点击跳转链接
  string uri = 3;
  // 评论内容
  string comment = 4;
}

//
message Colors {
  //
  string color_day = 1;
  //
  string color_night = 2;
}

// 精选评论区
message CommentDetail {
  // 该功能能不能用
  bool can_modify = 1;
  // up关闭评论区功能 1允许关闭 0允许开放
  // 精选评论区功能 1允许停止评论精选 0允许评论精选
  int64 status = 2;
}

//
message CommonShareCardInfo {
  //
  int64 sketch_id = 1;
  //
  int64 biz_type = 2;
  //
  int64 biz_id = 3;
}

//
message Config {
  //
  bool story_vertical_exp = 1;
  //
  int64 detail_view_bits = 2;
}

//
enum CoverIcon {
  cover_icon_none = 0;    // 占位 啥都不展示
  cover_icon_play = 1;    // 播放icon
  cover_icon_danmaku = 2; //
  cover_icon_up = 3;      //
  cover_icon_vt = 4;      // ? 竖屏模式 icon
}

//
message CoverIconWithText {
  //
  int32 icon = 1;
  //
  string text = 2;
}

// 装扮卡片-粉丝勋章信息
message DecoCardFan {
  // 是否是粉丝
  int32 is_fan = 1;
  // 数量
  int32 number = 2;
  // 数量 str
  string number_str = 3;
  // 颜色
  string color = 4;
}

// 装扮卡片
message DecorateCard {
  // 装扮卡片id
  int64 id = 1;
  // 装扮卡片链接
  string card_url = 2;
  // 装扮卡片点击跳转链接
  string jump_url = 3;
  // 粉丝样式
  DecoCardFan fan = 4;
}

// 文本描述
message Description {
  // 文本内容
  string text = 1;
  // 文本类型
  DescType type = 2;
  // 点击跳转链接
  string uri = 3;
  // emoji类型
  EmojiType emoji_type = 4;
  // 商品类型
  string goods_type = 5;
  // 前置Icon
  string icon_url = 6;
  // icon_name
  string icon_name = 7;
  // 资源ID
  string rid = 8;
  // 商品卡特殊字段
  ModuleDescGoods goods = 9;
  // 文本原始文案
  string orig_text = 10;
  //
  int32 emoji_size = 11;
  //
  EmojiSizeSpec emoji_size_spec = 12;
}

// 文本类型
enum DescType {
  desc_type_none = 0;         // 占位
  desc_type_text = 1;         // 文本
  desc_type_aite = 2;         // @
  desc_type_lottery = 3;      // 抽奖
  desc_type_vote = 4;         // 投票
  desc_type_topic = 5;        // 话题
  desc_type_goods = 6;        // 商品
  desc_type_bv = 7;           // bv
  desc_type_av = 8;           // av
  desc_type_emoji = 9;        // 表情
  desc_type_user = 10;        // 外露用户
  desc_type_cv = 11;        // 专栏
  desc_type_vc = 12;        // 小视频
  desc_type_web = 13;        // 网址
  desc_type_taobao = 14;     // 淘宝
  desc_type_mail = 15;        // 邮箱
  desc_type_ogv_season = 16;  // 番剧season
  desc_type_ogv_ep = 17;      // 番剧ep
  desc_type_search_word = 18; //
}


// 尺寸信息
message Dimension {
  //
  int64 height = 1;
  //
  int64 width = 2;
  //
  int64 rotate = 3;
}

//
enum DisableState {
  highlight = 0; // 高亮
  gary = 1;      // 置灰(按钮不可点击)
}

// 动态通用附加卡-follow/取消follow-响应
message DynAdditionCommonFollowReply {
  //
  AdditionalButtonStatus status = 1;
}

// 动态通用附加卡-follow/取消follow-请求
message DynAdditionCommonFollowReq {
  //
  AdditionalButtonStatus status = 1;
  //
  string dyn_id = 2;
  //
  string card_type = 3;
}

// 最近访问-个人feed流列表-返回
message DynAllPersonalReply {
  // 动态列表
  repeated DynamicItem list = 1;
  // 偏移量
  string offset = 2;
  // 是否还有更多数据
  bool has_more = 3;
  // 已读进度
  string read_offset = 4;
  // 关注状态
  Relation relation = 5;
  // 顶部预约卡
  TopAdditionUP addition_up = 6;
  //
  string title = 7;
  //
  string title_sub = 8;
}

// 最近访问-个人feed流列表-请求
message DynAllPersonalReq {
  // 被访问者的 UID
  int64 host_uid = 1;
  // 偏移量 第一页可传空
  string offset = 2;
  // 标明下拉几次
  int32 page = 3;
  // 是否是预加载 默认是1；客户端预加载。1：是预加载，不更新已读进度，不会影响小红点；0：非预加载，更新已读进度
  int32 is_preload = 4;
  // 秒开参数 新版本废弃，统一使用player_args
  PlayurlParam playurl_param = 5;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 6;
  // 服务端生成的透传上报字段
  string footprint = 7;
  // 来源
  string from = 8;
  // 秒开用
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 9;
  //
  string personal_extra = 10;
}

// 动态综合页-响应
message DynAllReply {
  // 卡片列表
  DynamicList dynamic_list = 1;
  // 顶部up list
  CardVideoUpList up_list = 2;
  // 话题广场
  TopicList topic_list = 3;
  // 无关注推荐
  Unfollow unfollow = 4;
  // 分区UP推荐
  DynRegionRcmd region_rcmd = 5;
  //
  Config config = 6;
}

// 动态综合页-请求
message DynAllReq {
  // 透传 update_baseline
  string update_baseline = 1;
  // 透传 history_offset
  string offset = 2;
  // 向下翻页数
  int32 page = 3;
  // 刷新方式 1向上刷新 2向下翻页
  Refresh refresh_type = 4;
  // 秒开参数 新版本废弃，统一使用player_args
  PlayurlParam playurl_param = 5;
  // 综合页当前更新的最大值
  string assist_baseline = 6;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 7;
  // 推荐up主入参(new的时候传)
  RcmdUPsParam rcmd_ups_param = 8;
  // 广告参数
  AdParam ad_param = 9;
  // 是否冷启
  int32 cold_start = 10;
  // 来源
  string from = 11;
  // 秒开参数
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 12;
  //
  int64 tab_recall_uid = 13;
  //
  int32 tab_recall_type = 14;
}

// 最近访问-标记已读-请求
message DynAllUpdOffsetReq {
  // 被访问者的UID
  int64 host_uid = 1;
  // 用户已读进度
  string read_offset = 2;
  // 服务端生成的透传上报字段
  string footprint = 3;
  //
  string personal_extra = 4;
}


// 动态卡片
message DynamicItem {
  // 动态卡片类型
  DynamicType card_type = 1;
  // 转发类型下，源卡片类型
  DynamicType item_type = 2;
  // 模块内容
  repeated Module modules = 3;
  // 操作相关字段
  Extend extend = 4;
  // 该卡片下面是否含有折叠卡
  int32 has_fold = 5;
  // 透传到客户端的埋点字段。
  string server_info = 6;
}

//动态卡片列表
message DynamicList {
  // 动态列表
  repeated DynamicItem list = 1;
  // 更新的动态数
  int64 update_num = 2;
  // 历史偏移
  string history_offset = 3;
  // 更新基础信息
  string update_baseline = 4;
  // 是否还有更多数据
  bool has_more = 5;
}

// 枚举-动态类型
enum DynamicType {
  dyn_none = 0;          // 占位
  forward = 1;           // 转发
  av = 2;                // 稿件: ugc、小视频、短视频、UGC转PGC
  pgc = 3;               // pgc：番剧、PGC番剧、PGC电影、PGC电视剧、PGC国创、PGC纪录片
  courses = 4;           // 付费更新批次
  fold = 5;              // 折叠
  word = 6;              // 纯文字
  draw = 7;              // 图文
  article = 8;           // 专栏 原仅phone端
  music = 9;             // 音频 原仅phone端
  common_square = 10;    // 通用卡 方形
  common_vertical = 11;  // 通用卡 竖形
  live = 12;             // 直播卡 只有转发态
  medialist = 13;        // 播单 原仅phone端 只有转发态
  courses_season = 14;   // 付费更新批次 只有转发态
  ad = 15;               // 广告卡
  applet = 16;           // 小程序卡
  subscription = 17;     // 订阅卡
  live_rcmd = 18;        // 直播推荐卡
  banner = 19;           // 通栏
  ugc_season = 20;       // 合集卡
  subscription_new = 21; // 新订阅卡
  story = 22;            //
  topic_rcmd = 23;       //
  cour_up = 24;          //
  topic_set = 25;        //
  notice = 26;           //
  text_notice = 27;      //
}

// 动态详情页-响应
message DynDetailReply {
  // 动态详情
  DynamicItem item = 1;
}

// 动态详情页-请求
message DynDetailReq {
  // up主uid
  int64 uid = 1;
  // 动态ID
  string dynamic_id = 2;
  // 动态类型
  int64 dyn_type = 3;
  // 业务方资源id
  int64 rid = 4;
  // 广告参数
  AdParam ad_param = 5;
  // From来源
  string from = 6;
  // 秒开参数
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 7;
  // 分享id
  string share_id = 8;
  // 分享类型
  // 1:文字 2:图片 3:链接 4:视频 5:音频
  int32 share_mode = 9;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 10;
  // pattern
  string pattern = 11;
  //
  Config config = 12;
}

// 批量动态id获取动态详情-响应
message DynDetailsReply {
  // 动态列表
  repeated DynamicItem list = 1;
}

// 批量动态id获取动态详情-请求
message DynDetailsReq {
  // 动态id
  string dynamic_ids = 1;
  // 秒开参数 新版本废弃，统一使用player_args
  PlayurlParam playurl_param = 2;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 3;
  // 秒开参数
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
  //
  Config config = 5;
}

// 动态小卡类型
enum DynExtendType {
  dyn_ext_type_none = 0;     // 占位
  dyn_ext_type_topic = 1;    // 话题小卡
  dyn_ext_type_lbs = 2;      // lbs小卡
  dyn_ext_type_hot = 3;      // 热门小卡
  dyn_ext_type_game = 4;     // 游戏小卡
  dyn_ext_type_common = 5;   // 通用小卡
  dyn_ext_type_biliCut = 6;  // 必剪小卡
  dyn_ext_type_ogv = 7;      // ogv小卡
  dyn_ext_type_auto_ogv = 8; // 自动附加ogv小卡
}

// 动态发布生成临时卡-响应
message DynFakeCardReply {
  // 动态卡片
  DynamicItem item = 1;
}

// 动态发布生成临时卡-请求
message DynFakeCardReq {
  //卡片内容json string
  string content = 1;
}

//
message DynFeatureGate {
  //
  bool enhanced_interaction = 1;
}

//
message DynFriendReply {
  //
  repeated DynamicItem dyn_list = 1;
  //
  bool has_more = 2;
  //
  string offset = 3;
}

//
message DynFriendReq {
  //
  string offset = 1;
  //
  int32 local_time = 2;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
}

// 轻浏览-响应
message DynLightReply {
  // 卡片列表
  DynamicList dynamic_list = 1;
}

// 轻浏览-请求
message DynLightReq {
  // 透传 history_offset
  string history_offset = 1;
  // 向下翻页数
  int32 page = 2;
  // 来源
  string from = 3;
  // 秒开参数
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 5;
  //
  int32 from_type = 6;
  //
  int64 fake_uid = 7;
}

// 查看更多-列表-响应
message DynMixUpListViewMoreReply {
  //
  repeated MixUpListItem items = 1;
  //
  string  search_default_text = 2;
  // 排序类型列表
  repeated SortType  sort_types = 3;
  // 是否展示更多的排序策略
  bool show_more_sort_types = 4;
  // 默认排序策略
  int32 default_sort_type = 5;
}

// 查看更多-请求
message DynMixUpListViewMoreReq {
  // 排序策略
  // 1:推荐排序 2:最常访问 3:最近关注，其他值为默认排序
  int32 sort_type = 1;
}

// 动态模块类型
enum DynModuleType {
  module_none = 0;               // 占位
  module_author = 1;             // 发布人模块
  module_dispute = 2;            // 争议小黄条
  module_desc = 3;               // 描述文案
  module_dynamic = 4;            // 动态卡片
  module_forward = 5;            // 转发模块
  module_likeUser = 6;           // 点赞用户(废弃)
  module_extend = 7;             // 小卡模块
  module_additional = 8;         // 附加卡
  module_stat = 9;               // 计数信息
  module_fold = 10;              // 折叠
  module_comment = 11;           // 评论外露(废弃)
  module_interaction = 12;       // 外露交互模块(点赞、评论)
  module_author_forward = 13;    // 转发卡的发布人模块
  module_ad = 14;                // 广告卡模块
  module_banner = 15;            // 通栏模块
  module_item_null = 16;         // 获取物料失败模块
  module_share_info = 17;        // 分享组件
  module_recommend = 18;         // 相关推荐模块
  module_stat_forward = 19;      // 转发卡计数信息
  module_top = 20;               // 顶部模块
  module_bottom = 21;            // 底部模块
  module_story = 22;             //
  module_topic = 23;             //
  module_topic_details_ext = 24; //
  module_top_tag = 25;           //
  module_topic_brief = 26;       //
  module_title = 27;             //
  module_button = 28;
  module_notice = 29;
  module_opus_summary = 30;
  module_copyright = 31;
  module_paragraph = 32;
  module_blocked = 33;
  module_text_notice = 34;
  module_opus_collection = 35;
}

// 推荐页-响应
message DynRcmdReply {
  // 推荐页返回参数
  DynRegionRcmd region_rcmd = 1;
  //
  DynamicList dynamic_list = 2;
}

// 推荐页-请求
message DynRcmdReq {
  // 秒开参数
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 1;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 2;
  //
  int64 fake_uid = 3;
  //
  bool is_refresh = 4;
}

// 关注推荐up主换一换-响应
message DynRcmdUpExchangeReply {
  // 无关注推荐
  Unfollow unfollow = 1;
}

// 关注推荐up主换一换-请求
message DynRcmdUpExchangeReq {
  // 登录用户id
  int64 uid = 1;
  // 上一次不感兴趣的ts，单位：秒；该字段透传给搜索
  int64 dislikeTs = 2;
  // 需要与服务端确认或参照客户端现有参数
  string from = 3;
}

// 推荐页返回参数
message DynRegionRcmd {
  // 分区推荐项目列表
  repeated DynRegionRcmdItem items = 1;
  // 分区聚类推荐选项
  RcmdOption opts = 2;
}

// 分区推荐项目
message DynRegionRcmdItem {
  // 分区id
  int64 rid = 1;
  // 标题
  string title = 2;
  // 推荐模块
  repeated ModuleRcmd items = 3;
}

//
message DynScreenTab {
  //
  string title = 1;
  //
  string name = 2;
  //
  bool default_tab = 3;
  //
  bool strategy_show_on_entrance = 4;
  //
  bool strategy_show_on_refresh = 5;
  //
  bool strategy_show_on_pull_up = 6;
}

//
message DynSearchReply {
  //
  SearchChannel channel_info = 1;
  //
  SearchTopic search_topic = 2;
  //
  SearchInfo search_info = 3;
}

//
message DynSearchReq {
  //
  string keyword = 1;
  //
  int32 page = 2;
  //
  int32 local_time = 3;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
}

//
message DynServerDetailsReply {
  //
  map<int64, DynamicItem> items = 1;
}

//
message DynServerDetailsReq {
  //
  int32 local_time = 2;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
  //
  string mobi_app = 4;
  //
  string device = 5;
  //
  string buvid = 6;
  //
  int64 build = 7;
  //
  int64 mid = 8;
  //
  string platform = 9;
  //
  bool is_master = 10;
  //
  repeated int64 top_dynamic_ids = 11;
}

// 空间页动态-请求
message DynSpaceReq {
  // 被访问者，也就是空间主人的uid
  int64 host_uid = 1;
  // 动态偏移history_offset
  string history_offset = 2;
  // 秒开参数
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 4;
  // 向下翻页数，默认从1开始
  int64 page = 5;
  // 来源，空间页：space，直播tab：live
  string from = 6;
}

// 空间页动态-响应
message DynSpaceRsp {
  // 卡片列表
  repeated DynamicItem list = 1;
  // 历史偏移
  string history_offset = 2;
  // 是否还有更多数据
  bool has_more = 3;
}

//
message DynSpaceSearchDetailsReply {
  //
  map<int64, DynamicItem> items = 1;
}

//
message DynSpaceSearchDetailsReq {
  //
  repeated string search_words = 2;
  //
  int32 local_time = 3;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
  //
  string mobi_app = 5;
  //
  string device = 6;
  //
  string buvid = 7;
  //
  int64 build = 8;
  //
  int64 mid = 9;
  //
  string platform = 10;
  //
  string ip = 11;
  //
  int32 net_type = 12;
  //
  int32 tf_type = 13;
}

//
message DynTab {
  //
  string title = 1;
  //
  string uri = 2;
  //
  string bubble = 3;
  //
  int32 red_point = 4;
  //
  int64 city_id = 5;
  //
  int32 is_popup = 6;
  //
  Popup popup = 7;
  //
  bool default_tab = 8;
  //
  string sub_title = 9;
  //
  string anchor = 10;
  //
  string internal_test = 11;
  //
  int32 type = 12;
  //
  DynTab back_up = 13;
}

//
message DynTabReply {
  //
  repeated DynTab dyn_tab = 1;
  //
  repeated DynScreenTab screen_tab = 2;
}

//
message DynTabReq {
  //
  int32 teenagers_mode = 1;
  //
  CampusReqFromType from_type = 2;
}

// 动态点赞-请求
message DynThumbReq {
  // 用户uid
  int64 uid = 1;
  // 动态id
  string dyn_id = 2;
  // 动态类型(透传extend中的dyn_type)
  int64 dyn_type = 3;
  // 业务方资源id
  string rid = 4;
  // 点赞类型
  ThumbType type = 5;
}

// 最近访问-个人feed流列表-响应
message DynVideoPersonalReply {
  // 动态列表
  repeated DynamicItem list = 1;
  // 偏移量
  string offset = 2;
  // 是否还有更多数据
  bool has_more = 3;
  // 已读进度
  string read_offset = 4;
  // 关注状态
  Relation relation = 5;
  // 顶部预约卡
  TopAdditionUP addition_up = 6;
  //
  string title = 7;
  //
  string title_sub = 8;
}

// 最近访问-个人feed流列表-请求
message DynVideoPersonalReq {
  // 被访问者的 UID
  int64 host_uid = 1;
  // 偏移量 第一页可传空
  string offset = 2;
  // 标明下拉几次
  int32 page = 3;
  // 是否是预加载
  int32 is_preload = 4;
  // 秒开参数 新版本废弃，统一使用player_args
  PlayurlParam playurl_param = 5;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 6;
  // 服务端生成的透传上报字段
  string footprint = 7;
  // 来源
  string from = 8;
  // 秒开参数
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 9;
  //
  int64 pegasus_avid = 10;
  //
  string personal_extra = 11;
}

// 动态视频页-响应
message DynVideoReply {
  // 卡片列表
  CardVideoDynList dynamic_list = 1;
  // 动态卡片
  CardVideoUpList video_up_list = 2;
  // 视频页-我的追番
  CardVideoFollowList video_follow_list = 3;
}

// 动态视频页-请求
message DynVideoReq {
  // 透传 update_baseline
  string update_baseline = 1;
  // 透传 history_offset
  string offset = 2;
  // 向下翻页数
  int32 page = 3;
  // 刷新方式
  // 1:向上刷新 2:向下翻页
  Refresh refresh_type = 4;
  // 秒开参数 新版本废弃，统一使用player_args
  PlayurlParam playurl_param = 5;
  // 综合页当前更新的最大值
  string assist_baseline = 6;
  // 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
  int32 local_time = 7;
  // 来源
  string from = 8;
  // 秒开参数
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 9;
}

// 最近访问-标记已读-请求
message DynVideoUpdOffsetReq {
  // 被访问者的UID
  int64 host_uid = 1;
  // 用户已读进度
  string read_offset = 2;
  // 服务端生成的透传上报字段
  string footprint = 3;
  //
  string personal_extra = 4;
}

// 投票操作-响应
message DynVoteReply {
  // 投票详情
  AdditionVote2 item = 1;
  // 投票操作返回状态
  string toast = 2;
}

// 投票操作-请求
message DynVoteReq {
  // 投票ID
  int64 vote_id = 1;
  // 选项索引数组
  repeated int64 votes = 2;
  // 状态
  VoteStatus status = 3;
  // 动态ID
  string dynamic_id = 4;
  // 是否分享
  bool share = 5;
}

//
message EmojiSizeSpec {
  //
  int64 width = 1;
}

// 表情包类型
enum EmojiType {
  emoji_none = 0; // 占位
  emoji_old = 1;  // emoji旧类型
  emoji_new = 2;  // emoji新类型
  vip = 3;        // 大会员表情
}

//
message EmoteNode {
  //
  string emote_url = 2;
  //
  EmoteSize emote_width = 3;
  //
  ImgInlineCfg inline_img_cfg = 5;
  //
  bool is_inline_img = 4;
  //
  WordNode raw_text = 1;
}

//
message EmoteSize {
  //
  double width = 1;
  //
  int32 emoji_size = 2;
}

// 附加大卡-电竞卡样式
enum EspaceStyle {
  moba = 0; // moba类
}

// 扩展字段，用于动态部分操作使用
message Extend {
  // 动态id
  string dyn_id_str = 1;
  // 业务方id
  string business_id = 2;
  // 源动态id
  string orig_dyn_id_str = 3;
  // 转发卡：用户名
  string orig_name = 4;
  // 转发卡：图片url
  string orig_img_url = 5;
  // 转发卡：文字内容
  repeated Description orig_desc = 6;
  // 填充文字内容
  repeated Description desc = 7;
  // 被转发的源动态类型
  DynamicType orig_dyn_type = 8;
  // 分享到站外展示类型
  string share_type = 9;
  // 分享的场景
  string share_scene = 10;
  // 是否快速转发
  bool is_fast_share = 11;
  // r_type 分享和转发
  int32 r_type = 12;
  // 数据源的动态类型
  int64 dyn_type = 13;
  // 用户id
  int64 uid = 14;
  // 卡片跳转
  string card_url = 15;
  // 透传字段
  google.protobuf.Any source_content = 16;
  // 转发卡：用户头像
  string orig_face = 17;
  // 评论跳转
  ExtendReply reply = 18;
  //
  string track_id = 19;
  //
  ModuleOpusSummary opus_summary = 20;
  //
  OnlyFansProperty only_fans_property = 21;
  //
  DynFeatureGate feature_gate = 22;
  //
  bool is_in_audit = 23;
  //
  map<string, string> history_report = 24;
}

// 评论扩展
message ExtendReply {
  // 基础跳转地址
  string uri = 1;
  // 参数部分
  repeated ExtendReplyParam params = 2;
}

// 评论扩展参数部分
message ExtendReplyParam {
  // 参数名
  string key = 1;
  // 参数值
  string value = 2;
}

// 动态-拓展小卡模块-通用小卡
message ExtInfoCommon {
  // 标题
  string title = 1;
  // 跳转地址
  string uri = 2;
  // 小图标
  string icon = 3;
  // poiType
  int32 poi_type = 4;
  // 类型
  DynExtendType type = 5;
  // 客户端埋点用
  string sub_module = 6;
  // 行动点文案
  string action_text = 7;
  // 行动点链接
  string action_url = 8;
  // 资源rid
  int64 rid = 9;
  // 轻浏览是否展示
  bool is_show_light = 10;
}

// 动态-拓展小卡模块-游戏小卡
message ExtInfoGame {
  // 标题
  string title = 1;
  // 跳转地址
  string uri = 2;
  // 小图标
  string icon = 3;
}

// 动态-拓展小卡模块-热门小卡
message ExtInfoHot {
  // 标题
  string title = 1;
  // 跳转地址
  string uri = 2;
  // 小图标
  string icon = 3;
}

// 动态-拓展小卡模块-lbs小卡
message ExtInfoLBS {
  // 标题
  string title = 1;
  // 跳转地址
  string uri = 2;
  // 小图标
  string icon = 3;
  // poiType
  int32 poi_type = 4;
}

// 动态-拓展小卡模块-ogv小卡
message ExtInfoOGV {
  // ogv小卡
  repeated InfoOGV info_ogv = 1;
}

// 动态-拓展小卡模块-话题小卡
message ExtInfoTopic {
  // 标题-话题名
  string title = 1;
  // 跳转地址
  string uri = 2;
  // 小图标
  string icon = 3;
}

//
message FeedFilterReply {
  //
  string offset = 1;
  //
  bool has_more = 2;
  //
  repeated DynamicItem list = 3;
}

//
message FeedFilterReq {
  //
  string offset = 1;
  //
  string tab = 2;
  //
  int32 local_time = 3;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
  //
  AdParam ad_param = 5;
  //
  int32 cold_start = 6;
  //
  int64 page = 7;
}

//
message FetchTabSettingReply {
  //
  int32 status = 1;
}

// 折叠类型
enum FoldType {
  FoldTypeZore = 0;     // 占位
  FoldTypePublish = 1;  // 用户发布折叠
  FoldTypeFrequent = 2; // 转发超频折叠
  FoldTypeUnite = 3;    // 联合投稿折叠
  FoldTypeLimit = 4;    // 动态受限折叠
  FoldTypeTopicMerged = 5;
}

// 视频页-我的追番-番剧信息
message FollowListItem {
  // season_id
  int64 season_id = 1;
  // 标题
  string title = 2;
  // 封面图
  string cover = 3;
  // 跳转链接
  string url = 4;
  // new_ep
  NewEP new_ep = 5;
  // 子标题
  string sub_title = 6;
  // 卡片位次
  int64 pos = 7;
}

//
enum FollowType {
  ft_not_follow = 0; //
  ft_follow = 1;     //
}

// 动态-附加卡-商品卡-商品
message GoodsItem {
  // 图片
  string cover = 1;
  // schemaPackageName(Android用)
  string schema_package_name = 2;
  // 商品类型
  // 1:淘宝 2:会员购
  int32 source_type = 3;
  // 跳转链接
  string jump_url = 4;
  // 跳转文案
  string jump_desc = 5;
  // 标题
  string title = 6;
  // 摘要
  string brief = 7;
  // 价格
  string price = 8;
  // item_id
  int64 item_id = 9;
  // schema_url
  string schema_url = 10;
  // open_white_list
  repeated string open_white_list = 11;
  // use_web_v2
  bool user_web_v2 = 12;
  // ad mark
  string ad_mark = 13;
  //
  string app_name = 14;
  //
  GoodsJumpType jump_type = 15;
}

//
enum GoodsJumpType {
  goods_none = 0;
  goods_schema = 1;
  goods_url = 2;
}

//
message GuideBarInfo {
  //
  int32 show = 1;
  //
  int32 page = 2;
  //
  int32 position = 3;
  //
  string desc = 4;
  //
  int32 jump_page = 5;
  //
  int32 jump_position = 6;
}

// 高亮文本
message HighlightText {
  // 展示文本
  string text = 1;
  // 高亮类型
  HighlightTextStyle text_style = 2;
  //
  string jump_url = 3;
  //
  string icon = 4;
}

// 文本高亮枚举
enum HighlightTextStyle {
  style_none = 0;      // 默认
  style_highlight = 1; // 高亮
}

//
enum HomePageTabSttingStatus {
  SETTING_INVALID = 0;
  SETTING_OPEN = 1;
  SETTING_CLOSE = 2;
}

//
message HomeSubscribeReply {
  //
  int32 online = 1;
}

//
message HomeSubscribeReq {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
}

//
message IconBadge {
  //
  string icon_bg_url = 1;
  //
  string text = 2;
}

//
message IconButton {
  //
  string text = 1;
  //
  string icon_head = 2;
  //
  string icon_tail = 3;
  //
  string jump_uri = 4;
}

//
enum IconResLocal {
  ICON_RES_LOCAL_NONE = 0;
  ICON_RES_LOCAL_LIVE = 1;
}

//
message ImageSet {
  //
  string img_day = 1;
  //
  string img_dark = 2;
}

// 枚举-附加卡样式
enum ImageStyle {
  add_style_vertical = 0; //
  add_style_square = 1;   //
}

//
message ImgInlineCfg {
  //
  double width = 1;
  //
  double height = 2;
  //
  Colors color = 3;
}

// 动态-拓展小卡模块-ogv小卡-(one of 片单、榜单、分区)
message InfoOGV {
  // 标题
  string title = 1;
  // 跳转地址
  string uri = 2;
  // 小图标
  string icon = 3;
  // 客户端埋点用
  string sub_module = 4;
}

//
message InteractionFace {
  //
  int64 mid = 1;
  //
  string face = 2;
}

// 外露交互模块
message InteractionItem {
  // 外露模块类型
  LocalIconType icon_type = 1;
  // 外露模块文案
  repeated Description desc = 2;
  // 外露模块uri相关 根据type不同用法不同
  string uri = 3;
  // 动态id
  string dynamic_id = 4;
  // 评论mid
  int64 comment_mid = 6;
  //
  repeated InteractionFace faces = 7;
  //
  InteractionStat stat = 8;
  //
  string icon = 9;
}

//
message InteractionStat {
  //
  int64 like = 1;
}

//
message LbsPoiDetail {
  //
  string poi = 1;
  //
  int64 type = 2;
  //
  repeated string base_pic = 3;
  //
  repeated string cover = 4;
  //
  string address = 5;
  //
  string title = 6;
}

//
message LbsPoiReply {
  //
  bool has_more = 1;
  //
  string offset = 2;
  //
  LbsPoiDetail detail = 3;
  //
  repeated DynamicItem list = 4;
}

//
message LbsPoiReq {
  //
  string poi = 1;
  //
  int64 type = 2;
  //
  string offset = 3;
  //
  int32 refresh_type = 4;
  //
  int32 local_time = 5;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 6;
}

//
message LegacyTopicFeedReply {
  //
  repeated DynamicItem list = 1;
  //
  bool has_more = 2;
  //
  string offset = 3;
  //
  repeated SortType supported_sort_types = 4;
  //
  repeated SortType feed_card_filters = 5;
}

//
message LegacyTopicFeedReq {
  //
  int64 topic_id = 1;
  //
  string topic_name = 2;
  //
  string offset = 3;
  //
  SortType sort_type = 4;
  //
  SortType card_filter = 5;
}

//
enum LightFromType {
  from_login = 0;   //
  from_unlogin = 1; //
}

// 点赞动画
message LikeAnimation {
  // 开始动画
  string begin = 1;
  // 过程动画
  string proc = 2;
  // 结束动画
  string end = 3;
  // id
  int64 like_icon_id = 4;
}

// 点赞拓展信息
message LikeInfo {
  // 点赞动画
  LikeAnimation animation = 1;
  // 是否点赞
  bool is_like = 2;
}

// 点赞列表-响应
message LikeListReply {
  // 用户模块列表
  repeated ModuleAuthor list = 1;
  // 是否还有更多数据
  bool has_more = 2;
  // 点赞总数
  int64 total_count = 3;
}

// 点赞列表-请求
message LikeListReq {
  // 动态ID
  string dynamic_id = 1;
  // 动态类型
  int64 dyn_type = 2;
  // 业务方资源id
  int64 rid = 3;
  //上一页最后一个uid
  int64 uid_offset = 4;
  // 下拉页数
  int32 page = 5;
}

// 点赞用户
message LikeUser {
  // 用户mid
  int64 uid = 1;
  // 用户昵称
  string uname = 2;
  // 点击跳转链接
  string uri = 3;
}

//
message LineParagraph {
  //
  MdlDynDrawItem pic = 1;
}

//
message LinkNode {
  //
  WordNode show_text = 1;
  //
  string link = 2;
  //
  string icon = 3;
  //
  string icon_suffix = 4;
  //
  string link_type = 5;
  //
  LinkNodeType link_type_enum = 6;
  //
  string biz_id = 7;
  //
  int64 timestamp = 8;
  //
  GoodsItem goods_item = 9;
  //
  NoteVideoTS note_video_ts = 10;
}

//
enum LinkNodeType {
  INVALID = 0;
  VIDEO = 1;
  RESERVE = 2;
  VOTE = 3;
  LIVE = 4;
  LOTTERY = 5;
  MATCH = 6;
  GOODS = 7;
  OGV_SS = 8;
  OGV_EP = 9;
  MANGA = 10;
  CHEESE = 11;
  VIDEO_TS = 12;
  AT = 13;
  HASH_TAG = 14;
  ARTICLE = 15;
  URL = 16;
  MAIL = 17;
  LBS = 18;
  ACTIVITY = 19;
  ATTACH_CARD_OFFICIAL_ACTIVITY = 20;
  GAME = 21;
  DECORATION = 22;
  UP_TOPIC = 23;
  UP_ACTIVITY = 24;
  UP_MAOER = 25;
  MEMBER_GOODS = 26;
  OPENMALL_UP_ITEMS = 27;
  SEARCH = 28;
}

// 直播信息
message LiveInfo {
  // 是否在直播
  // 0:未直播 1:正在直播 (废弃)
  int32 is_living = 1;
  // 跳转链接
  string uri = 2;
  // 直播状态
  LiveState live_state = 3;
}

//
message LivePendant {
  //
  string text = 1;
  //
  string icon = 2;
  //
  int64 pendant_id = 3;
}

// 直播状态
enum LiveState {
  live_none = 0;     // 未直播
  live_live = 1;     // 直播中
  live_rotation = 2; // 轮播中
}

// 外露模块类型
enum LocalIconType {
  local_icon_comment = 0; //
  local_icon_like = 1;    //
  local_icon_avatar = 2;
  local_icon_cover = 3;
  local_icon_like_and_forward = 4;
}

// 动态-附加卡-电竞卡-战队
message MatchTeam {
  // 战队ID
  int64 id = 1;
  // 战队名
  string name = 2;
  // 战队图标
  string cover = 3;
  // 日间色值
  string color = 4;
  // 夜间色值
  string night_color = 5;
}

//
enum MdlBlockedStyle {
  BLOCKED_STYLE_DEFAULT = 0;
  BLOCKED_STYLE_IN_AUDIT = 1;
  BLOCKED_STYLE_ONLY_FANS_LIST = 2;
  BLOCKED_STYLE_ONLY_FANS_VIDEO = 3;
}

// 动态列表渲染部分-详情模块-小程序/小游戏
message MdlDynApplet {
  // 小程序id
  int64 id = 1;
  // 跳转地址
  string uri = 2;
  // 主标题
  string title = 4;
  // 副标题
  string sub_title = 5;
  // 封面图
  string cover = 6;
  // 小程序icon
  string icon = 7;
  // 小程序标题
  string label = 8;
  // 按钮文案
  string button_title = 9;
}

// 动态-详情模块-稿件
message MdlDynArchive {
  // 标题
  string title = 1;
  // 封面图
  string cover = 2;
  // 秒开地址
  string uri = 3;
  // 视频封面展示项 1
  string cover_left_text_1 = 4;
  // 视频封面展示项 2
  string cover_left_text_2 = 5;
  // 封面视频展示项 3
  string cover_left_text_3 = 6;
  // avid
  int64 avid = 7;
  // cid
  int64 cid = 8;
  // 视频源类型
  MediaType media_type = 9;
  // 尺寸信息
  Dimension dimension = 10;
  // 角标，多个角标之前有间距
  repeated VideoBadge badge = 11;
  // 是否能够自动播放
  bool  can_play = 12;
  // stype
  VideoType stype = 13;
  // 是否PGC
  bool isPGC = 14;
  // inline播放地址
  string inlineURL = 15;
  // PGC的epid
  int64 EpisodeId = 16;
  // 子类型
  int32 SubType = 17;
  // PGC的ssid
  int64 PgcSeasonId = 18;
  // 播放按钮
  string play_icon = 19;
  // 时长
  int64 duration = 20;
  // 跳转地址
  string jump_url = 21;
  // 番剧是否为预览视频
  bool is_preview = 22;
  // 新角标，多个角标之前没有间距
  repeated VideoBadge badge_category = 23;
  // 当前是否是pgc正片
  bool is_feature = 24;
  // 是否是预约召回
  ReserveType reserve_type = 25;
  // bvid
  string bvid = 26;
  // 播放数
  int32 view = 27;
  //
  bool show_premiere_badge = 28;
  //
  bool premiere_card = 29;
  //
  bool show_progress = 30;
  //
  int64 part_duration = 31;
  //
  int64 part_progress = 32;
}

// 动态列表渲染部分-详情模块-专栏模块
message MdlDynArticle {
  // 专栏id
  int64 id = 1;
  // 跳转地址
  string uri = 2;
  // 标题
  string title = 3;
  // 文案部分
  string desc = 4;
  // 配图
  repeated string covers = 5;
  // 阅读量标签
  string label = 6;
  // 模板类型
  int32 templateID = 7;
}

//
message MdlDynChargingArchive {
  //
  MdlDynArchive archive_info = 1;
  //
  bool has_permission = 2;
  //
  bool can_inline = 3;
  //
  string charging_bundle_name = 4;
  //
  int64 cfg_preview_end_toast_countdown = 5;
  //
  int64 cfg_normal_inline_toast_duration = 6;
  //
  OneLineText video_bottom_text_upper = 7;
  //
  OneLineText video_bottom_text_lower = 8;
  //
  string archive_cover = 9;
  //
  string archive_title = 10;
  //
  IconButton act_btn = 11;
  //
  OneLineText text_normal_inline_toast = 12;
  //
  OneLineText text_append_preview_end_toast = 13;
}

// 动态列表渲染部分-详情模块-通用
message MdlDynCommon {
  // 物料id
  int64 oid = 1;
  // 跳转地址
  string uri = 2;
  // 标题
  string title = 3;
  // 描述 漫画卡标题下第一行
  string desc = 4;
  // 封面
  string cover = 5;
  // 标签1 漫画卡标题下第二行
  string label = 6;
  // 所属业务类型
  int32 bizType = 7;
  // 镜像数据ID
  int64 sketchID = 8;
  // 卡片样式
  MdlDynCommonType style = 9;
  // 角标
  repeated VideoBadge badge = 10;
  //
  AdditionalButton button = 11;
}

//
enum MdlDynCommonType {
  mdl_dyn_common_none = 0;    //
  mdl_dyn_common_square = 1;  //
  mdl_dyn_common_vertica = 2; //
}

// 动态-详情模块-付费课程批次
message MdlDynCourBatch {
  // 标题
  string title = 1;
  // 封面图
  string cover = 2;
  // 跳转地址
  string uri = 3;
  // 展示项 1(本集标题)
  string text_1 = 4;
  // 展示项 2(更新了多少个视频)
  string text_2 = 5;
  // 角标
  VideoBadge badge = 6;
  // 播放按钮
  string play_icon = 7;
  //
  bool can_play = 8;
  //
  bool is_preview = 9;
  //
  string cover_left_text_1 = 10;
  //
  string cover_left_text_2 = 11;
  //
  string cover_left_text_3 = 12;
  //
  int64 avid = 13;
  //
  int64 cid = 14;
  //
  int64 epid = 15;
  //
  int64 duration = 16;
  //
  int64 season_id = 17;
}

// 动态-详情模块-付费课程系列
message MdlDynCourSeason {
  // 标题
  string title = 1;
  // 封面图
  string cover = 2;
  // 跳转地址
  string uri = 3;
  // 展示项 1(更新信息)
  string text_1 = 4;
  // 描述信息
  string desc = 5;
  // 角标
  VideoBadge badge = 6;
  // 播放按钮
  string play_icon = 7;
  //
  bool can_play = 8;
  //
  bool is_preview = 9;
  //
  int64 avid = 10;
  //
  int64 cid = 11;
  //
  int64 epid = 12;
  //
  int64 duration = 13;
  //
  int64 season_id = 14;
}

//
message MdlDynCourUp {
  //
  string title = 1;
  //
  string desc = 2;
  //
  string cover = 3;
  //
  string uri = 4;
  //
  string text_1 = 5;
  //
  VideoBadge badge = 6;
  //
  string play_icon = 7;
  //
  bool can_play = 8;
  //
  bool is_preview = 9;
  //
  int64 avid = 10;
  //
  int64 cid = 11;
  //
  int64 epid = 12;
  //
  int64 duration = 13;
  //
  int64 season_id = 14;
}

// 动态列表渲染部分-详情模块-图文模块
message MdlDynDraw {
  // 图片
  repeated MdlDynDrawItem items = 1;
  // 跳转地址
  string uri = 2;
  // 图文ID
  int64 id = 3;
  //
  bool is_draw_first = 4;
  //
  bool is_big_cover = 5;
  //
  bool is_article_cover = 6;
}

// 动态列表渲染部分-详情模块-图文
message MdlDynDrawItem {
  // 图片链接
  string src = 1;
  // 图片宽度
  int64 width = 2;
  // 图片高度
  int64 height = 3;
  // 图片大小
  float size = 4;
  // 图片标签
  repeated MdlDynDrawTag tags = 5;
}

// 动态列表渲染部分-详情模块-图文-标签
message MdlDynDrawTag {
  // 标签类型
  MdlDynDrawTagType type = 1;
  // 标签详情
  MdlDynDrawTagItem item = 2;
}

// 动态列表部分-详情模块-图文-标签详情
message MdlDynDrawTagItem {
  // 跳转链接
  string url = 1;
  // 标签内容
  string text = 2;
  // 坐标-x
  int64 x = 3;
  // 坐标-y
  int64 y = 4;
  // 方向
  int32 orientation = 5;
  // 来源
  // 0:未知 1:淘宝 2:自营
  int32 source = 6;
  // 商品id
  int64 item_id = 7;
  // 用户mid
  int64 mid = 8;
  // 话题id
  int64 tid = 9;
  // lbs信息
  string poi = 10;
  // 商品标签链接
  string schema_url = 11;
}

// 图文标签类型
enum MdlDynDrawTagType {
  mdl_draw_tag_none = 0;   // 占位
  mdl_draw_tag_common = 1; // 普通标签
  mdl_draw_tag_goods = 2;  // 商品标签
  mdl_draw_tag_user = 3;   // 用户昵称
  mdl_draw_tag_topic = 4;  // 话题名称
  mdl_draw_tag_lbs = 5;    // lbs标签
}

// 动态列表渲染部分-详情模块-转发模块
message MdlDynForward {
  // 动态转发核心模块 套娃
  DynamicItem item = 1;
  // 透传类型
  // 0:分享 1:转发
  int32 rtype = 2;
}

// 动态列表渲染部分-详情模块-直播
message MdlDynLive {
  // 房间号
  int64 id = 1;
  // 跳转地址
  string uri = 2;
  // 直播间标题
  string title = 3;
  // 直播间封面
  string cover = 4;
  // 标题1 例: 陪伴学习
  string cover_label = 5;
  // 标题2 例: 54.6万人气
  string cover_label2 = 6;
  // 直播状态
  LiveState live_state = 7;
  // 直播角标
  VideoBadge badge = 8;
  // 是否是预约召回
  ReserveType reserve_type = 9;
}

// 动态列表渲染部分-详情模块-直播推荐
message MdlDynLiveRcmd {
  // 直播数据
  string content = 1;
  // 是否是预约召回
  ReserveType reserve_type = 2;
  //
  LivePendant pendant = 3;
}

// 动态列表渲染部分-详情模块-播单
message MdlDynMedialist {
  // 播单id
  int64 id = 1;
  // 跳转地址
  string uri = 2;
  // 主标题
  string title = 3;
  // 副标题
  string sub_title = 4;
  // 封面图
  string cover = 5;
  // 封面类型
  int32 cover_type = 6;
  // 角标
  VideoBadge badge = 7;
}

// 动态列表渲染部分-详情模块-音频模块
message MdlDynMusic {
  // 音频id
  int64 id = 1;
  // 跳转地址
  string uri = 2;
  // upId
  int64 up_id = 3;
  // 歌名
  string title = 4;
  // 专辑封面
  string cover = 5;
  // 展示项1
  string label1 = 6;
  // upper
  string upper = 7;
}

// 动态-详情模块-pgc
message MdlDynPGC {
  // 标题
  string title = 1;
  // 封面图
  string cover = 2;
  // 秒开地址
  string uri = 3;
  // 视频封面展示项 1
  string cover_left_text_1 = 4;
  // 视频封面展示项 2
  string cover_left_text_2 = 5;
  // 封面视频展示项 3
  string cover_left_text_3 = 6;
  // cid
  int64 cid = 7;
  // season_id
  int64 season_id = 8;
  // epid
  int64 epid = 9;
  // aid
  int64 aid = 10;
  // 视频源类型
  MediaType media_type = 11;
  // 番剧类型
  VideoSubType sub_type = 12;
  // 番剧是否为预览视频
  bool is_preview = 13;
  // 尺寸信息
  Dimension dimension = 14;
  // 角标，多个角标之前有间距
  repeated VideoBadge badge = 15;
  // 是否能够自动播放
  bool  can_play = 16;
  // season
  PGCSeason season = 17;
  // 播放按钮
  string play_icon = 18;
  // 时长
  int64 duration = 19;
  // 跳转地址
  string jump_url = 20;
  // 新角标，多个角标之前没有间距
  repeated VideoBadge badge_category = 21;
  // 当前是否是pgc正片
  bool is_feature = 22;
}

//
message MdlDynShareChargingQA {
  //
  ImageSet background_img = 1;
  //
  ImageSet left_icon_img = 2;
  //
  string title = 3;
  //
  IconButton jump_button = 4;
  //
  string uri = 5;
  //
  CommonShareCardInfo share_card_meta_info = 6;
  //
  string title_prefix_bold = 7;
}

// 动态列表渲染部分-详情模块-订阅卡
message MdlDynSubscription {
  // 卡片物料id
  int64 id = 1;
  // 广告创意id
  int64 ad_id = 2;
  // 跳转地址
  string uri = 3;
  // 标题
  string title = 4;
  // 封面图
  string cover = 5;
  // 广告标题
  string ad_title = 6;
  // 角标
  VideoBadge badge = 7;
  // 小提示
  string tips = 8;
}

// 动态新附加卡
message MdlDynSubscriptionNew {
  //样式类型
  MdlDynSubscriptionNewStyle style = 1;
  // 新订阅卡数据
  oneof item {
    //
    MdlDynSubscription dyn_subscription = 2;
    // 直播推荐
    MdlDynLiveRcmd dyn_live_rcmd = 3;
  }
}

//
enum MdlDynSubscriptionNewStyle {
  mdl_dyn_subscription_new_style_nont = 0; // 占位
  mdl_dyn_subscription_new_style_live = 1; // 直播
  mdl_dyn_subscription_new_style_draw = 2; // 图文
}

//
message MdlDynTopicSet {
  //
  repeated TopicItem topics = 1;
  //
  IconButton more_btn = 2;
  //
  int64 topic_set_id = 3;
  //
  int64 push_id = 4;
}

// 动态列表渲染部分-UGC合集
message MdlDynUGCSeason {
  // 标题
  string title = 1;
  // 封面图
  string cover = 2;
  // 秒开地址
  string uri = 3;
  // 视频封面展示项 1
  string cover_left_text_1 = 4;
  // 视频封面展示项 2
  string cover_left_text_2 = 5;
  // 封面视频展示项 3
  string cover_left_text_3 = 6;
  // 卡片物料id
  int64 id = 7;
  // inline播放地址
  string inlineURL = 8;
  // 是否能够自动播放
  bool  can_play = 9;
  // 播放按钮
  string play_icon = 10;
  // avid
  int64 avid = 11;
  // cid
  int64 cid = 12;
  // 尺寸信息
  Dimension dimension = 13;
  // 时长
  int64 duration = 14;
  // 跳转地址
  string jump_url = 15;
}

// 播放器类型
enum MediaType {
  MediaTypeNone = 0; // 本地
  MediaTypeUGC = 1;  // UGC
  MediaTypePGC = 2;  // PGC
  MediaTypeLive = 3; // 直播
  MediaTypeVCS = 4;  // 小视频
}

// 查看更多-列表单条数据
message MixUpListItem {
  // 用户mid
  int64 uid = 1;
  // 特别关注
  // 0:否 1:是
  int32 special_attention = 2;
  // 小红点状态
  // 0:没有 1:有
  int32 reddot_state = 3;
  // 直播信息
  MixUpListLiveItem live_info = 4;
  // 昵称
  string name = 5;
  // 头像
  string face = 6;
  // 认证信息
  OfficialVerify official = 7;
  // 大会员信息
  VipInfo vip = 8;
  // 关注状态
  Relation relation = 9;
  //
  int32 permire_state = 10;
  //
  string uri = 11;
}

message MixUpListLiveItem {
  // 直播状态
  // 0:未直播 1:直播中
  bool status = 1;
  // 房间号
  int64 room_id = 2;
  // 跳转地址
  string uri = 3;
}

// 动态模块
message Module {
  // 类型
  DynModuleType module_type = 1;
  oneof module_item {
    // 用户模块 1
    ModuleAuthor module_author = 2;
    // 争议黄条模块 2
    ModuleDispute module_dispute = 3;
    // 动态正文模块 3
    ModuleDesc module_desc = 4;
    // 动态卡模块 4
    ModuleDynamic module_dynamic = 5;
    // 点赞外露(废弃)
    ModuleLikeUser module_likeUser = 6;
    // 小卡模块 6
    ModuleExtend module_extend = 7;
    // 大卡模块 5
    ModuleAdditional module_additional = 8;
    // 计数模块 8
    ModuleStat module_stat = 9;
    // 折叠模块 9
    ModuleFold module_fold = 10;
    // 评论外露(废弃)
    ModuleComment module_comment = 11;
    // 外露交互模块(点赞、评论) 7
    ModuleInteraction module_interaction = 12;
    // 转发卡-原卡用户模块
    ModuleAuthorForward module_author_forward = 13;
    // 广告卡
    ModuleAd module_ad = 14;
    // 通栏
    ModuleBanner module_banner = 15;
    // 获取物料失败
    ModuleItemNull module_item_null = 16;
    // 分享组件
    ModuleShareInfo module_share_info = 17;
    // 相关推荐模块
    ModuleRecommend module_recommend = 18;
    // 顶部模块
    ModuleTop module_top = 19;
    // 底部模块
    ModuleButtom module_buttom = 20;
    // 转发卡计数模块
    ModuleStat module_stat_forward = 21;
    //
    ModuleStory module_story = 22;
    //
    ModuleTopic module_topic = 23;
    //
    ModuleTopicDetailsExt module_topic_details_ext = 24;
    //
    ModuleTopTag module_top_tag = 25;
    //
    ModuleTopicBrief module_topic_brief = 26;
    //
    ModuleTitle module_title = 27;
    //
    ModuleButton module_button = 28;
    //
    ModuleNotice module_notice = 29;
    //
    ModuleOpusSummary module_opus_summary = 30;
    //
    ModuleCopyright module_copyright = 31;
    //
    ModuleParagraph module_paragraph = 32;
    //
    ModuleBlocked module_blocked = 33;
    //
    ModuleTextNotice module_text_notice = 34;
    //
    ModuleOpusCollection module_opus_collection = 35;
  }
}

// 动态列表-用户模块-广告卡
message ModuleAd {
  // 广告透传信息
  google.protobuf.Any source_content = 1;
  // 用户模块
  ModuleAuthor module_author = 2;
  //
  int32 ad_content_type = 3;
  //
  string cover_left_text1 = 4;
  //
  string cover_left_text2 = 5;
  //
  string cover_left_text3 = 6;
}

// 动态-附加卡模块
message ModuleAdditional {
  // 类型
  AdditionalType type = 1;
  oneof item {
    // 废弃
    AdditionalPGC pgc = 2;
    //
    AdditionGoods goods = 3;
    // 废弃
    AdditionVote vote = 4;
    //
    AdditionCommon common = 5;
    //
    AdditionEsport esport = 6;
    // 投票
    AdditionVote2 vote2 = 8;
    //
    AdditionUgc  ugc = 9;
    // up主预约发布卡
    AdditionUP up = 10;
    //
    AdditionArticle article = 12;
    //
    AdditionLiveRoom live = 13;
  }
  // 附加卡物料ID
  int64 rid = 7;
  //
  bool need_write_calender = 11;
}

// 动态-发布人模块
message ModuleAuthor {
  // 用户mid
  int64 mid = 1;
  // 时间标签
  string ptime_label_text = 2;
  // 用户详情
  UserInfo author = 3;
  // 装扮卡片
  DecorateCard decorate_card = 4;
  // 点击跳转链接
  string uri = 5;
  // 右侧操作区域 - 三点样式
  repeated ThreePointItem tp_list = 6;
  // 右侧操作区域样式枚举
  ModuleAuthorBadgeType badge_type = 7;
  // 右侧操作区域 - 按钮样式
  ModuleAuthorBadgeButton badge_button = 8;
  // 是否关注
  // 1:关注 0:不关注 默认0，注：点赞列表使用，其他场景不使用该字段
  int32 attend = 9;
  // 关注状态
  Relation relation = 10;
  // 右侧操作区域 - 提权样式
  Weight weight = 11;
  // 是否展示关注
  bool show_follow = 12;
  // 是否置顶
  bool is_top = 13;
  // ip属地
  string ptime_location_text = 14;
  //
  bool show_level = 15;
  //
  OnlyFans only_fans = 16;
}

// 动态列表渲染部分-用户模块-按钮
message ModuleAuthorBadgeButton {
  // 图标
  string icon = 1;
  // 文案
  string title = 2;
  // 状态
  int32 state = 3;
  // 物料ID
  int64 id = 4;
}

// 右侧操作区域样式枚举
enum ModuleAuthorBadgeType {
  module_author_badge_type_none = 0;       // 占位
  module_author_badge_type_threePoint = 1; // 三点
  module_author_badge_type_button = 2;     // 按钮类型
  module_author_badge_type_weight = 3;     // 提权
}

// 动态列表-用户模块-转发模板
message ModuleAuthorForward {
  // 展示标题
  repeated ModuleAuthorForwardTitle title = 1;
  // 源卡片跳转链接
  string url = 2;
  // 用户uid
  int64 uid = 3;
  // 时间标签
  string ptime_label_text = 4;
  // 是否展示关注
  bool show_follow = 5;
  // 源up主头像
  string face_url = 6;
  // 双向关系
  Relation relation = 7;
  // 右侧操作区域 - 三点样式
  repeated ThreePointItem tp_list = 8;
}

// 动态列表-用户模块-转发模板-title部分
message ModuleAuthorForwardTitle {
  // 文案
  string text = 1;
  // 跳转链接
  string url = 2;
}

// 动态列表-通栏
message ModuleBanner {
  // 模块标题
  string title = 1;
  // 卡片类型
  ModuleBannerType type = 2;
  // 卡片
  oneof item{
    ModuleBannerUser user = 3;
  }
  // 不感兴趣文案
  string dislike_text = 4;
  // 不感兴趣图标
  string dislike_icon = 5;
}

// 动态列表-通栏类型
enum ModuleBannerType {
  module_banner_type_none = 0; //
  module_banner_type_user = 1; //
}

// 动态通栏-用户
message ModuleBannerUser {
  // 卡片列表
  repeated ModuleBannerUserItem list = 1;
}

// 动态通栏-推荐用户卡
message ModuleBannerUserItem {
  // up主头像
  string face = 1;
  // up主昵称
  string name = 2;
  // up主uid
  int64 uid = 3;
  // 直播状态
  LiveState live_state = 4;
  // 认证信息
  OfficialVerify official = 5;
  // 大会员信息
  VipInfo vip = 6;
  // 标签信息
  string label = 7;
  // 按钮
  AdditionalButton button = 8;
  // 跳转地址
  string uri = 9;
  //
  Relation relation = 10;
}

//
message ModuleBlocked {
  //
  ImageSet icon = 1;
  //
  ImageSet bg_img = 2;
  //
  string hint_message = 3;
  //
  IconButton act_btn = 4;
  //
  MdlBlockedStyle block_style = 5;
  //
  string sub_hint_message = 6;
  //
  OneLineText video_bottom_text_upper = 7;
  //
  OneLineText video_bottom_text_lower = 8;
  //
  string archive_title = 9;
  //
  OneLineText hint_message_one_line = 10;
}

// 底部模块
message ModuleButtom {
  enum InteractionIcon {
    ICON_INVALID = 0;
    ICON_FORWARD = 1;
    ICON_COMMENT = 2;
    ICON_FAVORITE = 3;
    ICON_LIKE = 4;
  }
  // 计数模块
  ModuleStat module_stat = 1;
  //
  bool comment_box = 2;
  //
  string comment_box_msg = 3;
  //
  repeated InteractionIcon interaction_icons = 4;
  //
  repeated InteractionFace faces = 5;
}

//
message ModuleButton {
  //
  IconButton btn = 1;
}

// 评论外露模块
message ModuleComment {
  // 评论外露展示项
  repeated CmtShowItem cmtShowItem = 1;
}

//
message ModuleCopyright {
  //
  string left_text = 1;
  //
  string right_text = 2;
}

// 动态-描述文字模块
message ModuleDesc {
  // 描述信息(已按高亮拆分)
  repeated Description desc = 1;
  // 点击跳转链接
  string jump_uri = 2;
  // 文本原本
  string text = 3;
}

// 正文商品卡参数
message ModuleDescGoods {
  // 商品类型
  // 1:淘宝 2:会员购
  int32 source_type = 1;
  // 跳转链接
  string jump_url = 2;
  // schema_url
  string schema_url = 3;
  // item_id
  int64 item_id = 4;
  // open_white_list
  repeated string open_white_list = 5;
  // use_web_v2
  bool user_web_v2 = 6;
  // ad mark
  string ad_mark = 7;
  // schemaPackageName(Android用)
  string schema_package_name = 8;
  //
  int32 jump_type = 9;
  //
  string app_name = 10;
}

// 动态-争议小黄条模块
message ModuleDispute {
  // 标题
  string title = 1;
  // 描述内容
  string desc = 2;
  // 跳转链接
  string uri = 3;
}

// 动态-详情模块
message ModuleDynamic {
  // 类型
  ModuleDynamicType type = 1;
  oneof module_item {
    //稿件
    MdlDynArchive dyn_archive = 2;
    //pgc
    MdlDynPGC dyn_pgc = 3;
    //付费课程-系列
    MdlDynCourSeason dyn_cour_season = 4;
    //付费课程-批次
    MdlDynCourBatch dyn_cour_batch = 5;
    //转发卡
    MdlDynForward dyn_forward = 6;
    //图文
    MdlDynDraw dyn_draw = 7;
    //专栏
    MdlDynArticle dyn_article = 8;
    //音频
    MdlDynMusic dyn_music = 9;
    //通用卡方
    MdlDynCommon dyn_common = 10;
    //直播卡
    MdlDynLive dyn_common_live = 11;
    //播单
    MdlDynMedialist dyn_medialist = 12;
    //小程序卡
    MdlDynApplet dyn_applet = 13;
    //订阅卡
    MdlDynSubscription dyn_subscription = 14;
    //直播推荐卡
    MdlDynLiveRcmd dyn_live_rcmd = 15;
    //UGC合集
    MdlDynUGCSeason dyn_ugc_season = 16;
    //订阅卡
    MdlDynSubscriptionNew dyn_subscription_new = 17;
    //课程
    MdlDynCourUp dyn_cour_batch_up = 18;
    //话题集合
    MdlDynTopicSet dyn_topic_set = 19;
    //充电稿件
    MdlDynChargingArchive dyn_charging_archive = 20;
    //
    MdlDynShareChargingQA dyn_share_charging_qa = 21;
  }
}

// 动态详情模块类型
enum ModuleDynamicType {
  mdl_dyn_archive = 0;           // 稿件
  mdl_dyn_pgc = 1;               // pgc
  mdl_dyn_cour_season = 2;       // 付费课程-系列
  mdl_dyn_cour_batch = 3;        // 付费课程-批次
  mdl_dyn_forward = 4;           // 转发卡
  mdl_dyn_draw = 5;              // 图文
  mdl_dyn_article = 6;           // 专栏
  mdl_dyn_music = 7;             // 音频
  mdl_dyn_common = 8;            // 通用卡方
  mdl_dyn_live = 9;              // 直播卡
  mdl_dyn_medialist = 10;        // 播单
  mdl_dyn_applet = 11;           // 小程序卡
  mdl_dyn_subscription = 12;     // 订阅卡
  mdl_dyn_live_rcmd = 13;        // 直播推荐卡
  mdl_dyn_ugc_season = 14;       // UGC合集
  mdl_dyn_subscription_new = 15; // 订阅卡
  mdl_dyn_cour_batch_up = 16;    // 课程
  mdl_dyn_topic_set = 17;        // 话题集合
}

// 动态-小卡模块
message ModuleExtend {
  // 详情
  repeated ModuleExtendItem extend = 1;
  // 模块整体跳转uri
  string uri = 2; // 废弃
}

// 动态-拓展小卡模块
message ModuleExtendItem {
  // 类型
  DynExtendType type = 1;
  // 卡片详情
  oneof extend {
    // 废弃
    ExtInfoTopic ext_info_topic = 2;
    // 废弃
    ExtInfoLBS ext_info_lbs = 3;
    // 废弃
    ExtInfoHot ext_info_hot = 4;
    // 废弃
    ExtInfoGame ext_info_game = 5;
    //
    ExtInfoCommon ext_info_common = 6;
    //
    ExtInfoOGV ext_info_ogv = 7;
  }
}

// 动态-折叠模块
message ModuleFold {
  // 折叠分类
  FoldType fold_type = 1;
  // 折叠文案
  string text = 2;
  // 被折叠的动态
  string fold_ids = 3;
  // 被折叠的用户信息
  repeated UserInfo fold_users = 4;
  //
  TopicMergedResource topic_merged_resource = 5;
}

// 外露交互模块
message ModuleInteraction {
  // 外露交互模块
  repeated InteractionItem interaction_item = 1;
}

// 获取物料失败模块
message ModuleItemNull {
  // 图标
  string icon = 1;
  // 文案
  string text = 2;
}

// 动态-点赞用户模块
message ModuleLikeUser {
  // 点赞用户
  repeated LikeUser like_users = 1;
  // 文案
  string display_text = 2;
}

//
message ModuleNotice {
  //
  string identity = 1;
  //
  string icon = 2;
  //
  string title = 3;
  //
  string url = 4;
  //
  int32 notice_type = 5;
}

//
message ModuleOpusCollection {
  //
  OpusCollection collection_info = 1;
  //
  string title_upper = 2;
  //
  string title = 3;
  //
  string title_prefix_icon = 4;
  //
  string total_text = 5;
}

//
message ModuleOpusSummary {
  //
  Paragraph title = 1;
  //
  Paragraph summary = 2;
  //
  string summary_jump_btn_text = 3;
  //
  repeated MdlDynDrawItem covers = 4;
}

//
message ModuleParagraph {
  //
  Paragraph paragraph = 1;
  //
  bool is_article_title = 2;
  //
  ParaSpacing para_spacing = 3;
}

// 推荐模块
message ModuleRcmd {
  // 用户头像
  RcmdAuthor author = 1;
  // 推荐卡片列表
  repeated RcmdItem items = 2;
  // 透传到客户端的埋点字段
  string server_info = 3;
}

// 相关推荐模块
message ModuleRecommend {
  // 模块标题
  string module_title = 1;
  // 图片
  string image = 2;
  // 标签
  string tag = 3;
  // 标题
  string title = 4;
  // 跳转链接
  string jump_url = 5;
  // 序列化的广告信息
  repeated google.protobuf.Any ad = 6;
}

// 分享模块
message ModuleShareInfo {
  // 展示标题
  string title = 1;
  // 分享组件列表
  repeated ShareChannel share_channels = 2;
  // share_origin
  string share_origin = 3;
  // 业务id
  string oid = 4;
  // sid
  string sid = 5;
}

// 动态-计数模块
message ModuleStat {
  // 转发数
  int64 repost = 1;
  // 点赞数
  int64 like = 2;
  // 评论数
  int64 reply = 3;
  // 点赞拓展信息
  LikeInfo like_info = 4;
  // 禁评
  bool no_comment = 5;
  // 禁转
  bool no_forward = 6;
  // 点击评论跳转链接
  string reply_url = 7;
  // 禁评文案
  string no_comment_text = 8;
  // 禁转文案
  string no_forward_text = 9;
}

//
message ModuleStory {
  //
  string title = 1;
  //
  repeated StoryItem items = 2;
  //
  bool show_publish_entrance = 3;
  //
  int64 fold_state = 4;
  //
  string uri = 5;
  //
  string cover = 6;
  //
  string publish_text = 7;
}

//
message ModuleTextNotice {
  //
  OneLineText notice = 1;
}

//
message ModuleTitle {
  //
  string title = 1;
  //
  IconButton right_btn = 2;
  //
  int32 title_style = 3;
}

// 顶部模块
message ModuleTop {
  // 三点模块
  repeated ThreePointItem tp_list = 1;
  //
  MdlDynArchive archive = 2;
  //
  ModuleAuthor author = 3;
  //
  bool hidden_nav_bar = 4;
}

//
message ModuleTopic {
  //
  int64 id = 1;
  //
  string name = 2;
  //
  string url = 3;
}

//
message ModuleTopicBrief {
  //
  TopicItem topic = 1;
}

//
message ModuleTopicDetailsExt {
  //
  string comment_guide = 1;
}

//
message ModuleTopTag {
  //
  string tag_name = 1;
}

// 认证名牌
message Nameplate {
  // nid
  int64 nid = 1;
  // 名称
  string name = 2;
  // 图片地址
  string image = 3;
  // 小图地址
  string image_small = 4;
  // 等级
  string level = 5;
  // 获取条件
  string condition = 6;
}

enum NetworkType {
  NT_UNKNOWN = 0; //
  WIFI = 1;       //
  CELLULAR = 2;   //
  OFFLINE = 3;    //
  OTHERNET = 4;   //
  ETHERNET = 5;   //
}

// 最新ep
message NewEP {
  // 最新话epid
  int32 id = 1;
  // 更新至XX话
  string index_show = 2;
  // 更新剧集的封面
  string cover = 3;
}

//
message NFTInfo {
  //
  NFTRegionType region_type = 1;
  //
  string region_icon = 2;
  //
  NFTShowStatus region_show_status = 3;
}

//
enum NFTRegionType {
  nft_region_default = 0;
  nft_region_mainlang = 1;
  nft_region_gat = 2;
}

//
enum NFTShowStatus {
  nft_show_default = 0;
  nft_show_zoominmainlang = 1;
  nft_show_raw = 2;
}

// 空响应
message NoReply {

}

// 空请求
message NoReq {

}

//
message NoteVideoTS {
  //
  int64 cid = 1;
  //
  int64 oid_type = 2;
  //
  int64 status = 3;
  //
  int64 index = 4;
  //
  int64 seconds = 5;
  //
  int64 cid_count = 6;
  //
  string key = 7;
  //
  int64 epid = 9;
  //
  string title = 8;
  //
  string desc = 10;
}

//
message OfficialAccountInfo {
  //
  UserInfo author = 1;
  //
  int64 mid = 2;
  //
  string uri = 3;
  //
  Relation relation = 4;
  //
  string desc_text1 = 5;
  //
  string desc_text2 = 6;
}

//
message OfficialAccountsReply {
  //
  repeated OfficialAccountInfo items = 1;
  //
  bool has_more = 2;
  //
  int64 offset = 3;
}

//
message OfficialAccountsReq {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  int64 offset = 3;
}

//
message OfficialDynamicsReply {
  //
  repeated OfficialItem items = 1;
  //
  int64 offset = 2;
  //
  bool has_more = 3;
  //
  bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
}

//
message OfficialDynamicsReq {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  int64 offset = 3;
}

message OfficialItem {
  int32 type = 1;
  oneof rcmd_item {
    OfficialRcmdArchive rcmd_archive = 2;
    OfficialRcmdDynamic rcmd_dynamic = 3;
  };
}

//
message OfficialRcmdArchive {
  //
  string title = 1;
  //
  string cover = 2;
  //
  string cover_right_text = 3;
  //
  int32 desc_icon1 = 4;
  //
  string desc_text1 = 5;
  //
  int32 desc_icon2 = 6;
  //
  string desc_text2 = 7;
  //
  string reason = 8;
  //
  bool show_three_point = 9;
  //
  string uri = 10;
  //
  int64 aid = 11;
  //
  int64 mid = 12;
  //
  string name = 13;
  //
  int64 dynamic_id = 14;
  //
  int64 cid = 15;
}

//
message OfficialRcmdDynamic {
  //
  string title = 1;
  //
  string cover = 2;
  //
  string cover_right_top_text = 3;
  //
  int32 desc_icon1 = 4;
  //
  string desc_text1 = 5;
  //
  int32 desc_icon2 = 6;
  //
  string desc_text2 = 7;
  //
  string reason = 8;
  //
  string uri = 9;
  //
  int64 dynamic_id = 10;
  //
  int64 mid = 11;
  //
  string user_name = 12;
  //
  int64 rid = 13;
}

// 认证信息
message OfficialVerify {
  // 127:未认证 0:个人 1:机构
  int32 type = 1;
  // 认证描述
  string desc = 2;
  // 是否关注
  int32 is_atten = 3;
}

//
message OneLineText {
  //
  repeated TextWithPriority texts = 1;
}

//
message OnlyFans {
  //
  bool is_only_fans = 1;
  //
  IconBadge badge = 2;
}

//
message OnlyFansProperty {
  //
  bool has_privilege = 1;
  //
  bool is_only_fans = 2;
}

//
message OpusCollection {
  //
  int64 collection_id = 1;
  //
  OneLineText title = 2;
  //
  string detail_uri = 3;
  //
  string intro = 4;
  //
  repeated OpusCollectionItem all_items = 5;
}

//
message OpusCollectionItem {
  //
  int64 opus_id = 1;
  //
  string title = 2;
  //
  string pub_time = 3;
  //
  string uri = 4;
  //
  bool is_selected_highlight = 5;
}

//
message Paragraph {
  //
  message ListFormat {
    //
    int32 level = 1;
    //
    int32 order = 2;
    //
    string theme = 3;
  }
  enum ParagraphAlign {
    LEFT = 0;
    MIDDLE = 1;
    RIGHT = 2;
  }
  //
  message ParagraphFormat {
    //
    ParagraphAlign align = 1;
    //
    ListFormat list_format = 2;
  }
  //
  enum ParagraphType {
    INVALID = 0;
    TEXT = 1;
    PICTURES = 2;
    LINE = 3;
    REFERENCE = 4;
    SORTED_LIST = 5;
    UNSORTED_LIST = 6;
    LINK_CARD = 7;
  }
  //
  ParagraphType para_type = 1;
  //
  ParagraphFormat para_format = 2;
  //
  oneof content {
    TextParagraph text = 3;
    PicParagraph pic = 4;
    LineParagraph line = 5;
    CardParagraph link_card = 6;
  }
}

//
message ParaSpacing {
  //
  double spacing_before_para = 1;
  //
  double spacing_after_para = 2;
  //
  double line_spacing = 3;
}

// PGC单季信息
message PGCSeason {
  // 是否完结
  int32 is_finish = 1;
  // 标题
  string title = 2;
  // 类型
  int32 type = 3;
}

//
message PicParagraph {
  //
  enum PicParagraphStyle {
    INVALID = 0;
    NINE_CELL = 1;
    BIG_SCROLL = 2;
  }
  //
  MdlDynDraw pics = 1;
  //
  PicParagraphStyle style = 2;
}

// 秒开通用参数
message PlayurlParam {
  // 清晰度
  int32 qn = 1;
  // 流版本
  int32 fnver = 2;
  // 流类型
  int32 fnval = 3;
  // 是否强制使用域名
  int32 force_host = 4;
  // 是否4k
  int32 fourk = 5;
}

//
message Popup {
  //
  string title = 1;
  //
  string desc = 2;
  //
  string uri = 3;
}

//
message RcmdArchive {
  // 标题
  string title = 1;
  // 封面图
  string cover = 2;
  // 视频封面展示项 1
  CoverIcon cover_left_icon_1 = 3;
  // 视频封面展示项 1
  string cover_left_text_1 = 4;
  // 秒开地址
  string uri = 5;
  // 是否PGC
  bool is_pgc = 6;
  // aid
  int64 aid = 7;
  //
  IconBadge badge = 8;
  //
  int32 cover_left_icon2 = 9;
  //
  string cover_left_text2 = 10;
  //
  int32 cover_left_icon3 = 11;
  //
  string cover_left_text3 = 12;
}

// 推荐UP主用户模块
message RcmdAuthor {
  // 用户详情
  UserInfo author = 1;
  // 描述：粉丝数、推荐理由
  string desc = 2;
  // 关注状态
  Relation relation = 3;
}

//
message RcmdCampusBrief {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  string campus_badge = 4;
  //
  string url = 5;
}

// 推荐卡片列表
message RcmdItem {
  // 卡片类型
  RcmdType type = 1;
  // 卡片列表
  oneof rcmd_item {
    //
    RcmdArchive rcmd_archive = 2;
  }
}

// 分区聚类推荐选项
message RcmdOption{
  // 视频是否展示标题
  bool show_title = 1;
}

//
message RcmdReason {
  //
  string campus_name = 1;
  //
  RcmdReasonStyle style = 2;
  //
  string rcmd_reason = 3;
  //
  string up_name = 4;
}

//
enum RcmdReasonStyle {
  rcmd_reason_style_none = 0;
  rcmd_reason_style_campus_nearby = 1;
  rcmd_reason_style_campus_up = 2;
  rcmd_reason_style_campus_near_up_mix = 3;
}

//
message RcmdTopButton {
  //
  string text = 1;
  //
  string url = 2;
}

// 推荐模块数据类型
enum RcmdType {
  rcmd_archive = 0; // 稿件
  rcmd_dynamic = 1; // 动态
}

// 推荐up主入参
message RcmdUPsParam {
  int64 dislike_ts = 1;
}

message ReactionListItem {
  // 用户信息
  UserInfo user = 1;
  // 关注关系
  Relation relation = 2;
  // 显示文字
  string act_text = 3;
  //
  string rcmd_reason = 4;
}


// 新版动态转发点赞列表-响应
message ReactionListReply {
  // 标题
  string title = 1;
  // 列表
  repeated ReactionListItem list = 2;
  // 偏移
  string offset = 3;
  // 是否还有更多
  bool has_more = 4;
}

// 新版动态转发点赞列表-请求
message ReactionListReq {
  // 动态ID
  int64 dynamic_id = 1;
  // 动态类型
  int64 dyn_type = 2;
  // 业务方资源id
  int64 rid = 3;
  // 偏移,使用上一页回包中的offset字段；第一页不传。
  string offset = 4;
}

// 刷新方式
enum Refresh {
  refresh_new = 0;     // 刷新列表
  refresh_history = 1; // 请求历史
}

// 关注关系
message Relation {
  // 关注状态
  RelationStatus status = 1;
  // 关注
  int32 is_follow = 2;
  // 被关注
  int32 is_followed = 3;
  // 文案
  string title = 4;
}

// 关注关系 枚举
enum RelationStatus {
  // 1-未关注 2-关注 3-被关注 4-互相关注 5-特别关注
  relation_status_none = 0;
  relation_status_nofollow = 1;
  relation_status_follow = 2;
  relation_status_followed = 3;
  relation_status_mutual_concern = 4;
  relation_status_special = 5;
}

// 转发列表-请求
message RepostListReq {
  // 动态ID
  string dynamic_id = 1;
  // 动态类型
  int64 dyn_type = 2;
  // 业务方资源id
  int64 rid = 3;
  // 偏移,使用上一页回包中的offset字段；第一页不传。
  string offset = 4;
  // 来源
  string from = 5;
  // 评论类型
  RepostType repost_type = 6;
}

// 转发列表-响应
message RepostListRsp {
  // 列表
  repeated DynamicItem list = 1;
  // 偏移
  string offset = 2;
  // 是否还有更多
  bool has_more = 3;
  // 转发总数
  int64 total_count = 4;
  // 评论类型
  RepostType repost_type = 5;
}

// 评论类型
enum RepostType {
  repost_hot = 0;     // 热门评论
  repost_general = 1; // 普通评论
}

//
enum ReserveRelationLotteryType {
  reserve_relation_lottery_type_default = 0; //
  reserve_relation_lottery_type_cron = 1;    //
}

//
enum ReserveType {
  reserve_none = 0;   // 占位
  reserve_recall = 1; // 预约召回
}

enum RouterAction {
  OPEN = 0;
  EMBED = 1;
}

//
message SchoolRecommendReply {
  //
  repeated CampusInfo items = 1;
}

//
message SchoolRecommendReq {
  //
  float lat = 1;
  //
  float lng = 2;
  //
  CampusReqFromType from_type = 3;
}

//
message SchoolSearchReply {
  //
  repeated CampusInfo items = 1;
  //
  SearchToast toast = 2;
}

//
message SchoolSearchReq {
  //
  string keyword = 1;
  //
  CampusReqFromType from_type = 2;
}

//
message SearchChannel {
  //
  string title = 1;
  //
  SearchTopicButton more_button = 2;
  //
  repeated ChannelInfo channels = 3;
}

//
message SearchInfo {
  //
  string title = 1;
  //
  repeated DynamicItem list = 2;
  //
  string track_id = 3;
  //
  int64 total = 4;
  //
  bool has_more = 5;
  //
  string version = 6;
}

//
message SearchToast {
  //
  string desc_text1 = 1;
  //
  string desc_text2 = 2;
}

//
message SearchTopic {
  //
  string title = 1;
  //
  SearchTopicButton more_button = 2;
  //
  repeated SearchTopicItem items = 3;
}

//
message SearchTopicButton {
  //
  string title = 1;
  //
  string jump_uri = 2;
}

//
message SearchTopicItem {
  //
  int64 topic_id = 1;
  //
  string topic_name = 2;
  //
  string desc = 3;
  //
  string url = 4;
  //
  bool is_activity = 5;
}

//
message SetDecisionReq {
  //
  int32 result = 1;
  //
  CampusReqFromType from_type = 2;
}

//
message SetRecentCampusReq {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  CampusReqFromType from_type = 3;
}

// 分享渠道组件
message ShareChannel {
  // 分享名称
  string name = 1;
  // 分享按钮图片
  string image = 2;
  // 分享渠道
  string channel = 3;
  // 预约卡分享图信息，仅分享有预约信息的动态时存在
  ShareReserve reserve = 4;
}

// 预约卡分享图信息
message ShareReserve {
  // 展示标题
  string title = 1;
  // 描述(时间+类型)
  string desc = 2;
  // 二维码附带icon
  string qr_code_icon = 3;
  // 二维码附带文本
  string qr_code_text = 4;
  // 二维码url
  string qr_code_url = 5;
  //
  AdditionUserInfo user_info = 6;
}

//
enum ShowType {
  show_type_none = 0;   //
  show_type_backup = 1; //
}

// 排序类型
message SortType {
  // 排序策略
  // 1:推荐排序 2:最常访问 3:最近关注
  int32  sort_type = 1;
  // 排序策略名称
  string sort_type_name = 2;
}

//
message StoryArchive {
  //
  string cover = 1;
  //
  int64 aid = 2;
  //
  string uri = 3;
  //
  Dimension dimension = 4;
}

//
message StoryItem {
  //
  UserInfo author = 1;
  //
  string desc = 2;
  //
  int64 status = 3;
  //
  int32 type = 4;
  oneof rcmd_item {
    //
    StoryArchive story_archive = 5;
  }
}

//
enum StyleType {
  STYLE_TYPE_NONE = 0;   //
  STYLE_TYPE_LIVE = 1;   //
  STYLE_TYPE_DYN_UP = 2; //
}

//
message SubscribeCampusReq {
  //
  int64 campus_id = 1;
  //
  string campus_name = 2;
  //
  CampusReqFromType from_type = 3;
}

//
message TextNode {
  enum TextNodeType {
    INVALID = 0;
    WORDS = 1;
    EMOTE = 2;
    AT = 3;
    BIZ_LINK = 4;
  }
  //
  TextNodeType node_type = 1;
  string raw_text = 2;
  //
  oneof text {
    WordNode word = 3;
    EmoteNode emote = 4;
    LinkNode link = 5;
  }
}

//
message TextParagraph {
  //
  repeated TextNode nodes = 1;
}

//
message TextWithPriority {
  //
  string text = 1;
  //
  int64 priority = 2;
}

// 免流类型
enum TFType {
  TF_UNKNOWN = 0; // 未知
  U_CARD = 1; // 联通卡
  U_PKG = 2;  // 联通免流包
  C_CARD = 3; // 移动卡
  C_PKG = 4;  // 移动免流包
  T_CARD = 5; // 电信卡
  T_PKG = 6;  // 电信免流包
}

// 三点-关注
message ThreePointAttention {
  // attention icon
  string attention_icon = 1;
  // 关注时显示的文案
  string attention_text = 2;
  // not attention icon
  string not_attention_icon = 3;
  // 未关注时显示的文案
  string not_attention_text = 4;
  // 当前关注状态
  ThreePointAttentionStatus status = 5;
}

// 枚举-三点关注状态
enum ThreePointAttentionStatus {
  tp_not_attention = 0; //
  tp_attention = 1;     //
}

// 三点-自动播放 旧版不维护
message ThreePointAutoPlay {
  // open icon
  string open_icon = 1;
  // 开启时显示文案
  string open_text = 2;
  // close icon
  string close_icon = 3;
  // 关闭时显示文案
  string close_text = 4;
  // 开启时显示文案v2
  string open_text_v2 = 5;
  // 关闭时显示文案v2
  string close_text_v2 = 6;
  // 仅wifi/免流 icon
  string only_icon = 7;
  // 仅wifi/免流 文案
  string only_text = 8;
  // open icon v2
  string open_icon_v2 = 9;
  // close icon v2
  string close_icon_v2 = 10;
}

// 三点-评论
message ThreePointComment {
  // 精选评论区功能
  CommentDetail up_selection = 1;
  // up关闭评论区功能
  CommentDetail up_close = 2;
  // icon
  string icon = 3;
  // 标题
  string title = 4;
}

// 三点-默认结构(使用此背景、举报、删除)
message ThreePointDefault {
  // icon
  string icon = 1;
  // 标题
  string title = 2;
  // 跳转链接
  string uri = 3;
  // id
  string id = 4;
  //
  ThreePointDefaultToast toast = 5;
}

//
message ThreePointDefaultToast {
  //
  string title = 1;
  //
  string desc = 2;
}

// 三点-不感兴趣
message ThreePointDislike {
  // icon
  string icon = 1;
  // 标题
  string title = 2;
}

// 三点-收藏
message ThreePointFavorite {
  // icon
  string icon = 1;
  // 标题
  string title = 2;
  // 物料ID
  int64 id = 3;
  // 是否订阅
  bool is_favourite = 4;
  // 取消收藏图标
  string cancel_icon = 5;
  // 取消收藏文案
  string cancel_title = 6;
}

//
message ThreePointHide {
  //
  string icon = 1;
  //
  string title = 2;
  //
  ThreePointHideInteractive interactive = 3;
  //
  int64 blook_fid = 4;
  //
  string blook_type = 5;
}

//
message ThreePointHideInteractive {
  //
  string title = 1;
  //
  string confirm = 2;
  //
  string cancel = 3;
  //
  string toast = 4;
}

// 三点Item
message ThreePointItem {
  //类型
  ThreePointType type = 1;
  oneof item {
    // 默认结构
    ThreePointDefault default = 2;
    // 自动播放
    ThreePointAutoPlay auto_player = 3;
    // 分享
    ThreePointShare share = 4;
    // 关注
    ThreePointAttention attention = 5;
    // 稍后在看
    ThreePointWait wait = 6;
    // 不感兴趣
    ThreePointDislike dislike = 7;
    // 收藏
    ThreePointFavorite favorite = 8;
    // 置顶
    ThreePointTop top = 9;
    // 评论
    ThreePointComment comment = 10;
    //
    ThreePointHide hide = 11;
    //
    ThreePointTopicIrrelevant topic_irrelevant = 12;
  }
}

// 三点-分享
message ThreePointShare {
  // icon
  string icon = 1;
  // 标题
  string title = 2;
  // 分享渠道
  repeated ThreePointShareChannel channel = 3;
  // 分享渠道名
  string channel_name = 4;
  // 预约卡分享图信息，仅分享有预约信息的动态时存在
  ShareReserve reserve = 5;
}

// 三点-分享渠道
message ThreePointShareChannel {
  // icon
  string icon = 1;
  // 名称
  string title = 2;
}

// 三点-置顶
message ThreePointTop {
  // icon
  string icon = 1;
  // 标题
  string title = 2;
  // 状态
  TopType type = 3;
}

//
message ThreePointTopicIrrelevant {
  //
  string icon = 1;
  //
  string title = 2;
  //
  string toast = 3;
  //
  int64 topic_id = 4;
  //
  int64 res_id = 5;
  //
  int64 res_type = 6;
  //
  string reason = 7;
}

// 三点类型
enum ThreePointType {
  tp_none = 0;           // 占位
  background = 1;        // 使用此背景
  auto_play = 2;         // 自动播放
  share = 3;             // 分享
  wait = 4;              // 稍后再播
  attention = 5;         // 关注
  report = 6;            // 举报
  delete = 7;            // 删除
  dislike = 8;           // 不感兴趣
  favorite = 9;          // 收藏
  top = 10;              // 置顶
  comment = 11;          // 评论
  hide = 12;             //
  campus_delete = 13;    //
  topic_irrelevant = 14; //
}

// 三点-稍后在看
message ThreePointWait {
  // addition icon
  string addition_icon = 1;
  // 已添加时的文案
  string addition_text = 2;
  // no addition icon
  string no_addition_icon = 3;
  // 未添加时的文案
  string no_addition_text = 4;
  // avid
  int64 id = 5;
}

//
enum ThumbType {
  cancel = 0; //
  thumb = 1;  //
}

// 顶部预约卡
message TopAdditionUP {
  // 预约卡
  repeated AdditionUP up = 1;
  // 折叠数量，大于多少个进行折叠
  int32 has_fold = 2;
}

// 话题广场操作按钮
message TopicButton {
  // 按钮图标
  string icon = 1;
  // 按钮文案
  string title = 2;
  // 跳转
  string jump_uri = 3;
  //
  bool red_dot = 4;
}

//
message TopicItem {
  //
  int64 topic_id = 1;
  //
  string topic_name = 2;
  //
  string url = 3;
  //
  string desc = 4;
  //
  string desc2 = 5;
  //
  string rcmd_desc = 6;
}

// 综合页-话题广场
message TopicList {
  // 模块标题
  string title = 1;
  // 话题列表
  repeated TopicListItem topic_list_item = 2;
  // 发起活动
  TopicButton act_button = 3;
  // 查看更多
  TopicButton more_button = 4;
  // 透传服务端上报
  string server_info = 5;
}

// 综合页-话题广场-话题
message TopicListItem {
  // 前置图标
  string icon = 1;
  // 前置图标文案
  string icon_title = 2;
  // 话题id
  int64 topic_id = 3;
  // 话题名
  string topic_name = 4;
  // 跳转链接
  string url = 5;
  // 卡片位次
  int64 pos = 6;
  // 透传服务端上报
  string server_info = 7;
  //
  string head_icon_url = 8;
  //
  int64 up_mid = 9;
  //
  string tail_icon_url = 10;
  //
  string extension = 11;
}

//
message TopicListReply {
  //
  repeated TopicItem items = 1;
  //
  bool has_more = 2;
  //
  string offset = 3;
}

//
message TopicListReq {
  //
  int64 campus_id = 1;
  //
  string offset = 2;
}

//
message TopicMergedResource {
  //
  int32 merge_type = 1;
  //
  int32 merged_res_cnt = 2;
}

//
message TopicRcmdCard {
  //
  int64 topic_id = 1;
  //
  string topic_name = 2;
  //
  string url = 3;
  //
  CampusLabel button = 4;
  //
  string desc1 = 5;
  //
  string desc2 = 6;
  //
  string update_desc = 7;
}

//
message TopicSquareInfo {
  //
  string title = 1;
  //
  CampusLabel button = 2;
  //
  TopicRcmdCard rcmd = 3;
}

//
message TopicSquareReply {
  //
  TopicSquareInfo info = 1;
}

//
message TopicSquareReq {
  //
  int64 campus_id = 1;
}

// 状态
enum TopType {
  top_none = 0;   // 默认 置顶
  top_cancel = 1; // 取消置顶
}

// 综合页-无关注列表
message Unfollow {
  // 标题展示文案
  string title = 1;
  // 无关注列表
  repeated UnfollowUserItem list = 2;
  // trackID
  string TrackId = 3;
}

//
message UnfollowMatchReq {
  //
  int64 cid = 1;
}

// 综合页-无关注列表
message UnfollowUserItem {
  // 是否有更新
  bool has_update = 1;
  // up主头像
  string face = 2;
  // up主昵称
  string name = 3;
  // up主uid
  int64 uid = 4;
  // 排序字段 从1开始
  int32 pos = 5;
  // 直播状态
  LiveState live_state = 6;
  // 认证信息
  OfficialVerify official = 7;
  // 大会员信息
  VipInfo vip = 8;
  // up介绍
  string sign = 9;
  // 标签信息
  string label = 10;
  // 按钮
  AdditionalButton button = 11;
  // 跳转地址
  string uri = 12;
}

//
message UpdateTabSettingReq {
  //
  HomePageTabSttingStatus status = 1;
}

// 动态顶部up列表-up主信息
message UpListItem {
  // 是否有更新
  bool has_update = 1;
  // up主头像
  string face = 2;
  // up主昵称
  string name = 3;
  // up主uid
  int64 uid = 4;
  // 排序字段 从1开始
  int64 pos = 5;
  // 用户类型
  UserItemType user_item_type = 6;
  // 直播头像样式-日
  UserItemStyle display_style_day = 7;
  // 直播头像样式-夜
  UserItemStyle display_style_night = 8;
  // 直播埋点
  int64 style_id = 9;
  // 直播状态
  LiveState live_state = 10;
  // 分割线
  bool separator = 11;
  // 跳转
  string uri = 12;
  // UP主预约上报使用
  bool is_recall = 13;
  //
  IconBadge update_icon = 14;
  //
  string live_rcmd_reason = 15;
  //
  string live_cover = 16;
  //
  string personal_extra = 17;
}

// 最常访问-查看更多
message UpListMoreLabel {
  // 文案
  string title = 1;
  // 跳转地址
  string uri = 2;
}

// 用户信息
message UserInfo {
  // 用户mid
  int64 mid = 1;
  // 用户昵称
  string name = 2;
  // 用户头像
  string face = 3;
  // 认证信息
  OfficialVerify official = 4;
  // 大会员信息
  VipInfo vip = 5;
  // 直播信息
  LiveInfo live = 6;
  // 空间页跳转链接
  string uri = 7;
  // 挂件信息
  UserPendant pendant = 8;
  // 认证名牌
  Nameplate nameplate = 9;
  // 用户等级
  int32 level = 10;
  // 用户简介
  string sign = 11;
  //
  int32 face_nft = 12;
  //
  int32 face_nft_new = 13;
  //
  NFTInfo nft_info = 14;
  //
  int32 is_senior_member = 15;
  //
  bilibili.dagw.component.avatar.v1.AvatarItem avatar = 16;
}

// 直播头像样式
message UserItemStyle {
  //
  string rect_text = 1;
  //
  string rect_text_color = 2;
  //
  string rect_icon = 3;
  //
  string rect_bg_color = 4;
  //
  string outer_animation = 5;
}

// 用户类型
enum UserItemType {
  user_item_type_none = 0;        //
  user_item_type_live = 1;        //
  user_item_type_live_custom = 2; //
  user_item_type_normal = 3;      //
  user_item_type_extend = 4;      //
  user_item_type_premiere_reserve = 5;
  user_item_type_premiere = 6;
  user_item_type_live_card = 7;
  user_item_type_ogv_season = 8;
  user_item_type_ugc_season = 9;
}

// 头像挂件信息
message UserPendant {
  // pid
  int64 pid = 1;
  // 名称
  string name = 2;
  // 图片链接
  string image = 3;
  // 有效期
  int64 expire = 4;
}

// 角标信息
message VideoBadge {
  // 文案
  string text = 1;
  // 文案颜色-日间
  string text_color = 2;
  // 文案颜色-夜间
  string text_color_night = 3;
  // 背景颜色-日间
  string bg_color = 4;
  // 背景颜色-夜间
  string bg_color_night = 5;
  // 边框颜色-日间
  string border_color = 6;
  // 边框颜色-夜间
  string border_color_night = 7;
  // 样式
  int32 bg_style = 8;
  // 背景透明度-日间
  int32 bg_alpha = 9;
  // 背景透明度-夜间
  int32 bg_alpha_night = 10;
}

// 番剧类型
enum VideoSubType {
  VideoSubTypeNone = 0;        // 没有子类型
  VideoSubTypeBangumi = 1;     // 番剧
  VideoSubTypeMovie = 2;       // 电影
  VideoSubTypeDocumentary = 3; // 纪录片
  VideoSubTypeDomestic = 4;    // 国创
  VideoSubTypeTeleplay = 5;    // 电视剧
}

// 视频类型
enum VideoType {
  video_type_general = 0;  //普通视频
  video_type_dynamic = 1;  //动态视频
  video_type_playback = 2; //直播回放视频
  video_type_story = 3;    //
}

// 大会员信息
message VipInfo {
  // 大会员类型
  int32 Type = 1;
  // 大会员状态
  int32 status = 2;
  // 到期时间
  int64 due_date = 3;
  // 标签
  VipLabel label = 4;
  // 主题
  int32 theme_type = 5;
  // 大会员角标
  // 0:无角标 1:粉色大会员角标 2:绿色小会员角标
  int32 avatar_subscript = 6;
  // 昵称色值，可能为空，色值示例：#FFFB9E60
  string nickname_color = 7;
}

// 大会员标签
message VipLabel {
  // 图片地址
  string path = 1;
  // 文本值
  string text = 2;
  // 对应颜色类型
  string label_theme = 3;
}

// 状态
enum VoteStatus {
  normal = 0;    // 正常
  anonymous = 1; // 匿名
}

// 提权样式
message Weight {
  // 提权展示标题
  string title = 1;
  // 下拉框内容
  repeated WeightItem items = 2;
  // icon
  string icon = 3;
}

// 热门默认跳转按钮
message WeightButton {
  string jump_url = 1;
  // 展示文案
  string title = 2;
}

// 提权不感兴趣
message WeightDislike {
  // 负反馈业务类型 作为客户端调用负反馈接口的参数
  string feed_back_type = 1;
  // 展示文案
  string title = 2;
}

// 提权样式
message WeightItem {
  // 类型
  WeightType type = 1;
  oneof item {
    // 热门默认跳转按钮
    WeightButton button = 2;
    // 提权不感兴趣
    WeightDislike dislike = 3;
  }
}

// 枚举-提权类型
enum WeightType {
  weight_none = 0;    // 默认 占位
  weight_dislike = 1; // 不感兴趣
  weight_jump = 2;    // 跳链
}

//
enum WFItemType {
  WATER_FLOW_TYPE_NONE = 0;
  WATER_FLOW_TYPE_ARCHIVE = 1;
  WATER_FLOW_TYPE_DYNAMIC = 2;
}

//
message WordNode {
  //
  message WordNodeStyle {
    //
    bool bold = 1;
    //
    bool italic = 2;
    //
    bool strikethrough = 3;
    //
    bool underline = 4;
  }
  //
  string words = 1;
  //
  double font_size = 2;
  //
  Colors color = 3;
  //
  WordNodeStyle style = 4;
}