syntax = "proto2";
package SongRequestResult;

option java_package = "com.miaole.live.protocol.response";
option java_outer_classname = "SongRequestResult";

// 歌单列表项
message PlaylistResult {
  repeated Playlist playlists = 1;//歌单列表
  repeated SongInfo songs = 2;//第一个歌单中的歌曲
}

// 歌单列表项
message Playlist {
  optional string id = 1;                                 // 歌单ID
  optional string name = 2;                               // 歌单名称
  optional string coverUrl = 3;                           // 封面URL
  optional string userId = 4;                             // 创建用户ID
  optional int32 songCount = 5;                           // 歌曲数量
}

// 冠名信息
message CrownInfo {
  optional string userId = 1;           // 冠名用户ID
  optional string userName = 2;         // 冠名用户名
  optional string userAvatar = 3;       // 冠名用户头像
  optional int32 multiple = 4;          // 冠名倍数
  optional int32 crownPrice = 5;        // 冠名价格(蓝钻)
}

// 歌曲信息
message SongInfo {
  optional string songId = 1;           // 歌曲ID
  optional string songName = 2;         // 歌曲名称
  optional string singer = 3;           // 演唱者
  optional string micUserId = 4;        // 麦位用户ID
  optional string hostId = 5;           // 主播ID
  optional string hostName = 6;         // 主播名称
  optional string category = 7;         // 分类标签
  optional bool isCrowned = 8;          // 是否被冠名
  optional CrownInfo crownInfo = 9;     // 冠名信息
  optional int32 status = 10;           // 歌曲状态(0可点/1已点/2演唱中)
  optional int64 basePrice = 11;        // 基础点歌价格
}

// 点歌记录
message SongRequestInfo {
  optional string orderId = 1;          // 订单ID
  optional string userId = 2;           // 点歌用户ID
  optional string userName = 3;         // 点歌用户名
  optional string userAvatar = 4;       // 点歌用户头像
  optional string roomId = 5;           // 房间ID
  optional string micUserId = 6;        // 麦位用户ID
  optional string songId = 7;           // 歌曲ID
  optional string songName = 8;         // 歌曲名称
  optional int64 price = 9;             // 点歌价格
  optional bool isCrowned = 10;         // 是否冠名
  optional int32 crownMultiple = 11;    // 冠名倍数
  optional int64 requestTime = 12;      // 点歌时间
  optional int32 status = 13;           // 状态(0待唱/1演唱中/2已完成)
  optional string singerName = 14;      // 歌手名称
}

// 歌曲列表响应
message SongListResult {
  repeated SongInfo songs = 1;          // 歌曲列表
  optional int32 total = 2;             // 总数
}

// 点歌成功响应
message RequestSongResult {
  optional SongRequestInfo request = 1;  // 点歌记录
  optional int64 userBalance = 2;        // 用户剩余余额
}

// 冠歌成功响应
message CrownSongResult {
  optional CrownInfo crownInfo = 1;      // 冠名信息
  optional int64 userBalance = 2;        // 用户剩余余额
}

// 演唱队列响应
message SingingQueueResult {
  repeated SongRequestInfo queue = 1;    // 演唱队列
  optional SongRequestInfo currentSinging = 2; // 当前演唱
}

// 冠名歌单响应
message CrownedPlaylistResult {
  repeated SongInfo songs = 1;           // 冠名歌曲列表
}

// 操作结果响应
message OperationResult {
  optional bool success = 1;             // 操作是否成功
  optional string message = 2;           // 操作消息
}

//获取点歌曲信息
message SongInfoResult {
  optional SongInfo song = 1;          // 歌曲信息
  optional int32 consumeDiamond = 2;   // 消耗钻石
}