
syntax = "proto3";

package bilibili.app.dynamic.v2;

import "bilibili/app/archive/middleware/v1/preload.proto";
import "bilibili/app/dynamic/v2/dynamic.proto";
import "bilibili/pagination/pagination.proto";

service Opus {
    // 
    rpc ListFav (ListFavReq) returns (ListFavResp);
    // 
    rpc OpusDetail (OpusDetailReq) returns (OpusDetailResp);
}

// 
message ListFavReq {
    // 
    int32 local_time = 1;
    // 
    bilibili.pagination.Pagination pagination = 2;
}

// 
message ListFavResp {
    // 
    repeated OpusFavItem item_list = 1;
    // 
    bilibili.pagination.PaginationReply next_page = 2;
}

// 
message OpusFavItem {
    // 
    int64 opus_id = 1;
    // 
    string card_uri = 2;
    // 
    bilibili.app.dynamic.v2.MdlDynDrawItem cover_pic = 3;
    // 
    bilibili.app.dynamic.v2.Paragraph text_paragraph = 4;
    // 
    bilibili.app.dynamic.v2.CoverIconWithText bottom_text = 5;
    // 
    string click_toast = 6;
}

// 
message OpusDetailReq {
    // 
    OpusType opus_type = 1;
    // 
    int64 oid = 2;
    // 
    int64 dyn_type = 3;
    // 
    string share_id = 4;
    // 
    int32 share_mode = 9;
    // 
    int32 local_time = 10;
    // 
    bilibili.app.archive.middleware.v1.PlayerArgs player_args = 11;
    // 
    Config config = 12;
}

// 
message OpusDetailResp {
    // 
    OpusItem opus_item = 1;
}

// 
message OpusItem {
    // 
    int64 opus_id = 1;
    // 
    OpusType opus_type = 2;
    // 
    int64 oid = 3;
    // 
    repeated Module modules = 4;
    // 
    Extend extend = 5;
}

enum OpusType {
    OPUS_TYPE_DYN = 0;
    OPUS_TYPE_ARTICLE = 1;
    OPUS_TYPE_NOTE = 2;
    OPUS_TYPE_WORD = 3;
}
