from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.config import settings from app.core.exceptions import register_exception_handlers from app.core.middleware import TierMiddleware, QuotaMiddleware import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) app = FastAPI( title=settings.APP_NAME, version="1.0.0", docs_url="/docs", redoc_url="/redoc", ) app.add_middleware( CORSMiddleware, allow_origins=[settings.FRONTEND_URL, "*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.add_middleware(TierMiddleware) app.add_middleware(QuotaMiddleware) register_exception_handlers(app) @app.get("/health") async def health(): return {"status": "ok", "app": settings.APP_NAME, "version": "1.0.0"} from app.api.v1 import auth, marketing, translate, customer, quotation, whatsapp, product, exchange, push app.include_router(auth.router, prefix="/api/v1/auth", tags=["auth"]) app.include_router(marketing.router, prefix="/api/v1/marketing", tags=["marketing"]) app.include_router(translate.router, prefix="/api/v1/translate", tags=["translate"]) app.include_router(customer.router, prefix="/api/v1/customers", tags=["customers"]) app.include_router(quotation.router, prefix="/api/v1/quotations", tags=["quotations"]) app.include_router(whatsapp.router, prefix="/api/v1/whatsapp", tags=["whatsapp"]) app.include_router(product.router, prefix="/api/v1/products", tags=["products"]) app.include_router(exchange.router, prefix="/api/v1/exchange", tags=["exchange"]) app.include_router(push.router, prefix="/api/v1/push", tags=["push"]) if __name__ == "__main__": import uvicorn uvicorn.run("app.main:app", host="0.0.0.0", port=8000, reload=True)