syntax = "proto3";

package bilibili.main.community.reply.v1;

option java_multiple_files = true;

import "bilibili/pagination/pagination.proto";
import "google/protobuf/any.proto";

// 评论区
service Reply {
  // 主评论列表接口
  rpc MainList(MainListReq) returns (MainListReply);
  // 二级评论明细接口
  rpc DetailList(DetailListReq) returns (DetailListReply);
  // 对话评论树接口
  rpc DialogList(DialogListReq) returns (DialogListReply);
  // 评论预览接口
  rpc PreviewList(PreviewListReq) returns (PreviewListReply);
  // 评论搜索item前置发布接口
  rpc SearchItemPreHook(SearchItemPreHookReq) returns (SearchItemPreHookReply);
  // 评论搜索插入项目接口
  rpc SearchItem(SearchItemReq) returns (SearchItemReply);
  // 评论at用户搜索接口
  rpc AtSearch(AtSearchReq) returns (AtSearchReply);
  // 查询单条评论接口
  rpc ReplyInfo(ReplyInfoReq) returns (ReplyInfoReply);
  // 用户回调上报接口
  rpc UserCallback(UserCallbackReq) returns (UserCallbackReply);
  // 评论分享材料接口
  rpc ShareRepliesInfo(ShareRepliesInfoReq) returns (ShareRepliesInfoResp);
  // 评论表情推荐列表接口
  rpc SuggestEmotes(SuggestEmotesReq) returns (SuggestEmotesResp);
}

// 活动
message Activity {
  // 活动id
  int64 activity_id = 1;
  // 活动状态
  // -1:待审 1:上线
  int64 activity_state = 2;
  // 参与活动的输入框文案
  string activity_placeholder = 3;
}

// 文章项目
message ArticleSearchItem {
  // 标题
  string title = 1;
  // UP主昵称
  string up_nickname = 2;
  // 封面
  repeated string covers = 3;
}

// 评论at用户搜索组
message AtGroup {
  // 组类型
  int32 group_type = 1;
  // 组标题
  string group_name = 2;
  // 评论at用户搜索列表
  repeated AtItem items = 3;
}

// 评论at用户搜索条目
message AtItem {
  // 用户mid
  int64 mid = 1;
  // 用户名
  string name = 2;
  // 用户头像url
  string face = 3;
  // 用户是否关注
  int32 fans = 4;
  // 用户认证类型
  int32 official_verify_type = 5;
}

// 评论at用户搜索-响应
message AtSearchReply {
  // 评论at用户搜索组
  repeated AtGroup groups = 1;
}

// 评论at用户搜索-请求
message AtSearchReq {
  //
  int64 mid = 1;
  // 关键字
  string keyword = 2;
}

// 广告
message CM {
  // 广告数据(需要解包)
  google.protobuf.Any source_content = 1;
}

// 评论主体信息
message Content {
  // 评论文本
  string message = 1;
  // 需要渲染的用户转义
  map<string, Member> menber = 2;
  // 需要渲染的表情转义
  map<string, Emote> emote = 3;
  // 需要高亮的话题转义
  map<string, Topic> topic = 4;
  // 需要高亮的超链转义
  map<string, Url> url = 5;
  // 投票信息
  Vote vote = 6;
  // at到的用户mid列表
  map<string, int64> at_name_to_mid = 7;
  // 富文本
  RichText rich_text = 8;
  // 评论图片
  repeated  Picture pictures = 9;
}

// 图片信息
message Picture {
  // 图片URL
  string img_src = 1;
  // 图片宽度
  double img_width = 2;
  // 图片高度
  double img_height = 3;
  // 图片大小，单位KB
  double img_size = 4;
}

// 页面游标回复
message CursorReply {
  // 下页数据
  int64 next = 1;
  // 上页数据
  int64 prev = 2;
  // 是否到顶
  bool isBegin = 3;
  // 是否到底
  bool isEnd = 4;
  // 排序方式
  // 2:时间 3:热度
  Mode mode = 5;
  // 当前排序mode在切换按钮上的展示文案
  string mode_text = 6;
}

