43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
from datetime import datetime, timezone
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from app.database import get_pool
|
|
from app.models.common import ErrorResponse, HealthResponse, APIInfoResponse
|
|
|
|
router = APIRouter(tags=["Health"])
|
|
|
|
|
|
@router.get("/health", response_model=HealthResponse)
|
|
async def health_check():
|
|
pool = await get_pool()
|
|
try:
|
|
async with pool.acquire() as conn:
|
|
await conn.execute("SELECT 1")
|
|
db_status = "connected"
|
|
except Exception:
|
|
db_status = "disconnected"
|
|
|
|
return HealthResponse(
|
|
status="ok",
|
|
timestamp=datetime.now(timezone.utc).isoformat(),
|
|
database=db_status,
|
|
)
|
|
|
|
|
|
@router.get("/api-info", response_model=APIInfoResponse)
|
|
async def api_info():
|
|
return APIInfoResponse(
|
|
name="Cotizador E3 API",
|
|
version="1.0.0",
|
|
description="API para el sistema de cotizaciones de Consultoría E3",
|
|
capabilities=[
|
|
"Gestión de cotizaciones",
|
|
"Catálogo de servicios",
|
|
"Planes Bucéfalo CRM",
|
|
"Exportación PDF/Excel",
|
|
"Autenticación JWT",
|
|
"Financiamiento Openpay",
|
|
],
|
|
)
|