syntax = "proto2";
package SongManageCmd;

option java_package = "com.miaole.live.protocol.request";
option java_outer_classname = "SongManageCmd";

// ==================== 歌单管理请求 ====================
// 获取歌单列表和冠款价设置
// 返回：SongManageResult.PlaylistListWithCrownPrice
message getPlaylistsWithCrownPrice {
  optional string userId = 1;       // 可选，用户ID
  optional int32 status = 2;        // 可选，状态筛选：1=审核中，2=已通过，3=已拒绝
  optional int32 page = 3;          // 可选，页码（默认1）
  optional int32 pageSize = 4;      // 可选，每页数量（默认10）
}

// 获取歌单详情
// 返回：SongManageResult.PlaylistDetail
message getPlaylist {
  optional string id = 1;           // 必填，歌单ID
}

// 创建歌单
// 返回：SongManageResult.PlaylistCreated
message createPlaylist {
  optional string name = 1;         // 必填，歌单名称（最多8字符）
  optional string coverId = 2;      // 必填，封面ID
}

// 更新歌单
// 返回：SongManageResult.PlaylistUpdated
message updatePlaylist {
  optional string id = 1;           // 必填，歌单ID
  optional string name = 2;         // 可选，歌单名称
  optional string coverId = 3;      // 可选，封面ID
}

// 添加歌曲到歌单
// 返回：SongManageResult.SongsAddedToPlaylist
message addSongsToPlaylist {
  optional string playlistId = 1;   // 必填，歌单ID
  repeated string songIds = 2;      // 必填，歌曲ID列表（至少1首）
}

// 移除歌曲
message removeSongsToPlayList {
  optional string playlistId = 1;   // 必填，歌单ID
  repeated string songIds = 2;      // 必填，歌曲ID列表
}

// 删除歌单
// 返回：SongManageResult.PlaylistDeleted
message deletePlaylist {
  optional string id = 1;           // 必填，歌单ID
}

// ==================== 歌曲管理请求 ====================

// 搜索歌曲
// 返回：SongManageResult.SongSearchResult
message searchSongs {
  optional string keyword = 1;      // 必填，搜索关键词
  optional int32 page = 2;          // 可选，页码（默认1）
  optional int32 pageSize = 3;      // 可选，每页数量（默认20）
}

// 获取推荐歌曲
// 返回：SongManageResult.RecommendedSongs
message getRecommendedSongs {

}

// ==================== 封面管理请求 ====================

// 获取封面列表
// 返回：SongManageResult.CoverList
message getCovers {
  optional string keyword = 1;      // 可选，搜索关键词（封面名称、标签等）
  optional int32 page = 2;          // 可选，页码（默认1）
  optional int32 pageSize = 3;      // 可选，每页数量（默认20）
}

// ==================== 冠款价设置请求 ====================

// 获取冠款价设置
// 返回：SongManageResult.CrownPriceSettingData
message getCrownPriceSetting {
  // 无参数
}

// 更新冠款价设置
// 返回：SongManageResult.CrownPriceSettingUpdated
message updateCrownPriceSetting {
  optional double basePrice = 1;                          // 可选，基础价格
}