// 页面游标请求
message CursorReq {
  // 下页数据
  int64 next = 1;
  // 上页数据
  int64 prev = 2;
  // 排序方式
  Mode mode = 4;
}

// 二级评论明细-响应
message DetailListReply {
  // 页面游标
  CursorReply cursor = 1;
  // 评论区显示控制字段
  SubjectControl subject_control = 2;
  // 根评论信息(带二级评论)
  ReplyInfo root = 3;
  // 评论区的活动
  Activity activity = 4;
  //
  LikeInfo likes = 5;
  // 排序方式
  Mode mode = 6;
  // 当前排序mode在切换按钮上的展示文案
  string mode_text = 7;
  // 分页
  bilibili.pagination.FeedPaginationReply pagination_reply = 8;
  //
  string session_id = 9;
}

// 二级评论明细-请求
message DetailListReq {
  // 目标评论区id
  int64 oid = 1;
  // 目标评论区业务type
  int64 type = 2;
  // 根评论rpid
  int64 root = 3;
  // 目标评论rpid
  int64 rpid = 4;
  // 页面游标
  CursorReq cursor = 5;
  // 来源标识
  DetailListScene scene = 6;
  // 排序方式
  Mode mode = 7;
  // 分页
  bilibili.pagination.FeedPagination pagination = 8;
}

// 来源标识
enum DetailListScene {
  REPLY = 0; // 评论区展开
  MSG_FEED = 1; // 回复消息推送
  NOTIFY = 2; //
}

// 对话评论树-响应
message DialogListReply {
  // 页面游标
  CursorReply cursor = 1;
  // 评论区显示控制字段
  SubjectControl subject_control = 2;
  // 子评论列表
  repeated ReplyInfo replies = 3;
  // 评论区的活动
  Activity activity = 4;
}

// 对话评论树-请求
message DialogListReq {
  // 目标评论区id
  int64 oid = 1;
  // 目标评论区业务type
  int64 type = 2;
  // 根评论rpid
  int64 root = 3;
  // 对话评论rpid
  int64 rpid = 4;
  // 页面游标
  CursorReq cursor = 5;
}

// 特效
message Effects {
  //
  string preloading = 1;
}

// 表情项
message Emote {
  // 表情大小
  // 1:小 2:大
  int64 size = 1;
  // 表情url
  string url = 2;
  //
  string jump_url = 3;
  //
  string jump_title = 4;
  //
  int64 id = 5;
  //
  int64 package_id = 6;
  //
  string gif_url = 7;
  //
  string text = 8;
}

// 商品项目
message GoodsSearchItem {
  // 商品id
  int64 id = 1;
  // 商品名
  string name = 2;
  // 价钱
  string price = 3;
  // 收入
  string income = 4;
  // 图片
  string img = 5;
  // 标签
  string label = 6;
}

//
message LikeInfo {
  //
  message Item {
    //
    Member member = 1;
  }
  //
  repeated Item items = 1;
  //
  string title = 2;
}

// 抽奖
message Lottery {
  // 抽奖id
  int64 lottery_id = 1;
  // 抽奖状态
  // 0:未开奖 1:开奖中 2:已开奖
  int64 lottery_status = 2;
  // 抽奖人mid
  int64 lottery_mid = 3;
  // 开奖时间
  int64 lottery_time = 4;
  //
  int64 oid = 5;
  //
  int64 type = 6;
  // 发送时间
  int64 ctime = 7;
  // 抽奖评论正文
  Content content = 8;
  // 用户信息
  Member member = 9;
  // 评论条目控制字段
  ReplyControl reply_control = 10;
}

