# main.py

from fastapi import FastAPI
from app.core.database import Base, engine
from app.routers import agent as agent_router
from app.routers import client, visitor, message
from app.ws.chat import router as client_ws_router
from app.ws.admin import router as admin_ws_router
from fastapi.middleware.cors import CORSMiddleware
from app.ws.agent import router as agent_ws_router
from app.routers import dashboard as dashboard_router
from app.ws.visitor import router as visitor_ws_router

app = FastAPI()
origins = [
    "*",   # optional during development
]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.on_event("startup")
async def on_startup():
    async with engine.begin() as conn:
        await conn.run_sync(Base.metadata.create_all)

# Routers
app.include_router(client.router)
app.include_router(visitor.router)
app.include_router(message.router)

# ws
app.include_router(client_ws_router)
app.include_router(admin_ws_router)
app.include_router(agent_ws_router)   
app.include_router(visitor_ws_router)   

app.include_router(agent_router.router)
app.include_router(dashboard_router.router)


# -----------------------------------------------------------------------------------------
# -----------------------------------------------------------------------------------------
