syntax = "proto3";

package bilibili.broadcast.message.tv;

import "google/protobuf/empty.proto";

// 
service Tv {
    // 
    rpc Account (google.protobuf.Empty) returns (stream AccountNotify);
    // 
    rpc CommonPush (google.protobuf.Empty) returns (stream CommonPushNotify);
    // 
    rpc Esports (google.protobuf.Empty) returns (stream EsportsNotify);
    // 
    rpc FeedClientSmart (google.protobuf.Empty) returns (stream FeedClientSmartNotify);
    // 
    rpc LiveBottom (google.protobuf.Empty) returns (stream LiveBottomConfNotify);
    // 
    rpc LiveCommonMsg (google.protobuf.Empty) returns (stream LiveCommonNotify);
    // 
    rpc LiveSkip (google.protobuf.Empty) returns (stream LiveSkipNotify);
    // 
    rpc LiveStatus (google.protobuf.Empty) returns (stream LiveStatusNotify);
    // 
    rpc MainRedDot (google.protobuf.Empty) returns (stream MainRedDotReply);
    // 
    rpc NotifyPop (google.protobuf.Empty) returns (stream NotifyPopReply);
    // 
    rpc OgvPayOrder (google.protobuf.Empty) returns (stream OgvPayOrderReply);
    // 
    rpc Proj (google.protobuf.Empty) returns (stream ProjReply);
    // 
    rpc ProjCore (google.protobuf.Empty) returns (stream ProjReply);
    // 
    rpc ProjLiveEvent (google.protobuf.Empty) returns (stream ProjLiveEventNotify);
    // 
    rpc Publicity (google.protobuf.Empty) returns (stream PublicityNotify);
    // 
    rpc ViewerNumMsg (google.protobuf.Empty) returns (stream LiveViewerMsgNotify);
}

// 
message AccountNotify {
    // 
    string biz = 1;
    // 
    string data = 2;
}

// 
message CommonPushNotify {
    // 
    string cmd = 1;
    // 
    string data = 2;
}

// 
message DanmakuElem {
    // 
    int64 id = 1;
    // 
    int32 progress = 2;
    // 
    int32 mode = 3;
    // 
    int32 fontsize = 4;
    // 
    int32 color = 5;
    // 
    string mid_hash = 6;
    // 
    string content = 7;
    // 
    int64 ctime = 8;
    // 
    int32 weight = 9;
    // 
    string action = 10;
    // 
    int32 pool = 11;
    // 
    string id_str = 12;
    // 
    int32 attr = 13;
}

// 
message DmLiveElem {
    // 
    int64 room_id = 1;
    // 
    int64 room_uid = 2;
    // 
    int64 uid = 3;
    // 
    string uname = 4;
    // 
    int32 user_level = 5;
    // 
    int32 color = 6;
    // 
    string content = 7;
    // 
    int64 time = 8;
    // 
    string msg_id = 9;
    // 
    int32 msg_type = 10;
    // 
    int32 area_id = 11;
    // 
    int32 parent_area_id = 12;
    // 
    int32 dm_type = 13;
    // 
    string id_str = 14;
}

// 
message DmLiveReply {
    // 
    repeated DmLiveElem elems = 1;
    // 
    int32 state = 2;
    // 
    int32 source = 3;
}

// 
message DmLiveSwitchReload {
    // 
    bool reload = 1;
}

// 
message DmSegLiveReply {
    // 
    repeated DanmakuElem elems = 1;
    // 
    int32 state = 2;
}

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

// 
message FeedClientSmartNotify {
    // 
    int64 mid = 1;
    // 
    string cards = 2;
}

// 
message LiveBottomConfNotify {
    // 
    int64 room_id = 1;
    // 
    string bottom_msg = 2;
}

// 
message LiveCommonNotify {
    // 
    string cmd = 1;
    // 
    string data = 2;
}

// 
message LiveSkipNotify {
    // 
    int64 live_id = 1;
}

// 
message LiveStatusNotify {
    // 
    int64 status = 1;
    // 
    string msg = 2;
    // 
    int64 cid = 3;
}

// 
message LiveViewerMsgNotify {
    // 
    int64 room_id = 1;
    // 
    string viewer_msg = 2;
}

// 
message MainRedDotReply {
    // 
    int64 mid = 1;
    // 
    int64 reddot = 2;
}

// 
message NotifyPop {
    // 
    int64 id = 1;
    // 
    int32 style = 2;
    // 
    string img = 3;
    // 
    int32 text_type = 4;
    // 
    string text_top = 5;
    // 
    string text_bottom = 6;
    // 
    int32 expire = 7;
    // 
    repeated NotifyPopBtn notify_btn_list = 8;
}

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

// 
message NotifyPopReply {
    // 
    int64 mid = 1;
    // 
    NotifyPop notify = 2;
}

// 
message OgvPayOrderReply {
    // 
    int64 mid = 1;
    // 
    int64 season_id = 2;
}

// 
message ProjLiveEventNotify {
    // 
    int64 room_id = 1;
    // 
    int64 event_type = 2;
    // 
    string event_msg = 3;
}

// 
message ProjReply {
    // 
    int64 cmd_type = 1;
    // 
    int64 mid = 2;
    // 
    int64 aid = 3;
    // 
    int64 cid = 4;
    // 
    int64 video_type = 5;
    // 
    int64 ep_id = 6;
    // 
    int64 season_id = 7;
    // 
    int64 seek_ts = 8;
    // 
    string extra = 9;
    // 
    int64 room_id = 10;
    // 
    string device_info = 11;
}

// 
message PublicityNotify {
    // 
    int64 publicity_id = 1;
    // 
    int64 room_id = 2;
    // 
    int64 status = 3;
}