// 主评论列表-响应
message MainListReply {
  // 页面游标
  CursorReply cursor = 1;
  // 评论列表
  repeated ReplyInfo replies = 2;
  // 评论区显示控制字段
  SubjectControl subject_control = 3;
  // UP置顶评论
  ReplyInfo up_top = 4;
  // 管理员置顶评论
  ReplyInfo admin_top = 5;
  // 投票置顶评论
  ReplyInfo vote_top = 6;
  // 评论区提示
  Notice notice = 7;
  // 抽奖评论
  Lottery lottery = 8;
  // 活动
  Activity activity = 9;
  // 精选评论区筛选后台信息
  UpSelection up_selection = 10;
  // 广告
  CM cm = 11;
  // 特效
  Effects effects = 12;
  //
  Operation operation = 13;
  //
  repeated ReplyInfo top_replies = 14;
  //
  QoeInfo qoe = 15;
  //
  map<string, int32> callbacks = 16;
  //
  OperationV2 operation_v2 = 17;
  // 排序方式
  Mode mode = 18;
  // 当前排序mode在切换按钮上的展示文案
  string mode_text = 19;
  // 分页
  bilibili.pagination.FeedPaginationReply pagination_reply = 20;
  //
  string session_id = 21;
  //
  string report_params = 22;
  //
  VoteCard vote_card = 23;
}

// 主评论列表-请求
message MainListReq {
  // 目标评论区id
  int64 oid = 1;
  // 目标评论区业务type
  int64 type = 2;
  // 页面游标
  CursorReq cursor = 3;
  // 扩展数据json
  string extra = 4;
  // 广告扩展
  string ad_extra = 5;
  // 目标评论rpid
  int64 rpid = 6;
  //
  int64 seek_rpid = 7;
  // 评论区筛选类型 取值可为: ["全部" "粉丝评论" "笔记长评"]
  string filter_tag_name = 8;
  // 排序方式
  Mode mode = 9;
  // 分页
  bilibili.pagination.FeedPagination pagination = 10;
}

// 用户信息
message Member {
  // 地区类型
  enum RegionType {
    DEFAULT = 0; // 默认
    MAINLAND = 1; // 大陆地区
    GAT = 2; //
  }
  //
  enum ShowStatus {
    SHOWDEFAULT = 0; // 默认
    ZOOMINMAINLAND = 1; //
    RAW = 2; //
  }
  // NFT地区
  message Region {
    // 地区类型
    RegionType type = 1;
    // 角标url
    string icon = 2;
    //
    ShowStatus show_status = 3;
  }
  // NFT信息
  message NftInteraction {
    //
    string itype = 1;
    //
    string metadata_url = 2;
    //
    string nft_id = 3;
    // NFT地区
    Region region = 4;
  }
  /**********基础信息**********/
  // 用户mid
  int64 mid = 1;
  // 昵称
  string name = 2;
  // 性别
  string sex = 3;
  // 头像url
  string face = 4;
  // 等级
  int64 level = 5;
  // 认证类型
  int64 official_verify_type = 6;
  /**********VIP相关**********/
  // 会员类型
  // 0:不是大会员 1:月度会员 2:年度大会员
  int64 vip_type = 7;
  // 会员状态
  int64 vip_status = 8;
  // 会员样式
  int64 vip_theme_type = 9;
  // 会员铭牌样式url
  string vip_label_path = 10;
  /**********装扮相关**********/
  // 头像框url
  string garb_pendant_image = 11;
  // 装扮卡url
  string garb_card_image = 12;
  // 有关注按钮时的装扮卡url
  string garb_card_image_with_focus = 13;
  // 专属装扮页面url
  string garb_card_jump_url = 14;
  // 专属装扮id
  string garb_card_number = 15;
  // 专属装扮id显示颜色
  string garb_card_fan_color = 16;
  // 是否为专属装扮卡
  bool garb_card_is_fan = 17;
  /**********粉丝勋章相关**********/
  // 粉丝勋章名
  string fans_medal_name = 18;
  // 粉丝勋章等级
  int64 fans_medal_level = 19;
  // 粉丝勋章显示颜色
  int64 fans_medal_color = 20;
  // 会员昵称颜色
  string vip_nickname_color = 21;
  // 会员角标
  // 0:无角标 1:粉色大会员角标 2:绿色小会员角标
  int32 vip_avatar_subscript = 22;
  // 会员标签文
  string vip_label_text = 23;
  // 会员标颜色
  string vip_label_theme = 24;
  // 粉丝勋章底色
  int64 fans_medal_color_end = 25;
  // 粉丝勋章边框颜色
  int64 fans_medal_color_border = 26;
  // 粉丝勋章名颜色
  int64 fans_medal_color_name = 27;
  // 粉丝勋章等级颜色
  int64 fans_medal_color_level = 28;
  //
  int64 fans_guard_level = 29;
  //
  int32 face_nft = 30;
  // 是否NFT头像
  int32 face_nft_new = 31;
  // 是否为硬核会员
  int32 is_senior_member = 32;
  // NFT信息
  NftInteraction nft_interaction = 33;
  //
  string fans_guard_icon = 34;
  //
  string fans_honor_icon = 35;
}

