syntax = "proto3";

package live.appinterface.v1;

option go_package = "v1";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";

// Index 相关服务
service Index {
    // 首页大接口
    // 首页换一换接口
    // `dynamic_resp:"true" midware:"guest"`
    rpc getAllList (GetAllListReq) returns (GetAllListResp);
    // `midware:"guest"`
    rpc change (ChangeReq) returns (ChangeResp);
}

message GetAllListResp {

}

// GetAllList请求
message GetAllListReq {
    //平台
    string platform = 1 [(gogoproto.moretags) = 'form:"platform" validate:"required"'];
    //设备
    string device = 2 [(gogoproto.moretags) = 'form:"device" validate:"required"'];
    //分辨率
    string scale = 3 [(gogoproto.moretags) = 'form:"scale" validate:"required"'];
    //版本号
    int64 build = 4 [(gogoproto.moretags) = 'form:"build" validate:"required"'];
    //关注页码
    int64 relation_page = 5 [(gogoproto.moretags) = 'form:"relation_page" validate:"required"'];
    //模块id（可选）
    int64 module_id = 6 [(gogoproto.moretags) = 'form:"module_id"'];
}

// 换一换
message ChangeReq {
    // 模块id
    // `mock:"1"`
    int64 module_id = 1 [(gogoproto.moretags) = 'form:"module_id" validate:"required"'];

    string attention_room_id = 2 [(gogoproto.moretags) = 'form:"attention_room_id" validate:"required"'];
    // 平台
    string platform = 3 [(gogoproto.moretags) = 'form:"platform"'];
    //设备
    string device = 4 [(gogoproto.moretags) = 'form:"device"'];
    //分辨率
    string scale = 5 [(gogoproto.moretags) = 'form:"scale"'];
    //版本号
    int64 build = 6 [(gogoproto.moretags) = 'form:"build"'];
}

// 换一换响应
message ChangeResp {
    // 返回码
    message List {
        int64 roomid = 1 [(gogoproto.jsontag) = 'roomid'];
        string title = 2 [(gogoproto.jsontag) = 'title'];
        string uname = 3 [(gogoproto.jsontag) = 'uname'];
        int64 online = 4 [(gogoproto.jsontag) = 'online'];
        string cover = 5 [(gogoproto.jsontag) = 'cover'];
        string link = 6 [(gogoproto.jsontag) = 'link'];
        string face = 7 [(gogoproto.jsontag) = 'face'];
        int64 area_v2_parent_id = 8 [(gogoproto.jsontag) = 'area_v2_parent_id'];
        string area_v2_parent_name = 9 [(gogoproto.jsontag) = 'area_v2_parent_name'];
        int64 area_v2_id = 10 [(gogoproto.jsontag) = 'area_v2_id'];
        string area_v2_name = 11 [(gogoproto.jsontag) = 'area_v2_name'];
        string play_url = 12 [(gogoproto.jsontag) = 'play_url,omitempty'];
        string play_url_h265 = 13 [(gogoproto.jsontag) = 'play_url_h265,omitempty'];
        int64 current_quality = 14 [(gogoproto.jsontag) = 'current_quality,omitempty'];
        int64 broadcast_type = 15 [(gogoproto.jsontag) = 'broadcast_type'];
        string pendent_ru = 16 [(gogoproto.jsontag) = 'pendent_ru'];
        string pendent_ru_pic = 17 [(gogoproto.jsontag) = 'pendent_ru_pic'];
        string pendent_ru_color = 18 [(gogoproto.jsontag) = 'pendent_ru_color'];
        int64 rec_type = 19 [(gogoproto.jsontag) = 'rec_type'];
        int64 pk_id = 20 [(gogoproto.jsontag) = 'pk_id'];
        repeated int64 accept_quality = 21 [(gogoproto.jsontag) = 'accept_quality,omitempty'];
    }

    message ModuleInfo {
        // 模块id
        int64 id = 1 [(gogoproto.jsontag) = 'id'];
        // 标题
        string title = 2 [(gogoproto.jsontag) = 'title'];
        // 图标
        string pic = 3 [(gogoproto.jsontag) = 'pic'];
        // list数据类型  1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5：排行榜（小时榜） 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9：一级分区-标准 10：一级分区-方 11: 活动卡片 12：常用标签推荐入口(用户相关) 13：常用标签推荐房间列表(用户相关) 14：大航海提示入口
        int64 type = 4 [(gogoproto.jsontag) = 'type'];
        // 跳转链接
        string link = 5 [(gogoproto.jsontag) = 'link'];
        // 该模块数据总数
        int64 count = 6 [(gogoproto.jsontag) = 'count'];
        int64 is_sky_horse_gray = 7 [(gogoproto.jsontag) = 'is_sky_horse_gray'];
    }

    message ModuleList {
        //
        ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
        // 注意：可能是 PicList{id,pic,link,title}，需要根据ModuleInfo里的type判断
        repeated List list = 2 [(gogoproto.jsontag) = 'list'];
    }

    repeated ModuleList module_list = 1 [(gogoproto.jsontag) = 'module_list'];
}