<?php
/**
 * 플레이리스트 정보 수정 페이지
 */

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

$pdo = getDBConnection();
$playlistId = isset($_GET['id']) ? intval($_GET['id']) : 0;
$message = '';

if ($playlistId <= 0) {
    die("유효하지 않은 요청입니다.");
}

// 1. 플레이리스트 상세 조회
$playlistStmt = $pdo->prepare("SELECT * FROM playlists WHERE id = :id");
$playlistStmt->execute([':id' => $playlistId]);
$playlist = $playlistStmt->fetch();

if (!$playlist) {
    die("존재하지 않는 플레이리스트입니다.");
}

// 2. 수정 처리 (POST 수신)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    requireCsrfToken();
    $name = trim((string)($_POST['name'] ?? ''));
    $description = trim((string)($_POST['description'] ?? ''));
    $displayScope = normalizePlaylistDisplayScope18($_POST['display_scope'] ?? 'private');
    
    if ($name === '') {
        $message = '플레이리스트 이름을 입력해 주세요.';
    } else {
        try {
            $updateStmt = $pdo->prepare("
                UPDATE playlists 
                SET name = :name, description = :description, display_scope = :display_scope, updated_at = NOW()
                WHERE id = :id
            ");
            $updateStmt->execute([
                ':name' => function_exists('mb_substr') ? mb_substr($name, 0, 255, 'UTF-8') : substr($name, 0, 255),
                ':description' => $description !== '' ? $description : null,
                ':display_scope' => $displayScope,
                ':id' => $playlistId,
            ]);
            
            // 수정 완료 후 상세 페이지로 즉시 리다이렉트
            header("Location: playlist_view.php?id=" . $playlistId);
            exit;
        } catch (Throwable $e) {
            if (function_exists('writeAppLog')) {
                writeAppLog('error', 'playlist_update_error', 'Playlist update failed', ['playlist_id' => $playlistId, 'error' => $e->getMessage()]);
            }
            $message = '플레이리스트 정보를 저장하지 못했습니다.';
        }
    }
}

renderHeader('플레이리스트 수정 - ' . $playlist['name'], 'playlists');
?>

<div class="playlist-edit-page">
    <div class="page-title-section">
        <h1 class="page-main-title">플레이리스트 정보 수정</h1>
        <p class="page-subtitle">선택하신 플레이리스트의 이름과 설명을 변경합니다.</p>
    </div>

    <?php if ($message !== ''): ?>
        <div class="alert-box alert-danger">
            <div class="alert-icon"><i class="fas fa-exclamation-triangle"></i></div>
            <div class="alert-content"><p><?php echo htmlspecialchars($message); ?></p></div>
        </div>
    <?php endif; ?>

    <div class="scan-action-section" style="display: block; max-width: 600px;">
        <form action="playlist_edit.php?id=<?php echo $playlistId; ?>" method="POST">
            <div class="form-group">
                <label for="name">플레이리스트 이름 (필수)</label>
                <input type="text" name="name" id="name" class="form-control" value="<?php echo htmlspecialchars($playlist['name']); ?>" required>
            </div>
            
            <div class="form-group">
                <label for="description">플레이리스트 설명 (선택)</label>
                <textarea name="description" id="description" class="form-control"><?php echo htmlspecialchars($playlist['description'] ?? ''); ?></textarea>
            </div>

            <div class="form-group">
                <label for="display_scope">표시 옵션</label>
                <select name="display_scope" id="display_scope" class="form-control">
                    <?php $currentScope = normalizePlaylistDisplayScope18($playlist['display_scope'] ?? 'private'); ?>
                    <?php foreach (playlistDisplayScopeOptions18() as $scopeValue => $scopeLabel): ?>
                        <option value="<?php echo h($scopeValue); ?>" <?php echo $currentScope === $scopeValue ? 'selected' : ''; ?>><?php echo h($scopeLabel); ?></option>
                    <?php endforeach; ?>
                </select>
            </div>
            
            <div class="actions-row">
                <a href="playlist_view.php?id=<?php echo $playlistId; ?>" class="btn btn-secondary">취소</a>
                <button type="submit" class="btn btn-primary">저장 완료</button>
            </div>
        </form>
    </div>
</div>

<?php
renderFooter();
?>