// 用户信息V2
message MemberV2 {
  // 基本信息
  message Basic {
    // 用户mid
    int64 mid = 1;
    // 昵称
    string name = 2;
    // 性别
    string sex = 3;
    // 头像url
    string face = 4;
    // 等级
    int64 level = 5;
  }
  // 认证
  message Official {
    // 认证类型
    int64 verify_type = 1;
  }
  // 大会员
  message Vip {
    // 会员类型
    // 0:不是大会员 1:月度会员 2:年度大会员
    int64 type = 1;
    // 会员状态
    int64 status = 2;
    // 会员样式
    int64 theme_type = 3;
    // 会员铭牌样式url
    string label_path = 4;
    //
    string nickname_color = 5;
    //
    int32 avatar_subscript = 6;
    //
    string label_text = 7;
    //
    string vip_label_theme = 8;
  }
  // 装扮
  message Garb {
    // 头像框url
    string pendant_image = 1;
    // 装扮卡url
    string card_image = 2;
    // 有关注按钮时的装扮卡url
    string card_image_with_focus = 3;
    // 专属装扮页面url
    string card_jump_url = 4;
    // 专属装扮id
    string card_number = 5;
    // 专属装扮id显示颜色
    string card_fan_color = 6;
    // 是否为专属装扮卡
    bool card_is_fan = 7;
  }
  // 粉丝勋章
  message Medal {
    // 粉丝勋章名
    string name = 1;
    // 粉丝勋章等级
    int64 level = 2;
    // 粉丝勋章显示颜色
    int64 color_start = 3;
    // 粉丝勋章底色
    int64 color_end = 4;
    // 粉丝勋章边框颜色
    int64 color_border = 5;
    // 粉丝勋章名颜色
    int64 color_name = 6;
    // 粉丝勋章等级颜色
    int64 color_level = 7;
    //
    int64 guard_level = 8;
    //
    string first_icon = 9;
    //
    int64 level_bg_color = 11;
  }
  // 地区类型
  enum RegionType {
    DEFAULT = 0; // 默认
    MAINLAND = 1; // 大陆地区
    GAT = 2; //
  }
  //
  enum ShowStatus {
    SHOWDEFAULT = 0; //
    ZOOMINMAINLAND = 1; //
    RAW = 2; //
  }
  // NFT地区
  message Region {
    // 地区类型
    RegionType type = 1;
    // 角标url
    string icon = 2;
    //
    ShowStatus show_status = 3;
  }
  // NFT信息
  message Interaction {
    //
    string itype = 1;
    //
    string metadata_url = 2;
    //
    string nft_id = 3;
    // NFT地区
    Region region = 4;

  }
  // NFT
  message Nft {
    //
    int32 face = 1;
    //
    Interaction interaction = 2;
  }
  // 硬核会员
  message Senior {
    // 是否为硬核会员
    int32 is_senior_member = 1;
  }
  // 契约
  message Contractor {
    // 是否和up签订契约
    bool is_contractor = 1;
    // 契约显示文案
    string contract_desc = 2;
  }
  // 基本信息
  Basic basic = 1;
  // 认证信息
  Official official = 2;
  // 大会员信息
  Vip vip = 3;
  // 装扮信息
  Garb garb = 4;
  // 粉丝勋章信息
  Medal medal = 5;
  // NFT信息
  Nft nft = 6;
  // 硬核会员信息
  Senior senior = 7;
  // 契约信息
  Contractor contractor = 8;
}

