<?php
header('Content-Type: application/json; charset=utf-8');

ini_set('display_errors', 0);
error_reporting(E_ALL);

require_once dirname(__DIR__) . '/config/config.php';
require_once dirname(__DIR__) . '/includes/db.php';
require_once dirname(__DIR__) . '/includes/functions.php';
require_once dirname(__DIR__) . '/includes/api.php';

apiRequireMethod('POST');
apiRequireCsrf();

$action = isset($_POST['action']) ? trim((string)$_POST['action']) : '';
$allowedActions = ['delete_song', 'clear_all'];

if (!in_array($action, $allowedActions, true)) {
    apiError('처리할 수 없는 요청입니다.', 'invalid_action', 400);
}

try {
    $pdo = getDBConnection();

    if ($action === 'delete_song') {
        $songId = isset($_POST['song_id']) ? (int)$_POST['song_id'] : 0;
        if ($songId <= 0) {
            apiError('유효하지 않은 곡 ID입니다.', 'invalid_song_id', 400);
        }

        $stmt = $pdo->prepare("DELETE FROM play_history WHERE song_id = :song_id");
        $stmt->execute([':song_id' => $songId]);

        apiSuccess([
            'song_id' => $songId,
            'deleted' => $stmt->rowCount(),
        ], '최근 재생 기록에서 삭제했습니다.');
    }

    $stmt = $pdo->prepare("DELETE FROM play_history");
    $stmt->execute();

    apiSuccess([
        'deleted' => $stmt->rowCount(),
    ], '최근 재생 기록을 모두 삭제했습니다.');
} catch (Throwable $e) {
    if (function_exists('writeAppLog')) {
        writeAppLog('error', 'recent_history_error', 'Recent history action failed', [
            'action' => $action,
            'error' => $e->getMessage(),
        ]);
    }
    apiError('최근 재생 기록을 처리하지 못했습니다.', 'server_error', 500);
}
