"""HTML-страницы админки (серверный рендер Jinja2 + HTMX)."""
from __future__ import annotations
from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse
from common import __version__
router = APIRouter(tags=["pages"])
#: Разделы админки по плану Блока 4 (пока заглушки на главной).
SECTIONS: tuple[tuple[str, str, str], ...] = (
("messages", "Сообщения", "Тексты бота и предпросмотр с тегами {tag}"),
("schedules", "Расписания", "Время рассылок, дни недели и шаблон"),
("users", "Пользователи", "Ники, звания, баланс и подписка"),
("logs", "Логи", "События из ClickHouse с фильтрами"),
)
@router.get("/", response_class=HTMLResponse)
async def index(request: Request) -> HTMLResponse:
"""Главная страница: версия, окружение и список будущих разделов."""
templates = request.app.state.templates
settings = request.app.state.settings
return templates.TemplateResponse(
request=request,
name="index.html",
context={
"version": __version__,
"app_env": settings.app_env,
"sections": SECTIONS,
},
)