// 排序方式
enum Mode {
  DEFAULT = 0; //
  UNSPECIFIED = 1; // 默认排序
  MAIN_LIST_TIME = 2; // 按时间
  MAIN_LIST_HOT = 3; // 按热度
}

//
message Notice {
  //
  int64 id = 1;
  //
  string content = 2;
  //
  string link = 3;
}

//
message Operation {
  //
  int32 type = 1;
  //
  int64 id = 2;
  //
  OperationTitle title = 3;
  //
  OperationTitle subtitle = 4;
  //
  string link = 5;
  //
  string report_extra = 6;
  //
  string icon = 7;
}

//
message OperationV2 {
  //
  int32 type = 1;
  //
  string prefix_text = 2;
  //
  OperationIcon icon = 3;
  //
  string title = 4;
  //
  string link = 5;
  //
  string report_extra = 6;
}

//
message OperationIcon {
  //
  int32 position = 1;
  //
  string url = 2;
}

//
message OperationTitle {
  //
  string content = 1;
  //
  bool is_highlight = 2;
}

// PGC视频项目
message PGCVideoSearchItem {
  // 标题
  string title = 1;
  // 类别
  string category = 2;
  // 封面
  string cover = 3;
}

// 评论区预览-回复
message PreviewListReply {
  // 页面游标
  CursorReply cursor = 1;
  // 评论列表
  repeated ReplyInfo replies = 2;
  // 评论区显示控制字段
  SubjectControl subject_control = 3;
  // UP置顶评论
  ReplyInfo upTop = 4;
  // 管理员置顶评论
  ReplyInfo admin_top = 5;
  // 投票置顶评论
  ReplyInfo vote_top = 6;
}

// 评论区预览-请求
message PreviewListReq {
  // 目标评论区id
  int64 oid = 1;
  // 目标评论区业务type
  int64 type = 2;
  // 页面游标
  CursorReq cursor = 3;
}

//
message QoeInfo {
  //
  int64 id = 1;
  //
  int32 type = 2;
  //
  int32 style = 3;
  //
  string title = 4;
  //
  string feedback_title = 5;
  //
  repeated QoeScoreItem score_items = 6;
  //
  int64 display_rank = 7;
}

//
message QoeScoreItem {
  //
  string title = 1;
  //
  string url = 2;
  //
  float score = 3;
}

// 评论条目标签信息
message ReplyCardLabel {
  // 标签文本
  string text_content = 1;
  // 文本颜色
  string text_color_day = 2;
  // 文本颜色夜间
  string text_color_night = 3;
  // 标签颜色
  string label_color_day = 4;
  // 标签颜色夜间
  string label_color_night = 5;
  //
  string image = 6;
  // 标签类型 0:UP主觉得很赞 1:妙评
  int32 type = 7;
  // 背景url
  string background = 8;
  // 背景宽
  double background_width = 9;
  // 背景高
  double background_height = 10;
  // 点击跳转url
  string jump_url = 11;
  //
  int64 effect = 12;
  //
  int64 effect_start_time = 13;
}

