2311061111-lyt/initial_interface.txt
liyitian bfd351e365
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 12s
autograde-final-vibevault / grade (push) Failing after 58s
完成作业
2025-12-14 16:13:55 +08:00

61 lines
3.0 KiB
Plaintext

package com.vibevault.service;
import com.vibevault.dto.PlaylistDTO;
import com.vibevault.dto.SongCreateDTO;
import java.util.List;
/**
* 姝屽崟鏈嶅姟鎺ュ彛
* 瀹氫箟姝屽崟鐩稿叧鐨勪笟鍔℃搷浣? */
public interface PlaylistService {
/**
* 鑾峰彇鎵€鏈夋瓕鍗? */
List<PlaylistDTO> getAllPlaylists();
/**
* 鏍规嵁 ID 鑾峰彇姝屽崟
* @throws com.vibevault.exception.ResourceNotFoundException 濡傛灉姝屽崟涓嶅瓨鍦? */
PlaylistDTO getPlaylistById(Long id);
/**
* 鍒涘缓鏂版瓕鍗? * @param name 姝屽崟鍚嶇О
* @param ownerUsername 鎵€鏈夎€呯敤鎴峰悕
*/
PlaylistDTO createPlaylist(String name, String ownerUsername);
/**
* 鍚戞瓕鍗曟坊鍔犳瓕鏇? * @param playlistId 姝屽崟 ID
* @param song 姝屾洸淇℃伅
* @param username 褰撳墠鐢ㄦ埛鍚嶏紙鐢ㄤ簬鏉冮檺妫€鏌ワ級
*/
PlaylistDTO addSongToPlaylist(Long playlistId, SongCreateDTO song, String username);
/**
* 浠庢瓕鍗曠Щ闄ゆ瓕鏇? * @param playlistId 姝屽崟 ID
* @param songId 姝屾洸 ID
* @param username 褰撳墠鐢ㄦ埛鍚嶏紙鐢ㄤ簬鏉冮檺妫€鏌ワ級
*/
void removeSongFromPlaylist(Long playlistId, Long songId, String username);
/**
* 鍒犻櫎姝屽崟
* @param playlistId 姝屽崟 ID
* @param username 褰撳墠鐢ㄦ埛鍚嶏紙鐢ㄤ簬鏉冮檺妫€鏌ワ級
*/
void deletePlaylist(Long playlistId, String username);
// ========== Advanced 鏂规硶锛堥€夊仛锛?=========
/**
* [Advanced] 鎸夊叧閿瓧鎼滅储姝屽崟
*/
List<PlaylistDTO> searchPlaylists(String keyword);
/**
* [Advanced] 澶嶅埗姝屽崟
*/
PlaylistDTO copyPlaylist(Long playlistId, String newName, String username);
}