syntax = "proto3";

package bilibili.app.viewunite.pgcanymodel;

option java_multiple_files = true;

import "bilibili/app/viewunite/common.proto";

//
message Earphone {
  //
  string product_model = 1;
  //
  string like_toast_text = 2;
  //
  string switch_toast_text = 3;
  //
  string like_toast_voice = 4;
}

//
message EarphoneConf {
  //
  repeated Earphone sp_phones = 1;
}

//
message MultiViewInfo {
  //
  bool is_multi_view_season = 1;
  //
  string changing_dance = 2;
}

//
message OgvData {
  //
  int32 media_id = 1;
  //
  int64 season_id = 2;
  //
  int32 season_type = 3;
  //
  int32 show_season_type = 4;
  //
  Rights rights = 5;
  //
  UserStatus user_status = 6;
  //
  int64 aid = 7;
  //
  Stat stat = 8;
  //
  int32 mode = 9;
  //
  Publish publish = 10;
  //
  PlayStrategy play_strategy = 11;
  //
  MultiViewInfo multi_view_info = 12;
  //
  OgvSwitch ogv_switch = 13;
  //
  int32 total_ep = 14;
  //
  bilibili.app.viewunite.common.NewEp new_ep = 15;
  //
  Reserve reserve = 16;
  //
  int32 status = 17;
  //
  repeated PlayFloatLayerActivity activity_float_layer = 18;
  //
  EarphoneConf earphone_conf = 19;
  //
  string cover = 20;
  //
  string square_cover = 21;
  //
  string share_url = 22;
  //
  string short_link = 23;
  //
  string title = 24;
  //
  string horizontal_cover169 = 25;
  //
  string horizontal_cover1610 = 26;
  //
  int32 has_can_play_ep = 27;
}

//
message OgvSwitch {
  //
  int32 reduce_short_title_spacing = 1;
  //
  int32 merge_position_section_for_cinema = 2;
  //
  int32 merge_preview_section = 3;
  //
  int32 enable_show_vt_info = 4;
}

// 播放器浮层广告(?)
message PlayFloatLayerActivity {
  //
  int32 id = 1;
  //
  string title = 2;
  //
  int32 type = 3;
  //
  int32 ad_badge_type = 4;
  //
  string link = 5;
  //
  string pic_url = 6;
  //
  string pic_anima_url = 7;
  //
  bilibili.app.viewunite.common.BadgeInfo badge = 8;
  //
  int64 show_rate_time = 9;
}

//
message PlayStrategy {
  //
  repeated string strategies = 1;
  //
  int32 recommend_show_strategy = 2;
  //
  string auto_play_toast = 3;
}

//
message Publish {
  //
  string pub_time = 1;
  //
  string pub_time_show = 2;
  //
  int32 is_started = 3;
  //
  int32 is_finish = 4;
  //
  int32 weekday = 5;
  //
  string release_date_show = 6;
  //
  string time_length_show = 7;
  //
  int32 unknow_pub_date = 8;
  //
  string update_info_desc = 9;
}

//
message Reserve {
  //
  repeated bilibili.app.viewunite.common.ViewEpisode episodes = 1;
  //
  string tip = 2;
}

// 权限相关信息
message Rights {
  //
  int32 allow_download = 1;
  //
  int32 allow_review = 2;
  //
  int32 can_watch = 3;
  //
  int32 is_cover_show = 4;
  //
  string copyright = 5;
  //
  string copyright_name = 6;
  //
  int32 allow_bp = 7;
  //
  int32 area_limit = 8;
  //
  int32 is_preview = 9;
  //
  int32 ban_area_show = 10;
  //
  int32 watch_platform = 11;
  //
  int32 allow_bp_rank = 12;
  //
  string resource = 13;
  //
  int32 forbid_pre = 14;
  //
  int32 only_vip_download = 15;
  //
  int32 new_allow_download = 16;
}

//
message Stat {
  //
  string followers = 1;
  //
  bilibili.app.viewunite.common.StatInfo play_data = 2;
}

//
message UserStatus {
  //
  int32 show = 1;
  //
  int32 follow = 2;
  //
  int32 follow_status = 3;
  //
  int32 pay = 4;
  //
  int32 sponsor = 5;
  //
  int32 vip = 6;
  // vip 是否被冻结
  int32 vip_frozen = 7;
  //
  WatchProgress watch_progress = 8;
}

// 
message ViewPgcAny {
  //
  OgvData ogv_data = 1;
  //
  map<int64, bilibili.app.viewunite.common.Staff> all_up_info = 2;
}

//
message WatchProgress {
  //
  int64 last_ep_id = 1;
  //
  string last_ep_index = 2;
  //
  int64 last_time = 3;
}