// 评论条目控制字段
message ReplyControl {
  // 操作行为标志
  // 0:无 1:已点赞 2:已点踩
  int64 action = 1;
  // 是否UP觉得很赞
  bool up_like = 2;
  // 是否存在UP回复
  bool up_reply = 3;
  // 是否显示关注按钮
  bool show_follow_btn = 4;
  // 是否协管
  bool is_assist = 5;
  // 是否展示标签
  string label_text = 6;
  // 是否关注
  bool following = 7;
  // 是否粉丝
  bool followed = 8;
  // 是否被自己拉黑
  bool blocked = 9;
  // 是否存在折叠的二级评论
  bool has_folded_reply = 10;
  // 是否折叠
  bool is_folded_reply = 11;
  // 是否UP置顶
  bool is_up_top = 12;
  // 是否管理置顶
  bool is_admin_top = 13;
  // 是否置顶投票评论
  bool is_vote_top = 14;
  // 最大收起显示行数
  int64 max_line = 15;
  // 该条评论可不可见
  bool invisible = 16;
  // 是否和up签订契约
  bool is_contractor = 17;
  // 是否是笔记评论
  bool is_note = 18;
  // 评论条目标签列表
  repeated ReplyCardLabel card_labels = 19;
  // 子评论数文案 "共x条回复"
  string sub_reply_entry_text = 20;
  // 子评论数文案 "相关回复共x条"
  string sub_reply_title_text = 21;
  // 契约显示文案
  string contract_desc = 22;
  // 发布时间文案 "x天前发布"
  string time_desc = 23;
  //
  string biz_scene = 24;
  // IP属地信息 "IP属地：xxx"
  string location = 25;
}

//
message ReplyExtra {
  //
  int64 season_id = 1;
  //
  int64 season_type = 2;
  //
  int64 ep_id = 3;
  //
  bool is_story = 4;
}

// 评论条目信息
message ReplyInfo {
  // 二级评论列表
  repeated ReplyInfo replies = 1;
  // 评论rpid
  int64 id = 2;
  // 评论区对象id
  int64 oid = 3;
  // 评论区类型
  int64 type = 4;
  // 发布者UID
  int64 mid = 5;
  // 根评论rpid
  int64 root = 6;
  // 父评论rpid
  int64 parent = 7;
  // 对话评论rpid
  int64 dialog = 8;
  // 点赞数
  int64 like = 9;
  // 发布时间
  int64 ctime = 10;
  // 回复数
  int64 count = 11;
  // 评论主体信息
  Content content = 12;
  // 发布者信息
  Member member = 13;
  // 评论控制字段
  ReplyControl reply_control = 14;
  // 发布者信息V2
  MemberV2 member_v2 = 15;
}

// 查询单条评论-响应
message ReplyInfoReply {
  // 评论条目信息
  ReplyInfo reply = 1;
}

// 查询单条评论-请求
message ReplyInfoReq {
  // 评论rpid
  int64 rpid = 1;
  //
  int32 scene = 2;
}

// 富文本
message RichText {
  // 富文本类型
  oneof item {
    // 笔记
    RichTextNote note = 1;
  }
}

// 笔记
message RichTextNote {
  // 预览文本
  string summary = 1;
  // 笔记预览图片url列表
  repeated string images = 2;
  // 笔记页面url
  string click_url = 3;
  // 发布日期 YYYY-mm-dd
  string last_mtime_text = 4;
}

// 评论搜索插入项目
message SearchItem {
  //
  string url = 1;
  // 项目
  oneof item {
    // 商品
    GoodsSearchItem goods = 2;
    // 视频
    VideoSearchItem video = 3;
    // 专栏
    ArticleSearchItem article = 4;
  }
}

// 评论搜索插入项目响应游标
message SearchItemCursorReply {
  // 是否有下一页
  bool has_next = 1;
  // 下页
  int64 next = 2;
}

