<?php
declare(strict_types=1);
require_once __DIR__ . '/../includes/bootstrap.php';
require_once __DIR__ . '/../includes/auth.php';
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/helpers.php';
require_admin();

$error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!verify_csrf($_POST['csrf'] ?? null)) {
        $error = 'Невірний CSRF токен.';
    } else {
        $title = trim((string)($_POST['title'] ?? ''));
        $slug = trim((string)($_POST['slug'] ?? ''));
        $content = sanitize_post_html(trim((string)($_POST['content'] ?? '')));
        $status = ($_POST['status'] ?? 'draft') === 'published' ? 'published' : 'draft';

        $slugOk = preg_match('/^[a-z0-9]+(?:-[a-z0-9]+)*$/', $slug) === 1;
        if ($title === '' || $slug === '' || $content === '') {
            $error = 'Заповніть усі обовʼязкові поля.';
        } elseif (!$slugOk) {
            $error = 'Slug: лише латинські літери, цифри та дефіс.';
        } else {
            try {
                $stmt = db()->prepare('INSERT INTO posts (title, slug, content, status) VALUES (:title, :slug, :content, :status)');
                $stmt->execute(['title' => $title, 'slug' => $slug, 'content' => $content, 'status' => $status]);
                header('Location: dashboard.php');
                exit;
            } catch (Throwable $e) {
                $error = 'Не вдалося зберегти (можливо, slug уже існує або БД недоступна).';
            }
        }
    }
}

$css = nestor_asset_url('assets/css/style.css');
echo '<!doctype html><html lang="uk"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Новий пост</title><link rel="stylesheet" href="' . e($css) . '"></head><body>';
echo '<main id="main-content" class="section"><div class="wrap" style="max-width:860px">';
echo '<h1 style="margin-bottom:1rem">Новий пост</h1>';
if ($error !== '') {
    echo '<p style="color:#8b4040;margin-bottom:1rem">' . e($error) . '</p>';
}
echo '<form class="price-card contact-form" style="max-width:none;padding:clamp(1.25rem,3vw,2rem)" method="post">';
echo '<input type="hidden" name="csrf" value="' . e(csrf_token()) . '">';
echo '<p><label>Заголовок<input required name="title"></label></p>';
echo '<p><label>Slug (латиниця, через дефіс)<input required name="slug" placeholder="naprikklad-mii-post"></label></p>';
echo '<p><label>Статус<select name="status"><option value="draft">Чернетка</option><option value="published">Опубліковано</option></select></label></p>';
echo '<p><label>Текст (HTML: &lt;p&gt;, &lt;h2&gt;, &lt;strong&gt;, списки)<textarea required name="content" rows="16" placeholder="<p>...</p>"></textarea></label></p>';
echo '<div class="btn-row"><button class="btn btn--primary" type="submit">Зберегти</button><a class="btn btn--ghost" href="dashboard.php">Назад</a></div>';
echo '</form></div></main></body></html>';
