<?php
/**
 * 많이 들은 곡 목록 페이지 (상위 100위 랭킹 리스트)
 */

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 = [];

// 재생 횟수 정순 100곡 조회
$sql = "
    SELECT s.id, s.title, s.artist, s.album, s.genre, s.duration, s.extension, s.play_count, 
           IF(l.id IS NOT NULL, 1, 0) AS is_liked
    FROM songs s
    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 .= "
    ORDER BY s.play_count DESC, s.title ASC
    LIMIT 100
";

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

$pageTitle = '많이 들은 곡';
if ($search !== '') {
    $pageTitle = '많이 들은 곡 중 "' . htmlspecialchars($search) . '" 검색 결과';
}

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

<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("재생 횟수가 높은 순으로 정렬한 나만의 TOP 100 음악 차트입니다. (총 %d곡)", count($songs)); ?>
        </p>
    </div>

    <!-- 순위(show_rank) 옵션을 켜서 1위부터 순서대로 번호를 노출하도록 호출 -->
    <?php renderSongList($songs, ['show_rank' => true]); ?>
</div>

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