// 评论搜索插入项目请求游标
message SearchItemCursorReq {
  // 下一页
  int64 next = 1;
  // tab类型
  SearchItemType item_type = 2;
}

// 评论搜索item前置发布-响应
message SearchItemPreHookReply {
  // 输入框的文案
  string placeholder_text = 1;
  // 背景空白的时候的文案
  string background_text = 2;
  // 有权限的tab栏的顺序
  repeated SearchItemType ordered_type = 3;
}

// 评论搜索item前置发布-请求
message SearchItemPreHookReq {
  // 目标评论区id
  int64 oid = 1;
  // 目标评论区业务type
  int64 type = 2;
}

// 评论搜索插入项目-回复
message SearchItemReply {
  //
  SearchItemCursorReply cursor = 1;
  // 搜索的结果
  repeated SearchItem items = 2;
  // 附加信息
  SearchItemReplyExtraInfo extra = 3;
}

//
message SearchItemReplyExtraInfo {
  //
  string event_id = 1;
}

// 评论搜索插入项目-请求
message SearchItemReq {
  // 页面游标
  SearchItemCursorReq cursor = 1;
  // 目标评论区id
  int64 oid = 2;
  // 目标评论区业务type
  int64 type = 3;
  // 搜索关键词
  string keyword = 4;
}

//
enum SearchItemType {
  DEFAULT_ITEM_TYPE = 0; //
  GOODS = 1; //
  VIDEO = 2; //
  ARTICLE = 3; //
}

//
enum SearchItemVideoSubType {
  UGC = 0; //
  PGC = 1; //
}

// 评论分享材料-请求
message ShareRepliesInfoReq {
  // 评论rpid列表
  repeated int64 rpids = 1;
  // 目标评论区id
  int64 oid = 2;
  // 目标评论区业务type
  int64 type = 3;
}

// 评论分享材料-响应
message ShareRepliesInfoResp {
  //
  message ShareExtra {
    //
    bool is_pgc = 1;
  }
  // 评论分享条目列表
  repeated ShareReplyInfo infos = 1;
  // 源内容标题
  string from_title = 2;
  // 源内容UP主
  string from_up = 3;
  // 源内容封面url
  string from_pic = 4;
  // 源内容页面url
  string url = 5;
  // logo url
  string slogan_pic = 6;
  // 标语
  string slogan_text = 7;
  //
  ShareReplyTopic topic = 8;
  //
  ShareExtra extra = 9;
}

// 评论分享条目信息
message ShareReplyInfo {
  // 用户信息
  Member member = 1;
  // 评论主体信息
  Content content = 2;
  // 分享标题(评论发布者昵称)
  string title = 3;
  // 分享副标题 "发表了评论"
  string sub_title = 4;
  // 荣誉信息文案 "获得了up主点赞"
  string achievement_text = 5;
  //
  string label_url = 6;
}

//
message ShareReplyTopic {
  //
  Topic topic = 1;
  //
  string origin_text = 2;
}

// 评论区控制字段
message SubjectControl {
  // 评论区筛选类型
  message FilterTag {
    // 类型名
    string name = 1;
    //
    string event_id = 2;
  }
  // UP主mid
  int64 up_mid = 1;
  // 自己是否为协管
  bool is_assist = 2;
  // 是否只读
  bool read_only = 3;
  // 是否有发起投票权限
  bool has_vote_access = 4;
  // 是否有发起抽奖权限
  bool has_lottery_access = 5;
  // 是否有被折叠评论
  bool has_folded_reply = 6;
  // 空评论区背景文案
  string bg_text = 7;
  // 是否被UP拉黑
  bool up_blocked = 8;
  // 是否有发起活动权限
  bool has_activity_access = 9;
  // 标题展示控制
  bool show_title = 10;
  // 是否显示UP主操作标志
  bool show_up_action = 11;
  // 是否显示评论区排序切换按钮
  int64 switcher_type = 12;
  // 是否禁止输入框
  bool input_disable = 13;
  // 根评论输入框背景文案
  string root_text = 14;
  // 子评论输入框背景文案
  string child_text = 15;
  // 评论总数
  int64 count = 16;
  // 评论区标题
  string title = 17;
  // 离开态输入框的文案
  string giveup_text = 18;
  // 是否允许笔记
  bool has_note_access = 19;
  //
  bool disable_jump_emote = 20;
  //
  string empty_background_text_plain = 21;
  //
  string empty_background_text_highlight = 22;
  //
  string empty_background_uri = 23;
  // 评论区筛选类型列表
  repeated FilterTag support_filter_tags = 24;
}

