syntax = "proto3";

package bilibili.app.dynamic.v2;

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 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 {
    // 
    string 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 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 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;
    }
}

// 动态详情模块类型
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;
}
