<?php
/**
 * 플레이리스트 삭제 처리 액션 (보안을 위해 오직 POST 요청만 수락)
 */

require_once __DIR__ . '/config/config.php';
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/functions.php';
require_once __DIR__ . '/includes/auth.php';
requireAdmin();

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('HTTP/1.1 405 Method Not Allowed');
    die("허용되지 않은 접근 방식입니다. 삭제 처리는 POST 방식으로만 가능합니다.");
}
requireCsrfToken();

$playlistId = isset($_POST['id']) ? intval($_POST['id']) : 0;

if ($playlistId <= 0) {
    die("올바르지 않은 플레이리스트 ID입니다.");
}

try {
    $pdo = getDBConnection();
    
    // 안전한 일괄 트랜잭션 처리
    $pdo->beginTransaction();
    
    // 1. 플레이리스트 관계 수록곡 정보 일괄 삭제
    $deleteSongsStmt = $pdo->prepare("DELETE FROM playlist_songs WHERE playlist_id = :playlist_id");
    $deleteSongsStmt->execute([':playlist_id' => $playlistId]);
    
    // 2. 플레이리스트 자체 삭제
    $deletePlaylistStmt = $pdo->prepare("DELETE FROM playlists WHERE id = :id");
    $deletePlaylistStmt->execute([':id' => $playlistId]);
    
    $pdo->commit();
    
    // 삭제 완료 후 목록으로 리다이렉트
    header("Location: playlists.php");
    exit;
    
} catch (Exception $e) {
    if ($pdo->inTransaction()) {
        $pdo->rollBack();
    }
    die("플레이리스트 삭제 중 오류가 발생했습니다: " . htmlspecialchars($e->getMessage()));
}