// 评论表情推荐列表-请求
message SuggestEmotesReq {
  // 目标评论区id
  int64 oid = 1;
  // 目标评论区业务type
  int64 type = 2;
}

// 评论表情推荐列表-响应
message SuggestEmotesResp {
  // 表情推荐列表
  repeated Emote emotes = 1;
}

// 话题项
message Topic {
  // 跳转url
  string link = 1;
  // 话题id
  int64 id = 2;
}

// UGC视频项目
message UGCVideoSearchItem {
  // 标题
  string title = 1;
  // UP主昵称
  string up_nickname = 2;
  // 时长(单位为秒)
  int64 duration = 3;
  // 封面
  string cover = 4;
}

// 精选评论
message UpSelection {
  // 待审评论数
  int64 pending_count = 1;
  // 忽略评论数
  int64 ignore_count = 2;
}

// 超链项
message Url {
  // 扩展字段
  message Extra {
    //
    int64 goods_item_id = 1;
    //
    string goods_prefetched_cache = 2;
    //
    int32 goods_show_type = 3;
    // 热词搜索
    bool is_word_search = 4;
    //
    int64 goods_cm_control = 5;
  }
  // 标题
  string title = 1;
  //
  int64 state = 2;
  // 图标url
  string prefix_icon = 3;
  // 客户端内跳转uri
  string app_url_schema = 4;
  //
  string app_name = 5;
  //
  string app_package_name = 6;
  // 点击上报数据
  string click_report = 7;
  // 是否半屏打开
  bool is_half_screen = 8;
  // 展现上报数据
  string exposure_report = 9;
  // 扩展字段
  Extra extra = 10;
  // 是否下划线
  bool underline = 11;
  //
  bool match_once = 12;
  // 网页url
  string pc_url = 13;
  //
  int32 icon_position = 14;
}

//
enum UserCallbackAction {
  Dismiss = 0; //
}

// 用户回调上报-响应
message UserCallbackReply {}

// 用户回调上报-请求
message UserCallbackReq {
  // 用户mid
  int64 mid = 1;
  //
  UserCallbackScene scene = 2;
  //
  UserCallbackAction action = 3;
  // 目标评论区id
  int64 oid = 4;
  // 目标评论区业务type
  int64 type = 5;
}

//
enum UserCallbackScene {
  Insert = 0; //
}

// 视频项目
message VideoSearchItem {
  //
  SearchItemVideoSubType type = 1;
  //
  oneof video_item {
    // UGC视频
    UGCVideoSearchItem ugc = 2;
    // PGC视频
    PGCVideoSearchItem pgc = 3;
  }
}

// 投票信息
message Vote {
  // 投票id
  int64 id = 1;
  // 投票标题
  string title = 2;
  // 参与人数
  int64 count = 3;
}

//
message VoteCard{
  // 投票id
  int64 vote_id = 1;
  // 投票标题
  string title = 2;
  //
  int64 count = 3;
  //
  repeated VoteCardOption options = 4;
  //
  int64 my_vote_option = 5;
}

//
message VoteCardOption{
  //
  int64 idx = 1;
  //
  string desc = 2;
  //
  int64 count = 3;
}