<?php
declare(strict_types=1);

require_once __DIR__ . '/../lib.php';
session_start();

$errors = [];
$success = false;
$title = '';
$author = '';
$body = '';
$contact = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    verify_csrf();
    $title = clean_text($_POST['title'] ?? '', 140);
    $author = clean_text($_POST['author'] ?? '', 80);
    $contact = clean_text($_POST['contact'] ?? '', 120);
    $body = clean_body($_POST['body'] ?? '', 6000);

    if (utf8_length($title) < 5) {
        $errors[] = 'Укажите заголовок от 5 символов.';
    }
    if (utf8_length($body) < 30) {
        $errors[] = 'Опишите новость подробнее: минимум 30 символов.';
    }

    if ($errors === []) {
        $offers = read_json_file(OFFERS_FILE);
        $offers[] = [
            'id' => bin2hex(random_bytes(8)),
            'title' => $title,
            'body' => $body,
            'author' => $author === '' ? 'Анонимно' : $author,
            'contact' => $contact,
            'created_at' => (new DateTimeImmutable('now'))->format(DateTimeInterface::ATOM),
        ];
        write_json_file(OFFERS_FILE, $offers);
        $success = true;
        $title = $author = $body = $contact = '';
    }
}
?>
<!doctype html>
<html lang="ru">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Предложить новость · <?= h(SITE_NAME) ?></title>
    <link rel="stylesheet" href="/assets/style.css">
</head>
<body>
<header class="topbar">
    <div class="topbar__inner">
        <a class="brand" href="/"><?= h(SITE_NAME) ?></a>
        <nav class="nav" aria-label="Основная навигация">
            <a href="/">Новости</a>
            <a href="/offer/">Предложить новость</a>
            <a href="/admin/">Админка</a>
        </nav>
    </div>
</header>

<main class="wrap">
    <section class="hero">
        <span class="school-note">Редакция школы</span>
        <h1>Предложить школьную новость</h1>
        <p>Поделитесь событием из жизни «Точки Будущего»: проектом, победой, мероприятием, объявлением или доброй историей.</p>
    </section>

    <section class="panel">
        <?php if ($success): ?>
            <p class="flash">Спасибо, новость отправлена школьной редакции на модерацию.</p>
        <?php endif; ?>

        <?php foreach ($errors as $error): ?>
            <p class="flash error"><?= h($error) ?></p>
        <?php endforeach; ?>

        <form method="post">
            <input type="hidden" name="csrf" value="<?= h(csrf_token()) ?>">
            <label>
                Заголовок
                <input name="title" maxlength="140" required value="<?= h($title) ?>">
            </label>
            <div class="split">
                <label>
                    Автор
                    <input name="author" maxlength="80" value="<?= h($author) ?>">
                </label>
                <label>
                    Класс или контакт для редакции
                    <input name="contact" maxlength="120" value="<?= h($contact) ?>">
                </label>
            </div>
            <label>
                Текст новости или объявления
                <textarea name="body" required><?= h($body) ?></textarea>
            </label>
            <button type="submit">Отправить в редакцию</button>
        </form>
    </section>
</main>
</body>
</html>

