# app/main.py
from dotenv import load_dotenv
load_dotenv()
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
# from fastapi.templating import Jinja2Templates

from app.api import chat, admin, health, admin_context, admin_login
from app.core.config import settings
from app.db.database import init_db
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI(
    title=f"{settings.BOT_NAME} API",
    description="Context-locked Ollama chatbot with API key authentication",
    version="1.0.0",
)

app.add_middleware(
    CORSMiddleware,
    allow_origins=[
        "http://localhost:5173",
        "https://zeroinfinitytechnologies.com/",
        "https://www.zeroinfinitytechnologies.com/",
    ],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.on_event("startup")
async def on_startup():
    init_db()

# Routers
app.include_router(chat.router)
app.include_router(admin.router)
app.include_router(health.router)
app.include_router(admin_context.router)
app.include_router(admin_login.router)

# Templates
# templates = Jinja2Templates(directory="frontend/templates")

@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
    return HTMLResponse(
        content=f"<h1>{settings.BOT_NAME}</h1><p>Model: {settings.OLLAMA_MODEL}</p><p>Domain: {settings.CONTEXT_DOMAIN}</p>"
    )

