#####################################################################
# THIS FILE IS AUTOMATICALLY GENERATED BY UNSTRUCTURED API TOOLS.
# DO NOT MODIFY DIRECTLY
#####################################################################


from fastapi import FastAPI, Request, status

from slowapi import Limiter, _rate_limit_exceeded_handler
from slowapi.errors import RateLimitExceeded
from slowapi.util import get_remote_address

{% for module in module_names -%}
from .{{ module }} import router as {{module}}_router
{% endfor %}

limiter = Limiter(key_func=get_remote_address)
app = FastAPI(
  title="{{ title }}",
  description="""{{ description }}""",
  version="{{ version or '1.0.0' }}",
)
app.state.limiter = limiter
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)

{% for module in module_names -%}
app.include_router({{ module }}_router)
{% endfor %}

@app.get("/healthcheck", status_code=status.HTTP_200_OK)
async def healthcheck(request: Request):
    return {"healthcheck": "HEALTHCHECK STATUS: EVERYTHING OK!"}
