<?php
/**
 * 최근 재생 목록 페이지 (중복 제거 최근 50곡)
 */

require_once __DIR__ . '/config/config.php';
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/functions.php';
require_once __DIR__ . '/includes/layout.php';

$pdo = getDBConnection();

// 검색 키워드 획득
$search = isset($_GET['search']) ? trim($_GET['search']) : '';
$params = [];

// 중복을 제거하여 가장 최근에 재생된 노래를 최신순으로 50개 패치
$sql = "
    SELECT s.id, s.title, s.artist, s.album, s.genre, s.duration, s.extension, s.play_count, 
           MAX(h.played_at) AS last_played_at, 
           IF(l.id IS NOT NULL, 1, 0) AS is_liked
    FROM play_history h
    JOIN songs s ON h.song_id = s.id
    LEFT JOIN liked_songs l ON s.id = l.song_id
    WHERE s.is_missing = 0
";

if ($search !== '') {
    $sql .= " AND (s.title LIKE :search1 OR s.artist LIKE :search2 OR s.album LIKE :search3)";
    $params[':search1'] = '%' . $search . '%';
    $params[':search2'] = '%' . $search . '%';
    $params[':search3'] = '%' . $search . '%';
}

$sql .= "
    GROUP BY s.id
    ORDER BY last_played_at DESC
    LIMIT 50
";

$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$songs = $stmt->fetchAll();

$pageTitle = '최근 재생';
if ($search !== '') {
    $pageTitle = '최근 재생 곡 중 "' . htmlspecialchars($search) . '" 검색 결과';
}

// 레이아웃 헤더 출력
renderHeader($pageTitle, 'recent');
?>

<div class="music-list-page">
    <div class="page-title-section">
        <h1 class="page-main-title"><?php echo htmlspecialchars($pageTitle); ?></h1>
        <p class="page-subtitle">
            <?php echo sprintf("최근 내가 재생하여 감상한 곡 목록입니다. (중복 없이 최근 50곡 제한, 총 %d곡)", count($songs)); ?>
        </p>
    </div>

    <!-- 곡 목록 테이블 출력 (공통 컴포넌트 렌더링) -->
    <?php renderSongList($songs); ?>
</div>

<?php
// /레이아웃 푸터 출력
renderFooter();
?>
