package com.vibevault.repository;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import com.vibevault.model.Song;

/**
 * 歌曲仓库接口
 * 
 * 基础功能由 JpaRepository 提供
 * 
 * [Advanced] 已添加：
 * - 按标题关键字模糊搜索歌曲
 * - 按创建时间排序返回结果
 */
@Repository
public interface SongRepository extends JpaRepository<Song, Long> {
    // 按标题关键字模糊搜索歌曲
    List<Song> findByTitleContainingIgnoreCase(String keyword);
    
    // 按标题关键字模糊搜索歌曲并按标题排序
    List<Song> findByTitleContainingIgnoreCaseOrderByTitleAsc(String keyword);
    
    // 按歌单ID查询歌曲
    List<Song> findByPlaylistId(Long playlistId);
    
    // 按歌单ID查询歌曲并按创建时间排序
    List<Song> findByPlaylistIdOrderByCreatedAtAsc(Long playlistId);
    
    // 按歌单ID查询歌曲并按标题排序
    List<Song> findByPlaylistIdOrderByTitleAsc(Long playlistId);
}