from fastapi import APIRouter
from fastapi.responses import HTMLResponse

from .components import brief_fragment, status_fragment, validation_fragment


router = APIRouter()


@router.get("/partials/brief", response_class=HTMLResponse)
def brief():
    return str(brief_fragment())


@router.get("/partials/status", response_class=HTMLResponse)
def status():
    return str(status_fragment())


@router.get("/partials/validation", response_class=HTMLResponse)
def validation():
    return HTMLResponse(str(validation_fragment()), status_code=422)


@router.get("/api/status")
def api_status():
    return {
        "app": {{ project_name_literal }},
        "public": "Static app shell served by FastAPI app.frontend()",
        "backend": "FastAPI JSON routes",
        "partials": "HTML generated with htpy components",
    }
